备份:

mysqldump :将数据从数据库中导出再进行导入,数据完全一样,但有时效性,数据量大时备份会是个麻烦事。


主从复制:

mysql replication :有备份mysql的效果。将主mysql上执行的命令,通过binlog文件复制到从mysql上再执行一次,通常数据都是一致的,视网络影响大小可能会有延迟。某些命令会导致数据不一致:例如调用主机变量时,在主上和从上得到的结果是不一样的。



atlas,mycat等中间件:


通常配置mysql主从使用,达到读写分离,降低主mysql的资源开销,提高性能的目的。不足点是对一些特殊语句,取回的结果不同,例如在数据表中插入mysql的UUID,在主上执行完后,从再把这条命令复制过来执行,这时再查询mysql的UUID。得到的UUID值是不准确的(得到的是从mysql的UUID,实际上想要得到的是master的UUID,这时如果再根据这个值去做其他修改,数据的不一致性会更严重)