我们有一个 MySQL 数据库,其中有一堆正在迁移的表。
有些表包含大量对我们来说没用的历史数据,为了减少转储和恢复数据所需的时间,我们希望指定某些表仅转储结构/模式,同时确保其他表包含数据。
我还没有找到使用 mysqldump 或 xtrabackup 来执行此操作的方法。
有人能指点一下吗?
答案1
您可以使用--ignore-table
排除特定表。在这种情况下,创建两个转储是有意义的:一个用于数据库结构,一个用于数据本身,并将后者附加到第一个转储。
# dump db structure
mysqldump -h host -u user -p --no-data db_test > db_test.sql
# append db data (without `CREATE TABLE` statements)
mysqldump -h host -u user -p --no-create-info \
--ignore-table=db_test.table1 \
--ignore-table=db_test.table2 db_test >> db_test.sql