InnoDB 存储引擎的热备份

InnoDB 存储引擎的热备份

​ 利用表空间迁移备份表(要求:innodb_file_per_table 参数设置为 ON ;迁移过程,表处于只读状态,不能进行 DDL 和写操作)

1、备份表步骤
#①备份表,执行 FLUSH TABLES ... FOR EXPORT 命令,此时数据库目录生成 cfg 文件,表处于只读状态
#注:本线程现在只能读 t2 表,无法读其它表;其它线程对 t3 表可读不可写,其它表无影响
flush tables t2 for export;

#②备份 ibd 文件和 cfg 文件(cfg 文件保存元数据,元数据用于验证导入表空间文件时的模式)
cp t2.cfg t2.ibd ~/backdir/backup_test_t2/

#③备份完成,解锁表
unlock tables;

2、恢复表步骤(假设表被误删)

#①重新创建表
CREATE TABLE `t2` (
  `id` bigint(32) NOT NULL,
  `insert_time` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

#②下线表
alter table t2 discard tablespace;

#③拷贝 ibd 和 cfg 文件到数据库目录
cp ~/backdir/backup_test_t2/* /home/mysql/mysqldata/test/

#④加载表
alter table t2 import tablespace;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值