PXC从完整备份中恢复指定表

PXC从完整备份中恢复指定表

PXC 从完整备份中恢复指定的表

备份服务器
备份文件处理
# 切换到备份目录下
cd /data/backups/full/
# 解压文件,使用gzip压缩的
gunzip mysql-23_yl_2021-06-29.gz 
# 切换到临时目录
cd /tmp
# 创建临时文件夹
mkdir -pv outputdir
# 使用xbstream解压出来很多.qp文件
xbstream -x < /data/backups/full/mysql-23_yl_2021-06-29 -C ./outputdir/
# 把需要恢复的文件拷贝到数据库服务器上,
scp yl_user.idb.qp 172.34.21.23:~

数据库服务器

# 解压qp文件
# .qp结尾的压缩文件,需要安装qpress工具,因为innobackupex在解压时默认使用该工具
# 解压完之后就能看到 yl_user.idb 文件
innobackupex --decompress ./

数据库操作

随便登录一台机器

mysql -uroot -p
-- 切换数据库
use yl;
-- 备份数据表
XXXXX
-- 删除数据表
drop table yl_user;
-- 创建数据表
CREATE TABLE XXXXXX

以下操作需要在所有节点执行,不知道是不是这种恢复方式不会同步的问题

-- 修改全局变量 pxc_strict_mode
SET global pxc_strict_mode = PERMISSIVE ;
-- 加写锁,确保安全
lock tables yl_user write;
-- 丢弃表空间
alter table yl_user discard tablespace;     

拷贝数据文件

拷贝数据文件到mysql目录下,并且修改权限

cp yl_user.ibd /data/mysql/yl/
chown -R mysql:mysql /data/mysql/yl/yl_user.ibd 

切换回数据库

-- 载入表空间
alter table yl_user import tablespace;
-- 查看数据恢复情况
select count(1) from yl_user;
-- 解锁
unlock tables;
-- 修改全局变量
SET global pxc_strict_mode = ENFORCING  ;

参考连接

posted @   武胜造纸农  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示