innobackupex 热备指定库表操作
admin
2023-04-20 05:03:02
0

项目场景:
一个实例中存在几张大表,该表是开发通过程序进行归档的历史表,但是偶尔需要给业务提供查询使用,由于实例都是定期做全量备份的,未避免对该实例空间及备份造成压力,所以建议将这些归档表迁移到一个单独的静态实例中,提供线下查询。
那么任务来了,即备份一个库中超过50G的大表,并且恢复到另外一个实例上。

解决方案:
1.首先想到的肯定是mysqldump。
优点:可以进行指定表的备份,备份后,直接到指定恢复的实例上执行source命令导入数据,操作简便。
缺点:由于本次操作的表很大,而mysqldump是单线程操作,所以导致备份以及恢复的时间尤为漫长,对于效率为主的操作,不建议采取这种办法。
2.利用热备工具innobackupex方式。
优点:可以进行指定表的备份和恢复,操作时间快,效率高。
优点:备份和恢复操作命令比较复杂。

一切工作皆讲效率,所以下面讲解方案2的具体操作方法。
首先备份指定表的命令为:

/usr/local/percona-xtrabackup-2.4.5-Linux-x8664/bin/innobackupex --defaults-file=/data/mysql/3306/conf/my.cnf --host=127.0.0.1 --port=3306 --tmpdir=/tmp/ --user=root --password='root@123' --databases='test.t1 test.t2' --slave-info --no-timestamp /home/backup/

备份完成后,发现在备份路径下备份出指定的表。
innobackupex 热备指定库表操作

然后进行恢复,指定表的备份,恢复操作要加上指定命令--export
如下:

/usr/local/percona-xtrabackup-2.4.5-Linux-x86_64/bin/innobackupex --apply-log --export /home/backup/

发现新增.cfg和.exp文件。
innobackupex 热备指定库表操作

在新实例上恢复备份的表。
a.从备份的实例上查看建表语句,在新实例上创建相同的表。

mysql> show create table t1\G
1. row
Table: t1
Create Table: CREATE TABLE t1 (
id int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> show create table t2\G
1. row
Table: t2
Create Table: CREATE TABLE t2 (
id int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

b.将新建的表做discard tablespace 操作

mysql> ALTER TABLE test.t1 DISCARD TABLESPACE;
Query OK, 0 rows affected (0.05 sec)

mysql> ALTER TABLE test.t2 DISCARD TABLESPACE;
Query OK, 0 rows affected (0.04 sec)

发现表结构如下变化
innobackupex 热备指定库表操作

c.将备份后,恢复得到的.ibd,.exp文件拷贝到新实例下,并修改属主属组权限。
innobackupex 热备指定库表操作

d.在新实例上将discard的表,进行import操作。

mysql> ALTER TABLE test.t1 DISCARD TABLESPACE;
Query OK, 0 rows affected (0.05 sec)

mysql> ALTER TABLE test.t2 DISCARD TABLESPACE;
Query OK, 0 rows affected (0.04 sec)

e.前后对比,检验是否操作成功。
备份的实例
innobackupex 热备指定库表操作

新实例
innobackupex 热备指定库表操作

OK,至此整个过程完成。
总结,采取热备和恢复的方法,虽然操作复杂,但是相对mysqldump操作时间短效率高,整个过程耗时在copy文件和alter table操作上。还有其他提高备份和恢复效率的工具,如mysqldumper和mysqlpump(5.7版本),mysqlpump对单表仍是单线程操作,mysqldumper的和innobackupex的效率对比后面再进行验证。

相关内容

热门资讯

“一次愉快的会晤”,泽连斯基披... 在俄乌互相加大对对方纵深目标打击之际,乌克兰总统泽连斯基7月28日造访了白宫,与美国总统特朗普举行会...
总统连遭“逼宫”,少帅临危受命 躲避着燃烧瓶和火箭弹袭击,四辆苏制BMP步兵战车快速穿行在马里乌波尔市区。即将出城的路口,迎面出现1...
独居女子在卧室玩偶内发现摄像头... 租房独居女子意外发现家中玩偶内藏着偷拍设备,报警后偷拍设备竟“不翼而飞”,门锁记录显示有人在她出门的...
伊学者:乌克兰袭击行动适得其反... 乌克兰袭击与伊朗有关的船只后,伊朗和俄罗斯接连作出强硬回应。伊朗外交学院教授法拉吉扎德在接受凤凰卫视...
20万人怒火不会停!蓝议员挺蒋... 海峡导报综合报道 在蓝白号召台湾民众上凯道呐喊“反毒台”后,台北市长蒋万安日前透露,近日不少民代私下...
柯文哲妻子陈佩琪畅游大陆,民进... 台湾民众党前主席柯文哲妻子陈佩琪27日在脸书发文证实,自己早前由儿子陪同前往上海、杭州与北京旅游一周...
高市早苗被问如何改善中日关系 据日本东京新闻报道,当地时间7月27日,日本首相高市早苗在首相官邸举行记者会。当被问及如何改善中日关...
扎哈罗娃批小泉进次郎涉核言论:... 【环球网报道 记者 张江平】综合俄新社等媒体报道,对于日本防卫大臣小泉进次郎涉核言论,俄罗斯外交部发...
“特高课”再现?日本强推“国家... 无视反对战争正义呼声 复刻战前军国主义体制日本强推“国家情报局”引发广泛担忧和批评(国际视点)本报记...
6G相比5G不只是速度更快 将...   6G相比5G不只是速度更快  【6G相比5G不只是速度更快】7月28日,相比5G,6G不仅是速度...