您的位置:首页 > 运维架构 > Linux

Linux平台Mysql双机热备实施方案

2017-03-20 17:37 435 查看
准备:

确保两台数据库服务器具有相同的初态。

确保两台服务器的防火墙开启mysql的3306端口,没有开启自行添加。

vim /etc/sysconfig/iptables

添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

 
主从单向复制

 
在主服务器上创建备份账户,命令如下:

mysql>grant replication slave on *.* to '账户名称'@'从服务器地址'identified
by '密码';

 

刷新账户权限:

mysql> flush privileges;

 

 
修改主服务器的配置文件,文件位置:/etc/my.cnf

vim /etc/my.cnf

添加如下字段:

##需要备份的数据库

binlog-do-db = test_db

##忽略备份的数据库,这里忽略的是系统自带的库(红色部分)

binlog-ignore-db = mysql 

binlog-ignore-db = information_schema 

binlog-ignore-db = performance_schema

binlog-ignore-db = test

read-only=0

auto-increment-increment = 10

auto-increment-offset = 1

 

 
查看主服务器master的状态:

mysql>show master status \G;

记住File和Position的值。

 

 
修改从服务器的配置文件,文件位置:/etc/my.cnf

vim/etc/my.cnf

修改如下字段:

server = 1 改成 server = 2

添加如下字段:

##需要备份的数据库

replicate-do-db = test_db

##忽略备份的数据库,这里忽略的是系统自带的库(红色部分)

replicate-ignore-db=mysq

replicate-ignore-db=information_schema       

replicate-ignore-db= performance_schema

replicate-ignore-db=test

relay_log=mysqld-relay-bin

log-slave-updates = on

 

修改之后重启mysql服务

 

 
从服务器开始同步

mysql>CHANGE MASTER TO MASTER_HOST=‘主服务器ip地址’,MASTER_USER=‘同步账户名称’,MASTER_PASSWORD=‘密码’,MASTER_LOG_FILE=‘第四步从服务器的File值’,MASTER_LOG_POS=第四步从服务器的Position值;

 

重启mysql服务

 

 
查看同步状态

mysql>SHOW MASTER STATUS \G;

 

查看下面两项的值,如果都为yes代表同步成功。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

 

 
主从双向复制

 
在从服务器上创建备份账户,命令如下:

mysql>grant replication slave on *.* to '账户名称'@'主服务器地址'identified
by '密码';

 
修改从服务器的配置文件,文件位置:/etc/my.cnf

vim /etc/my.cnf

read-only=0

##忽略备份的数据库,这里忽略的是系统自带的库(红色部分)

binlog-ignore-db = mysql 

binlog-ignore-db = information_schema 

binlog-ignore-db = performance_schema

binlog-ignore-db = test

auto-increment-increment = 10

auto-increment-offset = 2

 
查看从服务器master的状态:

mysql>show master status \G;

记住File和Position的值。

 
修改主服务器的配置文件,文件位置:/etc/my.cnf

vim/etc/my.cnf

##需要备份的数据库

replicate-do-db =test_db

##忽略备份的数据库,这里忽略的是系统自带的库(红色部分)

replicate-ignore-db=mysq

replicate-ignore-db=information_schema       

replicate-ignore-db= performance_schema

replicate-ignore-db=test

relay_log=mysqld-relay-bin

log-slave-updates = ON

 

修改之后重启mysql服务

 

 
主服务器开始同步

mysql>CHANGE MASTER TO MASTER_HOST=‘从服务器ip地址’,MASTER_USER=‘同步账户名称’,MASTER_PASSWORD=‘密码’,MASTER_LOG_FILE=‘第四步从服务器的File的值’,MASTER_LOG_POS=第四步从服务器的Position值;

 

重启mysql服务

 

 
查看同步状态

mysql>SHOW MASTER STATUS \G;

 

查看下面两项的值,如果都为yes代表同步成功。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

 

如果为no,可以查看日志,目录为/usr/local/mysql/data/主机名.err

多数情况由以下原因造成:

防火墙关闭或开启3306端口

同步时用户名密码是否正确

同步时IP地址填写正确

 

mysql错误日志提示没有找到中继日志文件的解决办法:

1.停止mysql服务

2.在/usr/local/mysql/data目录下删除,relay-log.info、主机名-relay-bin.000***、主机名-relay-bin.index三个文件后重启服务。

 

验证:主服务器随便写点数据,观察从服务器变化。反向测试,观察主服务器变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息