首页 > 数据库 > MySQL > 正文

CENTOS6.3中MYSQL主从数据库备份配置

2024-07-24 12:37:15
字体:
来源:转载
供稿:网友

前面讲过mysql热备份,下面小编再来给各位同学介绍一下在CENTOS6.3中MYSQL主从数据库备份配置的方 法,希望此教程对各位同学会有所帮助.

MySQL主主互备结构是基于mysql增量日志基础上的,区别于主从复制结构,在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这个改变是基于sql语句的改变,如果删除系统数据库源文件或删除后新创建同名MYSQL表实现同步则无效,这样两台服务器互为主从,并且都能向外提供服务,这就比使用主从复制具有更好的性能.

接下来我将使用两个相同的环境来实现这个效果:

系统环境:centos6.3

数据库:mysql-5.6.10

:在做此项配置之前首先要保证数据库当前无任何变动,建议同步前关闭WEB服务等影响数据库变动的服务 .

安装配置mysql(略)

1.主1 mysql配置:(192.168.7.201)

删除之前遗留bin日志:# rm -rf /usr/local/mysql/log/bin*

修改mysql配置文件:# vi /etc/my.cnf

添加:

  1. -----------------  
  2. # Replication Master Server 1  
  3. # bin日志路径  
  4. log-bin = /usr/local/mysql/log/bin.log  
  5. # 服务器ID号  
  6. server-id = 1  
  7. # 忽略mysql数据库复制  
  8. binlog-ignore-db=mysql  
  9. # 每次增长2  
  10. auto-increment-increment = 2  
  11. # 设置自动增长的字段的偏移量,即初始值为2    
  12. auto-increment-offset = 1   
  13. ------------  
  14.    
  15. # mysql -u root -p123456  

在主1上为主2添加同步帐号:> grant replication slave on *.* to 'slave'@'192.168.7.249' identified by '123456';

将主1的数据库表全部备份,并发送到主2服务器上,代码如下:

  1. # /usr/local/mysql/bin/mysqldump -u root -p123456 --opt --skip-lock-tables  --flush-logs  
  2. --all-database > /root/allbak.sql  
  3. # cd ~  
  4. # scp allbak.sql root@192.168.7.249:/root  

重启服务

  1. # service mysqld restart  
  2.    
  3. # mysql -u root -p123456;  

配置连接到主2服务器,注意这步一定要在主2添加账户后执行,代码如下:

  1. > stop slave;  
  2. > change master to 
  3. master_host='192.168.7.249',master_user='slave',master_password='123456';  
  4. > start slave;  

2.主2 mysql配置(192.168.7.249)

删除之前遗留bin日志:# rm -rf /usr/local/mysql/log/bin*

修改mysql配置文件:# vi /etc/my.cnf

添加:

  1. --------------------  
  2. # Replication Master Server 2  
  3. # bin日志路径  
  4. log-bin = /usr/local/mysql/log/bin.log   
  5. server-id=2  
  6. # 忽略mysql数据库复制  
  7. replicate-ignore-db=mysql  
  8. # 每次增长2  
  9. auto-increment-increment = 2  
  10. # 设置自动增长的字段的偏移量,即初始值为2    
  11. auto-increment-offset = 2  
  12. ---------------------   
  13.    
  14. # mysql -u root -p123456  

在主2上为主1添加同步帐号:> grant replication slave on *.* to 'slave'@'192.168.7.201' identified by '123456';

恢复主1的数据库到主2:#/usr/local/mysql/bin/mysql -u root -p123456 < /root/allbak.sql

重启服务:

# service mysqld restart

# mysql -u root -p123456;

配置连接到主1服务器,代码如下:

  1. > stop slave;  
  2. > change master to 
  3. master_host='192.168.7.201',master_user='slave',master_password='123456';  
  4. > start slave;  

最后分别登陆两台服务器mysql后台查看主主备份连接状态:

# mysql -u root -p123456;

> show slave statusG;

搜索这三行,如下则主主互备配置成功,代码如下:

  1. Slave_IO_State: Waiting for master to send event  
  2. Slave_IO_Running: Yes  //Vevb.com
  3. Slave_SQL_Running: Yes  

当主1的数据库增加,删除,改变数据时,主2也会同步更新.

当主2的数据库增加,删除,改变数据时,主1也会同步更新.

这样就可以配合keepalived实现数据库双机热备+数据同步互备,大大提高了MYSQL的可靠性和安全性.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表