前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >maridb自建从库(2)

maridb自建从库(2)

原创
作者头像
云售后焦俊成
修改2020-07-17 11:15:10
4430
修改2020-07-17 11:15:10
举报
文章被收录于专栏:阿焦在云上的日子

之前写到我们只是同步了一个db库,如果说我们打算同步两个、多个甚至全库需要如何操作呢,这里自己也在此研究了下,大佬们可以借鉴下

1、同步2个或者多个库

其实这种和同步1个库没有太大区别,还是用mydumper工具来实现吧

1.1 因为mydumper可以同时导出多个库,在导出的时候会生成一个文件metadata,而这个文件里面就包含我们需要的主从同步的位置点信息

1.2 先清理之前的主从信息

stop slave;

reset slave all;

show slave status

1.2 同时导出两个库出来

不过mydumper 比较蛋疼的一点是 -B 不能同时指定多个库,只能反向思维,不去过滤哪些库,这里我就导两个jc_data和jc_test了,去掉不导入的

mydumper --user=jc-all --host=172.xx.48.6 --password=password --port=3306 -t 4 --regex '^(?!(mysql|test|sysdb))' --outputdir=./jc-all

导入:

myloader --user=root --password=xxx -d ./jc-all

1.3、过滤库

这里我们需要注意的是,如果过滤多个库,不仅仅要导出的做过滤,还需要在从库配置文件上做下过滤,无论是mysql还是maridb涉及的过滤参数是以下几个

#过滤库

Replicate_Do_DB:(白名单)

Replicate_Ignore_DB:(黑名单)

#过滤表

Replicate_Do_Table: (白名单)

Replicate_Ignore_Table: (黑名单)

#模糊匹配

Replicate_Wild_Do_Table: (白名单)

Replicate_Wild_Ignore_Table: (黑名单)

1.4、上述都配置好了之后,接着起主从

还是需要去导出的sql文件中哪metadata的元数据,然后拿到gtid信息

1.4.1、SET GLOBAL gtid_slave_pos='0-677963481-395618'或者CHANGE MASTER TO MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=96278680;(这里的位点和截图位点不一致是因为小弟我跑了很多弯路,就没去截图记录当前的这个位点~~)

1.4.2、主从同步命令

change master to

master_user = 'jc-all',

master_password = "password",

master_host = '172.xx.48.6',

master_port = 3306,

master_use_gtid = slave_pos;

start slave;

最后在验证下,新建库未同步到目标从库,同时两个库的数据可以正常同步

2、同步整库

这里就不在重复上面的步骤了,只需要我们导出的时候是整库就可以了

注意:如果是按照上面来的,需要把配置文件的过滤库的条件去掉哈

(sysdb这个库是云上maridb实例自有的,用来保持自身的主备实例心跳检测的,可不用迁移)

导出:mydumper --user=jc-all --host=172.xx.48.6 --password=password --port=3306 -t 4 --outputdir=./jc-all

导入:myloader --user=root --password=password -d ./jc-all

(这里因为自建的maridb会和云上有重复的库mysql,可以过滤掉或者导入到本地也可以,mydumper导出全库的时候默认不导出information_schema和performance_schema)

这种报错可以忽略

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MariaDB
腾讯云数据库 MariaDB(TencentDB for MariaDB) 让您轻松在云端部署、使用 MariaDB 数据库。MariaDB 是在 MySQL 版权被 Oracle 收购后,由 MySQL 创始人 Monty 创立,其版权授予了“MariaDB基金会(非营利性组织)”以保证 MariaDB 永远开源,良好的开源策略,是企业级应用的最优选择,主流开源社区系统/软件的数据库系统,均已默认配置 MariaDB。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档