首页 > 数据库 > MySQL > MySQL 迁移表空间,备份单表
迁移表空间,可以使用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的其他表。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9606353/viewspace-2774696/ ,如需转载,请注明出处,否则将追究法律责任。