异步复制
第一步:确保主库和从库上安装了相同版本的数据库。
第二步:在主库上,设置一个复制使用的账户,并授予replication slave权限。
例子:grant replication slave on *.* to 'rep2'@'192.0.2.252'identified by '123456';
第三步:修改配置文件/etc/my.cnf
第四步:主库上设置读锁
Flush tables withread lock;
第五步:查看主库当前二进制日志名和偏移量。
Show masterstatus;
第六步:备份主库数据并再从库恢复
第七步:解读锁
Unlock tables;
第八步:修改从库配置文件/etc/my.cnf
第九步:使用--skip-slave-start选项启动从库,这样不会立即启动数据库的复制进程,方便配置:
Mysqld_safe--skip-slave-start &
第十步:配置从库的相应设置
Change master to
->master_host=’192.0.2.249’,
->master_port=3306,
->master_user=’rep2’,
->master_password=’123456’,
->master_log_file=’binlog.000004’,
->master_log-pos=245;
第十一步:启动slave线程
Start slave;
第十二步:查看从库状态
show slavestatus\G
图中标出两部分都为yes即可
半同步复制
第一步:首先判断mysql数据库是否支持动态增加插件:
select@@have_dynamic_loading;
第二步:安装插件
主库:install plugin rpl_semi_sync_master soname'semisync_master.so';
从库:install plugin rpl_semi_sync_slave soname'semisync_slave.so';
第三步:配置全局参数
主库:set global rpl_semi_sync_master_enabled=1;
set global rpl_semi_sync_master_timeout =30000;
从库:set global rpl_semi_sync_slave_enabled=1;
重启从库IO线程:stop slave io_thread;start slave io_thread;
第四步:查看状态
主库:show status like ‘%semi_sync%’;