MySQL 主从复制配置 + MySQL Router 部署使用测试(3)

------------------ 动态添加 MySQLDB3 节点(innobackupex) ---------------------------

18、在 MySQLDB1 节点执行全库备份

[root@mysqldb1 ~]#  innobackupex --user=sysadmin --password=mysql --socket=/tmp/mysql3306.sock --defaults-file=/mysql/3306/my.cnf --slave-info /home/mysql

xtrabackup: Error: --defaults-file must be specified first on the command line

----提示配置文件参数必须放在第一位

[root@mysqldb1 ~]#  innobackupex --defaults-file=/mysql/3306/my.cnf --user=sysadmin --password=mysql --socket=/tmp/mysql3306.sock  --slave-info /home/mysql

19、将 /home/mysql/yyyy-mm-dd_hh24-mi-ss 这个文件夹拷贝到 Salve2 节点的 /home/mysql 目录下

注:或者直接用 scp 命令拷贝

scp  -r  /home/mysql/yyyy-mm-dd_hh24-mi-ss  root@mysrvc:/home/mysql

20、停止 MySQLDB3 节点上的mysql实例,并备份 data 目录

[root@mysqldb3 ~]# service mysql3306 stop

[root@mysqldb3 ~]# cd /mysql/3306

[root@mysqldb3 3306]# mv data data.bak

21、执行恢复

[root@mysqldb3 3306]# innobackupex --defaults-file=/mysql/3306/my.cnf --user=sysadmin --apply-log /home/mysql/yyyy-mm-dd_hh24-mi-ss

[root@mysqldb3 3306]# innobackupex --defaults-file=/mysql/3306/my.cnf --user=sysadmin --copy-back /home/mysql/yyyy-mm-dd_hh24-mi-ss

22、修改 data 目录所有者权限  (如果使用mysql用户备份操作时,则无需做目录所有者权限修改)

[root@mysqldb3 3306]# chown -R mysql:mysql data

23、启动数据库实例

[root@mysqldb3 3306]# service mysql3306 start

24、在 MySQLDB3 节点查看 Master 节点的二进制文件名和位置信息

[root@mysqldb3 3306]# cat data/xtrabackup_binlog_pos_innodb

mysql_bin.000004 976

[root@mysqldb3 3306]# 

25、配置 MySQLDB3 节点复制信息

[root@mysqldb3 3306]#  su - mysql

[mysql@mysqldb3 ~]# mysql -u sysadmin -pmysql -P 3306 --socket=/tmp/mysql3306.sock

mysql> show slave status \G

Empty set (0.00 sec)

mysql> change master to

    -> master_host='192.168.1.41',

    -> master_port=3306,

    -> master_user='repl',

    -> master_password='repl',

    -> master_log_file='mysql_bin.000004',

    -> master_log_pos=976;

Query OK, 0 rows affected, 2 warnings (0.06 sec)

mysql> start slave;

Query OK, 0 rows affected (0.17 sec)

mysql> 

26、在 MySQLDB3 启动复制功能

mysql> start save;

27、测试

在 MySQLDB1节点的test数据库中执行创建数据表或数的更新操作,验证在 MySQLDB2 和 MySQLDB3 节点的test数据库中是否正常复制。

============================================

MySQL主从复制几个重要的启动选项

(1)、log-slave-updates

  log-slave-updates 这个参数用来配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的二进制日志进行同步操作。

(2)、master-connect-retry

  master-connect-retry 这个参数是用来设置在和主服务器连接丢失的时候,重试的时间间隔,默认是60秒。

(3)、read-only

  read-only是用来限制普通用户对从数据库的更新操作,以确保从数据库的安全性,不过如果是超级用户依然可以对从数据库进行更新操作。

(4)、slave-skip-errors

  在复制过程中,由于各种的原因,从服务器可能会遇到执行BINLOG中的SQL出错的情况,在默认情况下,服务器会停止复制进程,不再进行同步,等到用户自行来处理。

  Slave-skip-errors的作用就是用来定义复制过程中从服务器可以自动跳过的错误号,当复制过程中遇到定义的错误号,就可以自动跳过,直接执行后面的SQL语句。

  --slave-skip-errors=[err1,err2,…….|ALL]

  但必须注意的是,启动这个参数,如果处理不当,很可能造成主从数据库的数据不同步,在应用中需要根据实际情况,如果对数据完整性要求不是很严格,那么这个选项确实可以减轻维护的成本

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6665a3b2ad5176e5ef7dd835fc0accde.html