首页 > 代码库 > MySQL备份与恢复
MySQL备份与恢复
第一步准备工作:
为了避免数据的不一致问题的发生,在备份数据库文件期间,不允许对该数据库的数据进行更新操作。为了实现这个目的,最为简单的方法就是停止MySQL服务。然后,将备份文件复制到其他存储空间中。
另一种方法无需停止MySQL服务,而是使用MySQL命令“flush tables with read lock”将服务器内存中的数据刷新到数据库文件中,同时锁定所有的表,以保证备份期间不会有新的数据写入,从而避免数据的不一致问题发生。备份文件复制到其他存储空间后,使用MySQL命令“unlock tables”进行锁文件,MySQL服务实例即可重新提供数据更新服务,执行结果操作。
备注:MySQL命令“flush tables with read lock”禁止了所有数据库表的更新操作,但无法禁止数据库表的查询操作。
第二步:
MySQL数据库中的数据最终以文件的形式存在。备份的准备工作做好后,需要将数据库的那些文件拷贝到磁盘中?
如果数据库中全部是myISAM存储引擎的表,最为简单的数据库备份方法是“备份”整个数据库目录(例如,将choose数据库对应的choose目录拷贝到磁盘中即可)。
如果某个数据库中还存在InnoDB存储引擎的表,此时不仅需要“备份”整个数据库目录,还需要备份ibdata1表空间文件以及重做日志文件ib_logfile0和ib_logfile1.
备份数据库时,建议将MySQL配置文件一并进行备份。
第三步:
首先停止MySQL服务,然后将整个数据库目录、MySQL配置文件、ibdata1表空间文件以及重做日志文件ib_logfile0和ib_logfile1复制到新MySQL服务器对应目录,这样即可恢复数据库中的数据。
如果“新MySQL服务器”与“旧MySQL服务器”的数据库根目录不同,则还需要修改my.ini配置文件中的【mysqld】选项组中的datadir参考信息。