定义:
设置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