Mysql Replication

来源:互联网 发布:网络布线工程报价 拆线 编辑:程序博客网 时间:2024/05/01 02:27

 

定义:
设置master 和 slave 数据库服务器,并将master中的更改更新到slave 数据库实例中,保存二者数据的

一致性。slave 可以有多个,同时向master同步。当然,master 也可以有多个,如果条件允许,推荐用

两个。这样,在master1 数据库crash之后,可以有master2继续对外提供服务和数据同步。

作用;
1、数据实时备份。
2、分担数据库压力,可以将读写操作分离在不同的数据库上执行,将写操作在master上执行,读操作在

slave数据库上执行。提高数据库的并发性能。
3、采用master-master-slave[slave...]模式,既可以提高数据库的并发性能,同时又可以在master崩溃

后提供可靠的服务。需要在两个master之间切换。

实现:
1、在master数据库上,配置binlog参数,格式采用mixed 比较好。master 会启动一个binlog dump

thread 线程来记录更新的logs.
2、在slave数据库上,执行change master to

[master_host='host',master_user='usr',master_password='',master_log_file,master_log_pos,...]

命令,然后 start slave。只要参数配置正确,边开始同步复制了。通过show master/slave status 查

看信息。slave端有一个io thread 和 sql thread来同步log和执行log.

master如何过滤复制
--binlog-do-db:指定记录log 的数据库
--binlog-do-table:
--binlog-ignore-db:指定不需要记录的db

slave如何过滤复制
--replicate-*
--replicate-do-db
--replicate-ignore-db
--replicate-rewrite-db
--replicate-do-table
注意:可以在db和table级别上过滤。为了安全,一般是在slave端来过滤。

当master failover后,如何确定新的master?
随时都可以用change master to 命令来改变master.
stop slave,reset master, change master to命令组合,当然,需要启动--log-bin

关于DRBD(distributed replicated block device)
是同步的自动复制技术。而master/slave是异步的。

 

注:更多详细信息,参查看mysql官方网站手册:http://www.mysql.com