OpenStack Database As A Service (Trove)
Go to file
Zhao Chao 5895cf0ee9 Avoid diverged slave when migrating MariaDB master
When promoting one slave to the new master in a replication group,
previously the old master will be attached to the new one right after
the new master is on. For MariaDB, attaching the old master to the new
one, new GTID may be created on the old master and also may be synced
to some of the other replicas, as they're still connecting to the old
master. The new GTID does not exists in the new master, making these
slaves diverged from the master. After that, when the diverged slave
connects to the new master, 'START SLAVE' will fail with logs like:

    [ERROR] Error reading packet from server: Error: connecting slave
    requested to start from GTID X-XXXXXXXXXX-XX, which is not in the
    master's binlog. Since the master's binlog contains GTIDs with
    higher sequence numbers, it probably means that the slave has
    diverged due to executing extra erroneous transactions
    (server_errno=1236)

And these slaves will be left orphan and errored after
promote_to_replica_source finishs.

Attaching the other replicas to the new master before dealing with the
old master will fix this problem and the failure of the
trove-scenario-mariadb-multi Zuul job as well.

Closes-Bug: #1754539
Change-Id: Ib9c01b07c832f117f712fd613ae55c7de3561116
Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
2018-03-09 10:51:41 +08:00
api-ref/source Return 204 instead of 200 for root-disable API 2018-03-02 20:57:23 +08:00
apidocs/src/samples Fix backup of mysql variants on Centos 2016-12-13 16:29:41 +00:00
contrib Fixes hacking rules 2015-05-29 07:27:59 +00:00
devstack Remove use of unsupported TEMPEST_SERVICES variable 2018-01-23 16:27:42 +03:00
doc Merge "Add Database service user guide" 2018-01-14 02:45:42 +00:00
etc Generate policy sample file automatically. 2018-02-12 18:11:22 +08:00
integration Merge "Fix incorrect usage of assertTrue" 2018-02-27 18:31:11 +00:00
playbooks/legacy Import experimental Zuul jobs 2018-01-13 07:28:27 +01:00
releasenotes Avoid diverged slave when migrating MariaDB master 2018-03-09 10:51:41 +08:00
tools Use RootHistory to check if root is ever enabled 2018-02-28 09:14:36 +08:00
trove Avoid diverged slave when migrating MariaDB master 2018-03-09 10:51:41 +08:00
.coveragerc Update some information 2016-10-24 04:12:55 +00:00
.gitignore Generate policy sample file automatically. 2018-02-12 18:11:22 +08:00
.gitreview Renamed repos to trove. 2013-06-14 18:25:42 -04:00
.stestr.conf Fix gate issues 2017-10-13 09:37:48 -05:00
.testr.conf Rename from reddwarf to trove. 2013-06-24 14:11:15 -07:00
.zuul.yaml Only launch in-tree zuul jobs when necessary 2018-02-23 15:46:43 +08:00
babel.cfg Setup trove for translation 2014-03-19 15:06:23 +01:00
blacklist-py3.txt Remove blacklist test volume 2016-10-26 05:27:09 +00:00
CONTRIBUTING.rst Update URLs in documents according to document migration 2017-11-03 17:17:01 +08:00
generate_examples.py Fixes hacking rules 2015-05-29 07:27:59 +00:00
HACKING.rst Remove log translations 2018-01-24 17:21:26 +00:00
LICENSE Add Apache 2.0 LICENSE file. 2013-04-29 18:01:12 -04:00
pylintrc initial chkin of pylint 2016-09-14 13:56:24 -04:00
README.rst Update URLs in documents according to document migration 2017-11-03 17:17:01 +08:00
requirements.txt Updated from global requirements 2018-01-16 12:56:32 +00:00
run_tests.py secure oslo_messaging.rpc 2017-01-11 07:56:35 -05:00
run_tests.sh Remove extraneous vim configuration comments 2014-02-27 15:05:21 +08:00
setup.cfg Remove entry of policy.json from setup.cfg 2018-02-28 12:03:29 +05:30
setup.py Updated from global requirements 2017-03-02 11:57:16 +00:00
test-requirements.txt Updated from global requirements 2018-01-24 01:40:25 +00:00
tox.ini Remove install-guide tox env 2018-02-22 17:45:22 +00:00

Trove

image

Trove is Database as a Service for OpenStack.

Getting Started

If you'd like to run from the master branch, you can clone the git repo:

git clone https://github.com/openstack/trove

You can raise bugs here: https://bugs.launchpad.net/trove

Python client

https://git.openstack.org/cgit/openstack/python-troveclient

References