说明1.1 xtrabackupmysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷。但一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldump就力不从心了。Percona-Xtrabackup备份工具,是实现MySQL在线热备工作的不二选择,可进行全量、增量、单表备份和还原。(但当数据量更大时,可能需要考虑分库分表,或使用 LVM 快照来加快备份速度了)Xtrabackup有两个主要的工具:xtrabackup、innobackupex(1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表。(2)innobackupex-1.5.1则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁XtraBackup优势 :
无需停止数据库进行InnoDB热备
增量备份MySQL
流压缩到传输到其它服务器
能比较容易地创建主从同步
备份MySQL时不会增大服务器负载
1.2 复制为什么要做主从复制? 1.为实现读写分离,减轻主库负载或数据分析。 2.为数据安全,做备份恢复。 3.当出现问题时,主从切换,实现高可用。考虑点; 一主一从,一旦做了主从切换,不通过其它HA手段干预的话,业务访问的还是原IP,而且原主库很容易就作废了。 于是 主-主 复制就产生了,凭借各自不同的 server-id ,可以避免 “A的变化同步到B,B应用变化又同步到A” 这样循环复制的问题。但建议是,主主复制,其中一个主库强制设置为只读,主从切换后架构依然是可用的。 复制过程是slave主动向master拉取,而不是master去推的,所以理想情况下做搭建主从时不需要master做出任何改变甚至停服,slave失败也不影响主库。3.原理(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);(2) slave将master的binary log events拷贝到它的中继日志(relay log);(3) slave重做中继日志中的事件,将改变反映它自己的数据。
该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二进制日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。
下一步将master的binary log拷贝到它自己的中继日志。首先