主主循环同步配置

来源:互联网 发布:phxsql mysql 5.7 编辑:程序博客网 时间:2024/05/21 22:37

1 授权用户

(1)A服务器:

mysql> grant replication slave,file on *.* to 'backup1'@'192.168.1.12' identified
 by '123456';
Query OK, 0 rows affected (0.00 sec)

 

(2)B服务器:

mysql> grant replication slave,file on *.* to 'backup2'@'192.168.1.10' identified
 by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
然后都停止MYSQL 服务器。


2 配置文件

在两个机器上的my.ini里面都开启二进制日志。

(1)A服务器my.ini

#服务器编号。

server-id = 1

log-bin=mysql-bin

#启用从属服务器上的日志功能,使这台计算机可以用来构成一个镜像链(A->B->C)

log-slave-updates

#从库是否只读,0表示可读写,1表示只读

read-only=1

#只复制某个表

#replicate-do-table=tablename

#只复制某些表(可用匹配符)

#replicate-wild-do-table=tablename%

#只复制某个库

replicate-do-db = backup

#只复制某些库

#replicte-wild-do-db=dbname%

#不复制某个表

#replicate-ignore-table=tablename

#不复制某些表

#replicate-wild-ignore-table=tablename%

#不复制某个库

replicate-ignore-db=mysql

#复制完的sql语句是否立即从中继日志中清除,1表示立即清除

relay-log-purge = 1

#从服务器主机,用于show slave hosts生成从库清单

report-host=slave-1

#即不管发生什么错误,镜像处理工作也继续进行

slave-skip-errors=all

#每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安#全的做法,但效率最低。

#默认设置是n=0,意思是由操作系统来负责二进制日志文件的同步工作。

sync_binlog=1

#全局增量值。

auto_increment_increment=2

#全局增量起始值。一般地,需要设置auto_increment_increment和auto_increment_offset是

#在多台主mysql同时工作的情况下,进行分表处理才需要的。

auto_increment_offset=1

 

(2)B服务器my.ini

#服务器编号

server-id = 2

log-bin=mysql-bin

#启用从属服务器上的日志功能,使这台计算机可以用来构成一个镜像链(A->B->C)

log-slave-updates

#从库是否只读,0表示可读写,1表示只读

read-only=1

#只复制某个表

#replicate-do-table=tablename

#只复制某些表(可用匹配符)

#replicate-wild-do-table=tablename%

#只复制某个库

replicate-do-db = backup

#只复制某些库

#replicte-wild-do-db=dbname%

#不复制某个表

#replicate-ignore-table=tablename

#不复制某些表

#replicate-wild-ignore-table=tablename%

#不复制某个库

replicate-ignore-db=mysql

#复制完的sql语句是否立即从中继日志中清除,1表示立即清除

relay-log-purge = 1

#从服务器主机,用于show slave hosts生成从库清单

report-host=slave-2

#即不管发生什么错误,镜像处理工作也继续进行

slave-skip-errors=all

#每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安#全的做法,但效率最低。

#默认设置是n=0,意思是由操作系统来负责二进制日志文件的同步工作。

sync_binlog=1

#全局增量值。

auto_increment_increment=2

#全局增量起始值。一般地,需要设置auto_increment_increment和auto_increment_offset是

#在多台主mysql同时工作的情况下,进行分表处理才需要的。

auto_increment_offset=1

3进入MYSQLSHELL

(1)A服务器:

mysql> flush tables with read lock/G
Query OK, 0 rows affected (0.00 sec)

mysql> show master status/G
       File: mysql-bin.000001
       Position: 98
     Binlog_Do_DB: backup
   Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)

(2)B服务器:

mysql> flush tables with read lock/G
Query OK, 0 rows affected (0.00 sec)

mysql> show master status/G
       File: mysql-bin.000001
       Position: 98
     Binlog_Do_DB: backup
   Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)

完成以上两步后,然后备份自己的数据,保持两个机器的数据一致。

4 在各自机器上执行CHANGE MASTER TO命令

(1)A服务器:

mysql> change master to
    -> master_host='192.168.1.12',
    -> master_user='backup2',
    -> master_password='123456',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=598;
Query OK, 0 rows affected (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

(2)B服务器:

mysql> change master to
    -> master_host='192.168.1. 10',
    -> master_user='backup1',
    -> master_password='123456',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=98;
Query OK, 0 rows affected (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

5 查看各自机器上的IO进程和SLAVE进程是否都开启

在A,B服务器中分别执行如下操作:

    mysql>show slave status /G;

    如果下面三项显示为这样,则表示已经启动正常。

Slave_IO_State: Waiting for master to send event

    Slave_IO_Running: Yes

Slave_SQL_Running: Yes

 

还可以在A,B服务器中分别执行如下操作:

(1)       A服务器:

mysql> show processlist/G

*************************** 1. row ***************************
    Id: 1
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 2130
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 2
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 1223
  State: Has read all relay log; waiting for the slave I/O thread to update it
   Info: NULL
*************************** 3. row ***************************
     Id: 3
   User: root
   Host: localhost
     db: test
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
*************************** 4. row ***************************
     Id: 4
   User: backup2
   Host: 192.168.1.12:3307
     db: NULL
Command: Binlog Dump
   Time: 1398
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
4 rows in set (0.00 sec)

 

(2)       B服务器

mysql> show processlist/G

*************************** 1. row ***************************
    Id: 19
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 2130
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 20
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 1223
  State: Has read all relay log; waiting for the slave I/O thread to update it
   Info: NULL
*************************** 3. row ***************************
     Id: 21
   User: root
   Host: localhost
     db: test
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
*************************** 4. row ***************************
     Id: 22
   User: backup1
   Host: 192.168.1.10:3307
     db: NULL
Command: Binlog Dump
   Time: 1398
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
4 rows in set (0.00 sec)

转载:http://blog.csdn.net/yangsongpan502/article/details/2855388