基于日志点的复制
- 在主DB服务器上建立复制账号
create user 'repl' @'IP段' identified by 'password';
grant replication slave on *.* to 'repl' @'IP段';
- 配置主数据库服务器
log_bin = mysql-bin
修改后要重启MySQL服务器(账号要有写入权限)
server_id = 100(可以用set参数进行配置) - 配置从服务器服务器
log_bin = mysql-bin
server_id = 101
relay_log = mysql-relay-bin
log_slave_update = on[可选](如果以后需要将该服务器作为主服务器需要选上)
read_only = on[可选] - 初始化从服务器数据
mysqldump --master-data=2 -single-transaction(innodb表保证事务一致性需要加上该参数 --lock-all-tables(混合使用innodb和myisam表需要加上)
xtrabackup --slave-info(MySQL热备工具)
mysqldump --single-transaction --master-data --triggers --routines --all-databases -u root -p >> all.sql;
- 启动复制链路
change master to MASTER_HOST='master_host_ip',
MASTER_USER='repl',
MASTER_PASSWORD='password'.
MASTER_LOG_FILE='mysql_log_file_name',
MASTER_LOG_POS='pos';(去all.sql前几行看)
start slave;
show slave status\G;
show processlist;
优点:
- 是MySQL最早支持的复制技术,Bug比较少
- 对sql查询没有任何限制
- 故障处理比较容易
缺点: - 故障转移时重新获取新主库的日志点信息比较困难