从GreatDB Cluster迁移到MySQL
GreatDB Cluster支持使用greatsqldump对GreatDB Cluster进行逻辑全量备份。
使用greatsqldump进行逻辑备份
总共分为三步:
- 使用greatsqldump对集群进行全量逻辑备份,生成sql文件
- 修改sql文件中的建表语句
- 在MySQL端执行sql文件
greatsqldump导出sql文件
greatsqldump --no-tablespaces --compact --skip-tz-utc --single-transaction --flush-logs --set-gtid-purged=COMMENT --greatdb-cluster --sql-log-bin --databases xxx > test.sql
在备份文件开头处,会生成所有shard当前GTID的位置,如下所示:
// 这里是SQLNode的GTID位置
34 /* SET @@GLOBAL.GTID_PURGED='+636c7573-7465-725f-3100-000000000000:1-110';*/
35 /* greatdb cluster shards gtid information */
// 下面是各个SHARD的GTID位置
36 /* greatdb-cluster shard_name=sd1 : SET @@GLOBAL.GTID_PURGED='+ea4a2fff-9def-11eb-bf66-e454e8995a0e:1-13'*/
37 /* greatdb-cluster shard_name=sd2 : SET @@GLOBAL.GTID_PURGED='+ea3eb229-9def-11eb-bf7e-e454e8995a0e:1-7'*/
38 /* greatdb-cluster shard_name=sd3 : SET @@GLOBAL.GTID_PURGED='+ea407101-9def-11eb-bf96-e454e8995a0e:1-2'*/
修改SQL文件
由于原始导出的sql文件默认的引擎是GreatDB引擎,而单机MySQL是没有这种引擎的,有两种方式可以解决这个问题:
替换引擎名称
sed -i 's/ENGINE=GreatDB/ENGINE=InnoDB/g' test.sql设置MySQL端的SQLMode,去掉NO_ENGINE_SUBSTITUTION选项,这样如果找不到对应引擎,就会创建成默认引擎了。
导入SQL文件
M导入方式如下:
# mysql -h127.0.0.1 -P3306 -uroot -pxxx < test.sql
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




