MySQL主从复制(基于GTID)部署

目前环境基本都是使用基于gtid的主从复制,从库的搭建可以使用mysqldump或者XtraBackup,下面分别介绍:

使用XtraBackup搭建从库(建议使用)

数据量大的首选,推荐使用。步骤如下:

  1. 主库执行备份脚本:/opt/mysql/scripts/mysqlbackup_temp.sh,备份目录默认在/opt/xxx/tempback下,具体目录在备份日志最后有输出,类似:190802 16:42:33 Backup created in directory '/opt/tempback/20190802164050'
  2. 把备份目录copy到从库服务器上
  3. 在从库执行恢复操作:/opt/mysql/scripts/mysql_recovery.sh /opt、tempback/20190802164050,该脚本可指定一个参数,意为备份目录。执行完,MySQL已经启动好了
  4. 从库执行reset master命令:mysql -uroot -p -e "reset master;"
  5. 从库执行set GTID_PURGED命令:set global GTID_PURGED='XXXXXX:XXXX',此gtid串在备份目录中的xtrabackup_binlog_info文件记录了。
  6. 从库执行change master命令:CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='xxslave', MASTER_PASSWORD='xxxx', MASTER_PORT=3306, MASTER_AUTO_POSITION=1;
  7. 从库启动复制,并观察复制状态:start slave;     show slave status\G

 

创建必要的用户

创建用户

SQL语句

创建复制用户gslavegrant replication slave,replication client on *.* to xxslave identified by 'xxslave';
创建备份用户grant all on *.* to backup identified by 'backup';

 

使用mysqldump搭建从库

适用于数据量小的情况。步骤如下:

  1. 主库执行mysqldump,导出整库:mysqldump -uroot -p  --set-gtid-purged=ON --all-databases --triggers --routines --events > all_db.sql
  2. 从库执行reset master命令:mysql -uroot -p -e "reset master;"
  3. 从库执行dump的SQL文件:mysql -uroot -p < all_db.sql
  4. 从库执行change master命令:CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='xxslave', MASTER_PASSWORD='xxxx', MASTER_PORT=3306, MASTER_AUTO_POSITION=1;
  5. 从库启动复制,并观察复制状态:start slave;     show slave status\G
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值