具有完整模式和有限数据的MySQL数据库转储

时间:2017-11-22 19:47:35

标签: mysql database bash dump

我在远程服务器上有我的客户端完整的数据库(大小=大约80 GB),这样我无法检索它的完整模式(所有表,视图,存储过程等)没有服务器崩溃或超时的数据。

因此,我需要构建一个脚本,将完整的MySQL数据库架构和有条件限制的数据集(例如,最近1年或2年的记录/行)转储到单独的.sql.gz.sql.bz2文件。

现在我知道如何通过命令行导出/转储完整的数据库,但我无法找到在导出脚本中设置数据限制的方法。

mysqldump -u <username> -p -A -R -E --triggers --single-transaction > full_backup.sql

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

--where选项可用于过滤转储的行。您为它提供了一个参数,其中包含将在WHERE查询的SELECT子句中进行的测试。

mysqldump -u username -p --where='date > NOW() - INTERVAL 2 YEAR' databasename tablename > tablename.sql

在转储整个数据库而不是特定表时,这可能不起作用,因为所有表都不太可能具有要以相同方式过滤的date字段。