Home  >  Article  >  Database  >  RedHatLinux下实现MySQL数据库镜像_MySQL

RedHatLinux下实现MySQL数据库镜像_MySQL

WBOY
WBOYOriginal
2016-06-01 13:54:12645browse

Redhat

MySQL从3.23.15版本以后提供数据库复制功能,利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。实现数据同步备份。
  数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(一般是my.cnf) 在Linux环境下在/etc/my.cnf 或者在mysql用户的home目录下面的my.cnf.
  
  设置方法:
  操作系统: RedHat Linux 9 mysql:mysql-standard-4.0.18-pc-linux-i686.tar.gz
  A Server: 192.168.0.1 主服务器master
  B Server: 192.168.0.10 副服务器slave
  A上已安装好MySQL且已有数据库,在B上安装mysql-standard-4.0.18, 安装步骤可解压后按INSTALL-BINARY上方法安装mysql,我将其然后启动 mysql.
  
  A服务器设置
  #mysql ?u root ?p Master开放一个账号dbbackup密码123456给IP:192.168.0.10有档案处理的权限. mysql>GRANT ALL ON *.* TO dbbackup@192.168.0.10 IDENTIFIED BY‘123456’ mysql>exit
  #mysqladmin ?u root ?p shutdown
  备份Master所有数据库..通常都用tar指令. (注意:tar的时候,MySQL是要在stop情况下)
  #tar zcvf /tmp/mysql.tar.gz /usr/local/src/mysql/data
  在A机器上修改/etc/my.cnf
  [mysqld]
  log-bin (生成.index文件。#设置需要记录log 可以设置log-bin=c:/mysqlbak/mysqllog 设置日志文件的目录,
  #其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文 件名为mysqllog的几个日志文件。)
  server-id=1
  sql-bin-update-same
  binlog-do-db=forimage (#指定需要日志的数据库为forimage)
  启动A服务器mysql: Bin/mysqld-safe ?user=mysql server-id=1 & (要指定server-id)
  此时由于加入log-bin参数,因此开始生成index文件,在/usr/local/src/mysql/data目录下有.index文件。档案纪录数据库的异动log. #mysql ?u root ?p 用show master status 命令看日志情况。
  
  B服务器设置
  设定/etc/my.cnf
  [mysqld]
  master-host=192.168.0.1
  master-user=dbbackup (#同步用户帐号)
  master-password=123456
  master-port=3306
  server-id=2
  master-connect-retry=60 (预设重试间隔为60秒 )
  replicate-do-db=forimage (只对数据库forimage更新 )
  log-slave-updates
  
  copy A上的/tmp/mysql.tar.gz 到B上的MySQL安装目录的data/下,并解压缩覆盖data/
  #chown ?R mysql /usr/local/src/mysql/data/
  #cd /usr/local/src/mysql/
  #chown ?R root:mysql .
  重启B服务器的mysql: #bin/mysqladmin ?u root shutdown #bin/mysql-safe ?user=mysql server-id=2 & (要指定server-id,与my.cnf对应)
  
  show slave status看同步配置情况。
  #bin/mysql ?u root
  则在/usr/local/src/mysq/data/目录会出现master.info,此文件纪录了Master MySQL server的信息. 如有要修改相关slave的配置要先删除该文件. 否则修改的配置不能生效。
  
  状况测试:
  1.A跟B网络及服务都正常情况下,由A端变化数据后,到B端浏览数据,检查是否有数据变化。
  2.模拟B当机,或是B不一定需要一直跟A有连接.将由A端变化数据后,到B端浏览数据,B点应该是没有数据变化的。
  
  双机互备模式
  如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。
  在A的配置文件中 mysqld 配置项加入以下设置:
  master-host=10.10.10.53
  master-user=backup
  master-password=1234
  replicate-do-db=backup
  master-connect-retry=10
  在B的配置文件中 mysqld 配置项加入以下设置:
  log-bin=c:/mysqllog/mysqllog
  binlog-do-db=backup
  
  注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave start
  重启AB机器,则可以实现双向的热备。
  
  测试:
  向B批量插入大数据量表AA(1872000)条, A数据库每秒钟可以更新2500条数据
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn