本文地址:https://www.askmac.cn/archives/mysql-more-bk-related.html
11.5 备份日志和状态文件
除了备份数据库之外,你还应该备份以下文件:
- 你的二进制日志文件。如果你不得不进行数据库恢复的话,binary log备份存储了你在备份之后的更新。
- 由服务端所使用的配置项文件(cnf或my.ini文件),这些文件包含了在数据库发生奔溃后恢复所需的的配置信息。
- Replication从库端(Slave)所建立的一个info文件,这个文件包含有所需连接的主库信息。以及relay-log.info文件,这个文件记录了当前处理relay日志的进度情况。
- Replication从库在处理LOAD DATA INFILE语句时会建立数据临时文件。这些文件被放置在由slave_load_tmpdir系统变量所设置的目录位置下,此变量可以在服务端启动时通过 –slave-load-tmpdir项进行设置。当slave_load_tmpdir未被设置,那么文件就会被存放在操作系统变量tmpdir都指定的位置。其处理的文件会以SQL_LOAD- 打头。
为了备份以上这些文件,你可以使用一般的文件系统操作。静态文件如配置文件(option file)不需要特别的注意即可进行备份。动态文件如服务端正在运行且改变的日志文件,则需要停止服务端,然后进行备份。
11.6 使用Replication从库来作为备份辅助
当你的MySQL服务端在Replication建立中是作为主库(master)存在,那么你可以使用从库来进行备份,而不是直接备份你的主库:
- 从库服务端停止处理从主库传来的更新。你可以首先关闭服务端,或通过执行STOP SLAVE SQL_THREAD语句停止更新。末了,对表进行flush处理,强制将那些待处理的变更刷入磁盘。
- 对从库进行备份。可允许使用的方法取决于你是否关闭了服务端。如果你关闭了从库,那么你就不能使用如mysqldump或mysqlhotcopy等工具来进行连接备份。
- 备份完后,如果服务端关着,那么重启服务端。如果服务端正在运行,那么执行START SLAVE SQL_THREAD语句来重启SQL线程。
这种方法建立备份的好处是其进行的操作并不会在主库发生。因此,主库不会受到任何中断打扰,而备份工作不会额外利用到挤占主库相关的磁盘,并受到负载影响。
11.7 使用MySQL Cluster来避免灾难
MySQL Cluster架构使用了多个集群节点来提供表数据的冗余拷贝。这种处理方式本身并不是一种备份技术,但其提供的数据冗余功能可降低在某节点出现不可用时,出现潜在的数据损失。因此,你需要进行灾难恢复的可能性被大大降低了。按照你对数据丢失的敏感性要求,增加更多的节点可进一步增加数据冗余度和数据安全性。
Leave a Reply