共计 2311 个字符,预计需要花费 6 分钟才能阅读完成。
这期内容当中丸趣 TV 小编将会给大家带来有关 Linux 中怎么实现 MySQL 数据库镜像,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
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:mysqlbakmysqllog 设置日志文件的目录,
#其中 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:mysqllogmysqllog
binlog-do-db=backup
注意:当有错误产生时 *.err 日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行 slave start
重启 AB 机器,则可以实现双向的热备。
测试:
向 B 批量插入大数据量表 AA(1872000)条, A 数据库每秒钟可以更新 2500 条数据。
上述就是丸趣 TV 小编为大家分享的 Linux 中怎么实现 MySQL 数据库镜像了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。