xtrabackup 2.4 排除 某个 数据库 某个 表
xtrabackup version 2.4.26 based on MySQL server 5.7.35 Linux (x86_64) (revision id: 19de43b)
xtrabackup2.4选项参考
https://blog.youkuaiyun.com/weixin_34290390/article/details/93514244
如果你知道你想要备份的所有数据库名称,你可以使用 --databases 选项,并列出除了要排除的数据库之外的所有数据库。例如,如果你有两个数据库 db1 和 db2,而你想排除 db2,你可以这样做:
xtrabackup --backup --databases=db1 --target-dir=/path/to/backup
使用 --exclude 选项
如果你不确定所有数据库的名称,或者想要更灵活地指定哪些数据库被排除,可以使用 --exclude 选项。例如,要排除 db2 数据库:
xtrabackup --backup --exclude='db2/*' --target-dir=/path/to/backup
注意这里的路径模式 db2/* 是基于 XtraBackup 在备份时创建的目录结构。通常,每个数据库在备份目录中会有一个单独的目录。如果你使用的是较新版本的 XtraBackup 或有其他特定的文件系统布局,可能需要调整这个路径模式以正确指向你想要排除的数据库。
示例步骤
准备环境:确保你有足够的磁盘空间,并且已经安装了 Percona XtraBackup。
执行增量备份:根据你的需求选择使用 --databases 或 --exclude 选项。例如:
xtrabackup --backup --exclude='db2/*' --target-dir=/path/to/backup --incremental-basedir=/path/to/full-backup
在这里,/path/to/full-backup 是你的全备目录,这是增量备份的基础。
准备备份:增量备份完成后,你需要准备这个增量备份以便于恢复。这通常涉及到将增量备份应用到全备上。
xtrabackup --prepare --target-dir=/path/to/backup --incremental-dir=/path/to/incremental-backup
其中 /path/to/incremental-backup 是你的增量备份目录。
通过以上步骤,你可以在备份过程中排除特定的数据库。确保在执行任何备份或恢复操作前,你都详细检查了所有选项和路径,以避免数据丢失或损坏。
1
--tables-exclude=name
way as --tables, but matched names are excluded from
--databases-exclude=name
as --databases, but matched names are excluded from
tables-exclude (No default value)
databases-exclude (No default value)
2
xtrabackup 2.4 tables-exclude
xtrabackup 是一个由 Percona 开发的工具,用于备份和恢复 MySQL 或 MariaDB 数据库。它支持全备份和增量备份,并且可以与 Percona XtraDB Cluster (PXC) 或传统的 MySQL/MariaDB 数据库一起使用。
使用 xtrabackup 2.4 排除特定表
在 xtrabackup 中,你可以使用 --tables-exclude 选项来排除特定的表。这个选项允许你指定一个正则表达式,用于匹配并排除那些不应该被备份的表。
xtrabackup --backup --tables-exclude='正则表达式' --target-dir=备份目录
示例
假设你想备份所有数据库,但排除 testdb 数据库中的 test_table 表,你可以使用以下命令:
xtrabackup --backup --tables-exclude='^testdb\.test_table$' --target-dir=/path/to/backup
这里,^testdb.test_table$ 是一个正则表达式,它精确匹配 testdb 数据库中的 test_table 表。
注意点
正则表达式:确保你使用的正则表达式正确无误,以避免意外排除其他表。例如,如果你想排除多个表,可以使用 | 来分隔不同的表名或模式。
备份目录:确保指定的备份目录存在并且有足够的权限让 xtrabackup 写入数据。
性能影响:虽然排除特定表可以减少备份大小,但这也可能稍微影响备份的性能,因为 xtrabackup 需要额外处理排除逻辑。
恢复时注意:在恢复时,如果你使用了 --tables-exclude 选项排除了某些表,在恢复时也需要考虑这一点,确保不会丢失重要数据。
恢复包含排除表的备份
恢复包含排除表的备份时,你需要使用相同的 --tables-exclude 选项来确保那些被排除的表不会被错误地包含在恢复的数据中。例如:
xtrabackup --prepare --apply-log-only --target-dir=/path/to/backup
xtrabackup --copy-back --target-dir=/path/to/backup
确保在恢复过程中使用相同的正则表达式来正确处理被排除的表。
通过以上步骤,你可以有效地使用 xtrabackup 来备份和恢复 MySQL/MariaDB 数据库,同时排除特定的表。
6
https://www.cnblogs.com/hahaha111122222/p/18668742
- 全备份时排除指定表不备份
–tables-exclude:用于指定需要排除那些表不进行备份,支持正则和扩展正则;
xtrabackup --backup --parallel=6 \
--host="127.0.0.1" --user="root" --password="redhat" --port=3306 \
--datadir="/var/lib/mysql" --target-dir="/backup/xtrabackup_full" \
--tables-exclude='lct_net_manager\.tb_err_future_loc_20.*|lct_net_manager\.tb_heartbeat_data_20.*'
# 前面是库名,后面是表名
- 全备份时排除指定库不备份
–databases-exclude:用于指定排除哪些数据库不备份
xtrabackup --backup --parallel=6 \
--host="127.0.0.1" --user="root" --password="redhat" --port=3306 \
--datadir="/var/lib/mysql" --target-dir="/backup/xtrabackup_full" \
--databases-exclude='history'
7.
xtrabackup --tables-exclude 多个
在使用 Percona XtraBackup 进行数据库备份时,–tables-exclude 选项允许你指定要排除的表。这对于备份大型数据库时减少备份文件大小非常有用,尤其是当你只需要备份部分数据时。
使用 --tables-exclude 选项
你可以通过逗号分隔的方式指定多个表名进行排除。例如,如果你有一个名为 mydb 的数据库,并且想要排除 table1 和 table2,你可以使用以下命令:
xtrabackup --backup --datadir=/path/to/datadir --tables-exclude=mydb.table1,mydb.table2
排除整个数据库或模式
如果你想要排除整个数据库或者模式(schema),可以使用通配符。例如,要排除所有以 excluded_ 开头的表,可以这样做:
xtrabackup --backup --datadir=/path/to/datadir --tables-exclude='mydb.excluded_*'
排除多个模式或表
如果要排除多个模式或表,可以继续使用逗号分隔:
xtrabackup --backup --datadir=/path/to/datadir --tables-exclude='mydb.table1,mydb.table2,otherdb.table3'
注意点
格式和引号:确保在包含特殊字符(如点.或星号*)时使用引号(单引号或双引号),尤其是在 shell 命令行中。
精确性:确保表名和数据库名完全匹配,包括大小写(在某些系统上,MySQL 对标识符的大小写敏感)。
测试:在生产环境中应用之前,最好在测试环境中测试你的排除规则,以确保它们按预期工作。
性能:虽然排除特定表可以减少备份大小,但这也可能影响备份过程的性能,特别是当排除大量数据时。
示例
假设你有一个名为 company_db 的数据库,你想备份除了 employees 表和所有以 log_ 开头的表之外的所有表:
xtrabackup --backup --datadir=/path/to/datadir --tables-exclude='company_db.employees,company_db.log_*'
这样,employees 表和所有以 log_ 开头的表将被排除在备份之外。