mysqldump 跳过一个表

mysqldump 跳过一个表

我正在运行一个 cronjob,使用 mysqldump 备份我们的系统。数据库包含大约 90 个表。其中一个表非常大,偶尔会导致转储失败。

从手册中我看到你可以指定要转储的特定表

shell> mysqldump [options] db_name [tbl_name ...]

这让我开始思考。如果我有两个任务,一个用于转储巨大的表,另一个用于转储所有其他表,该怎么办?为了实现这一点,如果我可以执行类似

shell> mysqldump -u backupuser -p database huge_table > db_huge_table.sql
shell> mysqldump -u backupuser -p database --skip huge_table > db_rest.sql

不幸的是我没有看到这样的选项。我当然可以明确说明 90 个表,但这似乎很乱。

另一种选择是某种脚本,但在检查该路线之前,我会尝试这种资源。

CentOS 6.2 上的 MySQL 是 5.1.61

答案1

您可以使用--ignore命令行开关

   ·   --ignore-table=db_name.tbl_name

       Do not dump the given table, which must be specified using both the
       database and table names. To ignore multiple tables, use this
       option multiple times. This option also can be used to ignore
       views.

类似于

shell> mysqldump -u backupuser -p database --ignore-table=database.huge_table > db_rest.sql

相关内容