mysql 5.7 现有数据源从库热备份配置方案
操作步骤
- 源服务器需开启binlog 配置 并配置server-id(必要条件)
[mysqld] log-bin=mysql-bin server-id=1
加强选项:为了在InnoDB与事务一起使用的复制设置中获得最大的持久性和一致性 ,应在源 文件中
- `innodb_flush_log_at_trx_commit=1
-
sync_binlog=1`
-
创建用于复制的用户(该帐户仅需要 REPLICATION SLAVE特权)
CREATE USER 'master'@'%' IDENTIFIED BY '123WWddc'
GRANT REPLICATION SLAVE ON *.* TO 'master'@'%'
-
迁移现有数据并获取复制源的二进制日志坐标
-
` mysqldump --all-databases --master-data dbdump.db` 使用mysql dump创建数据快照
* ~~ ~~FLUSH TABLES WITH READ LOCK;
(刷新所有表并阻止写入语句)
*
SHOW MASTER STATUS
确定当前二进制日志文件的名称和位置
如果源以前一直在运行且未启用二进制日志记录,则SHOW MASTER STATUS或mysqldump --master-data显示的日志文件名和位置值为空。在这种情况下,以后指定源日志文件和位置时需要使用的值为空字符串(’’)和4。
-
设置从服务器配置
[mysqld] server-id=2
-
mysql < fulldb.dump
加载备份 -
设置副本以与复制源进行通信
mysql> CHANGE MASTER TO -> MASTER_HOST='source_host_name', -> MASTER_PORT=33061, -> MASTER_USER='replication_user_name', -> MASTER_PASSWORD='replication_password', -> MASTER_LOG_FILE='recorded_log_file_name', -> MASTER_LOG_POS=recorded_log_position;
START SLAVE
;启动复制工作