MariaDB - Backup 备份方法
数据是业务和运营的基础,面对各种可能的威胁(例如,攻击者、系统故障、升级失败和维护错误),备份仍然至关重要。 这些备份采用多种形式,并且存在许多用于创建它们的选项,并且在这些过程中具有更广泛的选项集。 要记住的重要事项是数据库类型、关键信息和涉及的结构。 此信息决定了您的最佳选择。
选项
备份的主要选项包括逻辑备份和物理备份。 逻辑备份包含用于恢复数据的 SQL 语句。 物理备份包含数据的副本。
逻辑备份提供了在具有不同配置的另一台机器上恢复数据的灵活性,而物理备份通常仅限于相同的机器和数据库类型。 逻辑备份发生在数据库和表级别,物理备份发生在目录和文件级别。
物理备份的大小小于逻辑备份,执行和恢复所需的时间也更少。 物理备份还包括日志和配置文件,但逻辑备份不包括。
备份工具
用于 MariaDB 备份的主要工具是 mysqldump。 它提供逻辑备份和灵活性。它也被证明是小型数据库的绝佳选择。 Mysqldump 将数据转储为 SQL、CSV、XML 和许多其他格式。 如果没有明确的指示,它的输出不会保留存储过程、视图和事件。
mysqldump 备份有三个选项 −
Raw data − 通过 --tab 选项将表转储为原始数据文件,该选项还指定了文件的目标 −
$ mysqldump -u root -p --no-create-info \ --tab=/tmp PRODUCTS products_tbl
Data/Definitions export − 此选项允许将单个或多个表导出到文件,并支持备份主机上的所有现有数据库。 检查将内容或定义导出到文件的示例
$ mysqldump -u root -p PRODUCTS products_tbl > export_file.txt
Transfer − 也可以将数据库和表输出到另一台主机
$ mysqldump -u root -p database_name \ | mysql -h other-host.com database_name
使用 THE SELECT...INTO OUTFILE 语句
另一种导出数据的方法是使用 SELECT...INTO OUTFILE 语句。 这个简单的选项将表格输出到一个简单的格式化文本文件中 −
mysql> SELECT * FROM products_tbl -> INTO OUTFILE '/tmp/products.txt';
它的属性允许将文件格式化为您喜欢的规范。
请注意此声明的以下特点 −
文件名必须指定您想要的输出位置。
您需要 MariaDB 文件权限才能执行语句。
输出的文件名必须是唯一的。
您需要在主机上登录凭据。
在 UNIX 环境中,输出文件是全局可读的,但其服务器所有权会影响您删除它的能力。 确保您有特权。
在备份中使用 CONNECT
CONNECT 处理程序允许导出数据。 这证明主要在 SELECT...INTO OUTFILE 操作不支持文件格式的情况下有用。
查看以下示例 −
create table products engine = CONNECT table_type = XML file_name = 'products.htm' header = yes option_list = 'name = TABLE,coltype = HTML,attribute = border = 1;cellpadding = 5' select plugin_name handler, plugin_version version, plugin_author author, plugin_description description, plugin_maturity maturity from information_schema.plugins where plugin_type = 'STORAGE ENGINE';
其他工具
备份的其他选项如下 −
XtraBackup − 此选项针对 XtraDB/InnoDB 数据库并适用于任何存储引擎。 从 Percona 的官方网站了解有关此工具的更多信息。
Snapshots − 一些文件系统允许快照。 该过程包括使用读锁刷新表、挂载快照、解锁表、复制快照,然后卸载快照。
LVM − 这种流行的方法使用 Perl 脚本。 它在每个表上获得一个读锁并将缓存刷新到磁盘。 然后它获取快照并解锁表。 有关详细信息,请访问官方 mylvmbackup 网站。
TokuBackup − Percona 提供的这个解决方案提供了热备份,同时考虑了 InnoDB 备份选项的问题和限制。 它会在应用程序继续操作文件的同时生成文件的事务性声音副本。有关详细信息,请访问 Percona 网站。
INNODB 注意事项
InnoDB 使用缓冲池来提高性能。 在备份中,配置 InnoDB 以避免将整个表复制到缓冲池中,因为逻辑备份通常执行全表扫描。