mysql 数据库的同步问题 ( 双机热备 )
网上有不少关于 mysql 数据库服务器的数据同步文章,其实只有二位朋友发表的文章,其他都是转抄。
而这些文章中,仅对数据同步过程的操作作了一个记录,而没有把操作方法,原理与一些过程中出现的问题说明清楚。
因为工作需要, 我公司需要对美国服务器上的 mysql 数据库同步到香港服务器上,仅对部分业务相关表进行同步,而同时又需要把香港服务器上的产品数据同
步到美国服务器上,这是同一个数据库,不同表 table 的双向同步,我在设置过程中,参考了网上的中文文章与 msql.com 网站上的在线文档,多次成败,
也算是把 mysql 的这样同步搞个明白。
下面就是一些记录文章,希望可以说明一些内在原理,一些出错现象与处理方法。
mysql 的数据同步,在 mysql 官方网站文档上,叫 replication 字面是重作的意思,意译就是同步了。
其实, mysql 的同步,并不是使用同步 sync 这个单词而是用重作 replication , 很准确表明了 mysql 数据库操作的实质,是作同样的操作,或叫重作同样
的操作,以保持主数据库服务器 master 与 从属服务器 slave 之样的数据保持一致。 replication 就是有重复,重作的意思。
mysql 为了实现 replication 必须打开 bin-log 项,也是打开二进制的 mysql 日志记录选项。
mysql 的 bin log 二进制日志,可以记录所有影响到数据库表中存储记录内容的 sql 操作,如 insert / update / delete 操作,而不记录 select 这样的操
作。因此,我们可以通过二进制日志把某一时间段内丢失的数据可以恢复到数据库中, ( 如果二进制日志中记录的日志项,包涵数据库表中所有数据,那么,就
可以恢复本地数据库的全部数据了 )
而这个二进制日志,如果用作远程数据库恢复,那就是 replication 了。
这就是使用 replication 而不用 sync 的原因。
这也是为什么要设置 bin-log = 这个选项的原因。
在同步过程中,最重要的同步参照物,就是同步使用那一个二进制日志文件,从那一条记录开始同步。
下面,我们来讲解最核心的过程
上面同步的单词是 synchronization ,呵呵简写 sync ,也是 linux 下一个重要操作
下面的官方文档,说明如何安装与设置 mysql 同步操作,当然,英文版
http://dev.mysql.com/doc/mysql/en/Replication_HOWTO.html
现在,我们用中文复述一下过程
1. 首先,你应该有两个或两个以上的 mysql 数据库服务器,版本最好是在 3.3 以上 ( 当然啦,两个服务器不一定是两台机器,一台机器上安装两个 mysql
服务是可以的,同时,如果你对 mysql replication 原理十分精通的话,你甚至可以在一个 mysql 服务的两个不同数据库 database 之间作同步,看有没有
需要了 )
说明: 这两个服务器一般设置一个为 主服务器,或叫源服务器, master mysql server, 另一台或其他多台就是 replication slave 同步从服务器了。一
台 slave 与多台 slave 设置方法是一样的,这样你就可以作类似数据库集群了
2. 设置可访问 mysql 帐号,操作以英文为准
说明: 2.1 mysql 帐号一般设置为限定 ip 访问,以保障安全性
评论0
最新资源