本节总结了一些备份的一般方法。
使用MySQL Enterprise Backup进行热备份
MySQL Enterprise Edition的客户可以使用MySQL Enterprise备份产品要做身体的整个实例或所选数据库,表格或两者的备份。本产品包括用于的功能增加的和压缩备份。备份物理数据库文件比逻辑技术更快地恢复到mysqldump.
命令。Innodb.
使用a复制表热备份机制。(理想情况下,Innodb.
表应表示大多数数据。)来自其他存储引擎的表将使用a复制温暖的备份机制。有关MySQL Enterprise Backup产品的概述,请参阅第30.2节“MySQL企业备份概述”。
用mysqldump制作备份
这mysqldump.程序可以备份。它可以备份各种表格。(看第7.4节“使用mysqldump进行备份”。)
为了Innodb.
表格,可以执行在线备份,该备份将在表中使用锁定锁定--Single-Transaction.
选择mysqldump.。看第7.3.1节“建立备份政策”第7.3.1节。
通过复制表文件进行备份
Myisam表可以通过复制表文件来备份(* .myd.
那*。我的我
文件和关联* .sdi.
文件)。要获得一致的备份,请停止服务器或锁定并刷新相关表:
冲洗表tbl_list.读锁;
你只需要读锁;这使其他客户端能够在您在数据库目录中的文件副本时继续查询表。需要刷新以确保在启动备份之前将所有活动索引页面写入磁盘。看第13.3.6节“锁定表和解锁表陈述”, 和第13.7.8.3节“灌水声明”。
只要服务器未更新任何内容,您也可以通过复制表文件来创建二进制备份。(但请注意,如果数据库包含,表文件复制方法不起作用Innodb.
表。此外,即使服务器没有主动更新数据,Innodb.
可能仍可能在内存中缓存修改数据而不会刷新到磁盘。)
有关此备份方法的示例,请参阅导出和导入示例第13.2.5节“导入表陈述”。
制作分隔文本文件备份
要创建包含表数据的文本文件,可以使用选择*进入外档'
。该文件在MySQL Server主机上创建,而不是客户端主机。对于此语句,输出文件可能已经存在,因为允许覆盖的允许文件构成安全风险。看第13.2.10节“选择声明”。此方法适用于任何类型的数据文件,但仅保存表数据,而不是表结构。文件名
' 从tbl_name.
另一种创建文本数据文件的方法(以及包含包含的文件创建表
备份表的陈述)是使用mysqldump.与之- 标签
选项。看第7.4.3节“使用mysqldump以分隔文本格式转储数据”。
重新加载分隔文本数据文件,使用加载数据
或者mysqlimport.。
通过启用二进制日志来制作增量备份
MySQL使用二进制日志支持增量备份。二进制日志文件为您提供要在执行备份的点后复制到数据库的数据库所需的信息。因此,要允许将服务器恢复到时间点,必须在其上启用二进制日志记录,这是MySQL 8.0的默认设置;看第5.4.4节“二进制日志”。
目前在您想要进行增量备份(包含自上次完整或增量备份以来发生的所有更改),您应该使用自旋转二进制日志冲洗日志
。完成此操作,您需要复制到备份位置所有二进制日志哪个范围从最后一个完整或增量备份的那一刻到最后一个。这些二进制日志是增量备份;在恢复时间时,您可以如此解释应用7.5节“时间点(增量)恢复”。下次执行完整备份时,您还应使用二进制日志使用冲洗日志
或者mysqldump - 灌木日志。看第4.5.4节“mysqldump - 数据库备份程序”。
使用副本制作备份
如果您在制作备份时具有服务器的性能问题,则可以帮助的一个策略用于设置复制并在副本上执行备份而不是在源上执行备份。看第17.4.1节“使用复制备份”。
如果要备份副本,则应备份其连接元数据存储库和应用程序元数据存储库(请参阅第17.2.4节“中继日志和复制元数据存储库”)当您备份副本的数据库时,无论您选择的备份方法如何。始终需要此信息以在恢复副本的数据后恢复复制。如果您的副本复制加载数据
陈述,您还应该备份任何sql_load- *
在副本为此目的使用的目录中存在的文件。副本需要这些文件恢复任何中断的复制加载数据
操作。此目录的位置是值的slave_load_tmpdir.
系统变量。如果没有使用该变量集启动服务器,则目录位置是值的TMPDIR.
系统变量。
恢复腐败表
如果你必须恢复myisam.
表现腐败的表,尝试使用它们修复表
或者myisamchk -r.第一的。这应该在所有案件的99.9%中工作。如果myisamchk.失败,看第7.6节“Myisam表维护和崩溃恢复”。
使用文件系统快照进行备份
如果您使用的是Veritas文件系统,则可以如下备份:
类似的快照功能可以在其他文件系统中使用,例如LVM或ZFS。