CentOS下MySQL双机热备配置(3)

作为从服务器Slave,会用master上的账号登陆到master上,读取master的binlog,写入到自己的中继日志 Relaylog,然后自己的SQL线程会负责读取这个中继日志,并执行一遍。 

在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响就可能会造成很严重的损失。

5.2.2   配置步骤

环境要求:

主数据库(Master)IP:10.254.1.248

备份数据库(Slave)IP:10.254.1.249

备份前保证两个数据库的数据一致

Master

进入MySQL命令行, 给备份主机赋予复制权限,即备份主机使用用户名backup,密码123456就可以连接到主服务器,backup就是同步账号

grant file,select,replication slave on  *.* to backup@10.254.1.249 identified by '123456';

 

修改配置文件my.cnf[mysqld]:

sevice-id=1

log-bin=mysql-bin --------------打开日志开关,二进制日志文件

max_binlog_size=104857600

binlog_format=mixed--------日志模式row level和statement level的结合

binlog-do-db= aeaiesb -------------在aeaiesb库进行的操作记录二进制日志文件,而不是对aeaiesb库的操作

binlog-ignore-db=mysql  --------------------忽略对mysql库的操作,即不记录到日志中

 

查看master状态

在MySQL命令行:

show master status

mysql> show master status;

+----------------------+-----------+------------------+------------------+

| File        | Position | Binlog_Do_DB |  Binlog_Ignore_DB |

+----------------------+-----------+-------------------+------------------+

| mysql-bin.000013 |    1150 | aeaiesb | mysql    |

+-----------------------+----------+------------------+------------------+

1 row in set (0.00 sec)

 

结果表示现在写日志的文件是mysql-bin.000013,位置是1105,slave端要从这个点开始同步备份aeaiesb

slave

停掉数据库

service mysql stop

 

修改配置文件my.cnf,添加如下配置

server-id=2

replicate-same-server-id

master-host=10.254.1.248

master-user=backup

master-password=123456

master-port=3306

master-connect-retry=60 ----重复连接时间间隔

replicate-do-db=aeaiesb---同步master的aeaiesb库

relay-log=miniweb2-relay-bin----设置I/O线程读master的binlog并写入本地的文件名,即为relay-log

 

重启数据库

service mysql start

 

在MySQL命令行, 查看slave状态

mysql> show slave status/G;

***************************  1. row ***************************

Slave_IO_State:

Master_Host: 10.254.1.248

Master_User: backup

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql_bin.000013

Read_Master_Log_Pos: 1105

Relay_Log_File:  localhost-relay-bin.000001

Relay_Log_Pos: 4

Relay_Master_Log_File: mysql_bin.000013

Slave_IO_Running: No

Slave_SQL_Running: Yes

Replicate_Do_DB: aeaiesb

 

这时 Slave_IO_Running的值是No,I/O线程没有启动,是无法进行同步的处理步骤:

1) 在命令行下:

(1)slave stop;

(2)change master to  master_host='10.254.1.248',master_user='backup',master_password='123456',master_log_file='mysql-bin.000014',master_log_pos=1150  ;(前面查看的master状态)

(3)slave start;

(4)show slave status;

mysql>  show slave status/G;                                                                                                         *************************** 1. row ***************************

Slave_IO_State: Waiting for master to  send event

Master_Host: 10.254.1.248

Master_User: backup

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000013

Read_Master_Log_Pos: 1105

Relay_Log_File:  localhost-relay-bin.000002

Relay_Log_Pos: 251

Relay_Master_Log_File: mysql-bin.000013

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: aeaiesb

 

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

转载注明出处:https://www.heiqu.com/170db8402583b196c98e02b1a8176407.html