oracle、mysql、sqlserver这种使用物理备份做master-slave主从的,原理都是一样,主库不需要停机,主库在线做好物理备份后,恢复物理备份到从库,从库以主库物理备份开始的这个时刻点为基准点开始同步来自主库的日志链,因为slave read only对root用户不起作用,所以slave库搭建好后记得禁用event或slave启动之前设置event_scheduler=off
主库为ibdcmsproddb11,从库为ibdcmsproddb12和ibdcmsproddb13,使用innobackupex在线搭建mysql库的master-slave主从复制
操作步骤
1、主库的数据库列表和binlog文件名称和位置,和主库现有的slave实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
|
|
2、从库12的数据库列表
|
从库13的数据库列表
|
3、主库备份数据库并创建用于同步的账号
给机器12做的备份
|
给机器13做的备份
|
备注:
--no-timestamp表示不生成日期和时间格式的备份目录,备份文件直接放入/root/MySQLBackups/xtrabackup/ibdcmsproddb3_20210730_02目录,如下没有使用--no-timestamp表示在/root/MySQLBackups/xtrabackup目录下生成一个日期和时间命名的目录来存放备份文件
|
创建用于同步的账号
|
4、把innobackupex的物理备份文件从主库拷贝到从库,关闭从库的mysql服务,再在从库恢复,再进行复制的配置
机器12
15 | |
--对机器11的数据库备份进行日志应用
|
--把机器11的数据库备份拷贝回机器12的数据库目录
|
mysql-bin.000660 103353805 0-61-183782513
--记录机器11的数据库备份文件的备份时刻点的binlog文件名称和位置,即机器12后面做CHANGE MASTER TO MASTER_LOG_FILE这一行信息
机器12修改配置项
|
机器12配置同步
16 17 | |
机器13
|
--拷贝备份文件到机器13
|
--机器13关闭mysql服务
|
--机器13原来的数据库目录备份
|
--机器13创建新的数据库目录
|
|
--把机器11的数据库备份拷贝回机器13的数据库目录
|
--记录机器11的数据库备份文件的备份时刻点的binlog文件名称和位置,即机器13后面做CHANGE MASTER TO MASTER_LOG_FILE这一行信息
机器13修改配置项
|
机器13配置同步
|