关键词1
关键词101
关键词201
关键词301
关键词401
关键词501
关键词601
关键词701
关键词801
关键词901
关键词1001
关键词1101
关键词1201
关键词1301
关键词1401
关键词1501
关键词1601
关键词1701
关键词1801
关键词1901
问答1
问答101
问答201
问答301
问答401
问答501
问答601
问答701
问答801
问答901
问答1001
问答1101
问答1201
问答1301
问答1401
问答1501
问答1601
问答1701
问答1801
问答1901
懂视1
懂视101
懂视201
懂视301
懂视401
懂视501
懂视601
懂视701
懂视801
懂视901
懂视1001
懂视1101
懂视1201
懂视1301
懂视1401
懂视1501
懂视1601
懂视1701
懂视1801
懂视1901
文库1
文库101
文库201
文库301
文库401
文库501
文库601
文库701
文库801
文库901
文库1001
文库1101
文库1201
文库1301
文库1401
文库1501
文库1601
文库1701
文库1801
文库1901
分类文章1
分类文章101
分类文章201
分类文章301
分类文章401
分类文章501
分类文章601
分类文章701
分类文章801
分类文章901
分类文章1001
分类文章1101
分类文章1201
分类文章1301
分类文章1401
分类文章1501
分类文章1601
分类文章1701
分类文章1801
分类文章1901
个人技术集锦
全部栏目
返回首页
操作系统
后端开发
数据库
前端开发
移动端开发
首页
操作系统
后端开发
数据库
前端开发
移动端开发
您的当前位置:
首页
正文
RedHatLinux下实现MySQL数据库镜像_MySQL
2020-11-09
来源:个人技术集锦
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条数据。
显示全文