参考资料
第19章_数据库备份与恢复.pdf · 资料文件 · 语雀
1 概述
逻辑备份:对数据库对象利用工具进行导出工作,汇总入备份文件内。逻辑备份恢复速度慢,但占用空间小,更灵活。MySQL 中常用的逻辑备份工具为mysqldump 。逻辑备份就是 备份sql语句 ,在恢复的时候执行备份的sql语句实现数据库数据的重现。
物理备份:备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,但占用空间比较大,MySQL中可以用xtrabackup工具来进行物理备份。
2 数据库备份与恢复
逻辑备份与恢复
- 逻辑备份
MySQL 中常用的逻辑备份工具为mysqldump
- 备份一个数据库:
mysqldump –u 用户名称 –h 主机名称 –p密码 待备份的数据库名称[tbname, [tbname...]]> 备份文件名称.sql - 备份部分表:
mysqldump -uroot -p officialweb book> book.sql
其他操作(如只备份结构不备份数据)
详见:第19章_数据库备份与恢复.pdf · 资料文件 · 语雀->2. mysqldump实现逻辑备份
- 逻辑恢复
逻辑备份得到的是sql语句(如insert一堆数据),此时可以通过执行命令mysql –u root –p [dbname] < backup.sql以恢复数据。
详见:第19章_数据库备份与恢复.pdf · 资料文件 · 语雀->3. mysql命令恢复数据
物理备份与恢复
- 物理备份
直接将MySQL中的数据库文件复制出来,特点:
- 这种方式方便、快速,但不是最好的备份方法,因为实际情况可能 不允许停止MySQL服务器 或者 锁住表 ,而且这种方法 对InnoDB存储引擎 的表不适用。
- 对于MyISAM存储引擎的表,这样备份和还原很方便,但是还原时最好是相同版本的MySQL数据库,否则可能会存在文件类型不同的情况。
- 物理备份完毕后,执行
UNLOCK TABLES来结算其他客户对表的修改行为。
为了保证备份的一致性,常用物理备份的准备方法:
- 方式1:备份前,将服务器停止。
- 方式2:备份前,对相关表执行
FLUSH TABLES WITH READ LOCK操作。这样当复制数据库目录中的文件时,允许其他客户继续查询表。同时,FLUSH TABLES语句来确保开始备份前将所有激活的索引页写入硬盘。说明:MySQL的数据库目录位置不一定相同。
- 在Windows平台下,MySQL 8.0存放数据库的目录通常默认为 “ C:\ProgramData\MySQL\MySQLServer 8.0\Data ”或者其他用户自定义目录;
- 在Linux平台下,数据库目录位置通常为/var/lib/mysql/;
- 在MAC OSX平台下,数据库目录位置通常为“/usr/local/mysql/data”
- 物理恢复
直接将备份的数据库数据拷贝到数据目录下,并重启MySQL服务器,然后设置权限。详见下方文档
详见:第19章_数据库备份与恢复.pdf · 资料文件 · 语雀->5. 物理恢复:直接复制到数据库目录
3 表的导出和导入
详见:第19章_数据库备份与恢复.pdf · 资料文件 · 语雀->6. 表的导出与导入
4 数据库迁移
最常见和最安全的方式是使用mysqldump命令导出数据,然后在目标数据库服务器中使用MySQL命令导入。
详见:第19章_数据库备份与恢复.pdf · 资料文件 · 语雀->7. 数据库迁移
5 删除挽救
详见:第19章_数据库备份与恢复.pdf · 资料文件 · 语雀->8. 删库了不敢跑,能干点啥?
