MySQL一般情况下完成复制的工作需要完成以下步骤:
主服务器将变更写入到二进制文件中
从服务器读取主服务器的二进制日志变更写入到relay_log中
在从服务器上重放rely_log中的日志
基于日志点的复制配置的步骤:
1.在主DB服务器上建立复制账号
create user 'repl' @ 'IP段' identified by 'password';
grant replication slave on *.* to 'repl' @ 'IP段';//授权
2.配置主库服务器
bin_log=mysql-bin
server_id = 100
3.配置数据库从服务器
bin_log = mysql-bin
server_id = 101
relay_log = mysql-relay-bin
log_slave_update = on[可选]
read_only = on[可选]
4.初始化从服务器数据
mysqldump --master-data=2 -single-transaction
xtrabackup --slave-info[对innodb性能不进行锁表]
5.启动复制链路
change master to master_host = '主服务器的ip地址' ,
master_user = 'repl',
master_password = 'password',
master_log_file = 'mysql_log_file_name',
master_log_pos = 4;
实际的配置:
1.配置主库:
create user repl@'192.168.25.%' identified by '123456';
grant replication slave on *.* to repl@'192.168.25.%';
2.修改主从配置文件
3.主数据库备份:
mysqldump --single-transcation --master-data --triggers -- routines --all-databases >> all.sql
4.将主库的生成的备份文件传递到从服务器上:scp all.sql root@192.168.15.130:/root
5.在从服务器上执行该sql文件: mysql -uroot -p < all.sql
6.在从服务器上配置数据链路:
change master to master_host='192.168.25.33',
master_user='repl',
master_password='123456',
master_log_file='mysql-bin.0000003',
mater_log_pos=1829;
7.在从服务器上启动复制链路:start slave;
基于日志点的复制优点:
是mysql最早的复制技术,bug较少;
对于sql查询没有任何限制;
故障处理比较容易。
基于日志点的复制缺点:
故障转移时重新获取新主的日志点的信息比较困难。
代码小兵57603-29 17:54
代码小兵69606-07 17:03
代码小兵22104-13 18:12
代码小兵22104-20 20:22