MySQL 迁移表空间,备份单表

来源:这里教程网 时间:2026-03-01 15:56:40 作者:

迁移表空间,可以使用xtrabackup工具备份源表。要求条件: 导出的单表必须拥有独立的表空间文件,数据库系统参数innodb_file_per_table设置为on。 1)使用xtrabackup备份单表sudo /usr/bin/xtrabackup --defaults-file=/etc/my.cnf --tables=flight.test2021 --user=root --password='XXXXXX' --socket=/home/mysql_data/mysql.sock --parallel=4 --lock-ddl --backup \--target-dir=/home/backup/load & 2)使用工具xtrabackup对备份文件进行日志恢复。sudo /usr/bin/xtrabackup --prepare --export --target-dir=/home/backup/load 3)在目标库flight上,用源表建表语句建表。4)在目标库 flight上,设置会话级,不记日志模式: set sql_log_bin=0。5)在目标库 flight上,导出表结构,命令行执行alter table  test2021 discard tablespace。 6)将备份出的   test2021所有文件,复制到目标库的表 test2021 下面的对应位置上,修改文件权限:chown mysql.mysql  test2021.*。7) 在目标库 flight上,命令行上执行  alter table  test2021 import tablespace,等待几分钟。 8)验证,select count(*) from test2021,源端与目标端,记录数一直即可。 另: --tables=flight.test2021 默认是模糊匹配,如果需要精确匹配,则需要借助正则表达式。如匹配单表: --tables='^flight.test2021$', 如果不使用正则表达式,则需要匹配同一个库下表名包含关键字 t est2021的其他表。

相关推荐