我的编程空间,编程开发者的网络收藏夹
学习永远不晚

innobackupex 热备指定库表操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

innobackupex 热备指定库表操作

项目场景:
一个实例中存在几张大表,该表是开发通过程序进行归档的历史表,但是偶尔需要给业务提供查询使用,由于实例都是定期做全量备份的,未避免对该实例空间及备份造成压力,所以建议将这些归档表迁移到一个单独的静态实例中,提供线下查询。
那么任务来了,即备份一个库中超过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的效率对比后面再进行验证。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

innobackupex 热备指定库表操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据库备份服务 数据库备份操作指导

数据库备份是一项非常重要的任务,可以保证数据的安全性和可靠性。以下是数据库备份操作的指导:1. 确定备份策略:根据业务需求和数据变更频率,确定备份的频率和保留时间。一般来说,每日全量备份加上定期增量备份是一个常见的备份策略。2. 选择备份工
2023-09-21

MySQL定时备份数据库操作示例

本文实例讲述了MySQL定时备份数据库操作。分享给大家供大家参考,具体如下: 1. 查看mysqldumproot@laowang:/# which mysqldump /usr/bin/mysqldump2. 编写脚本 编辑my.cnf文
2022-05-17

Oracle数据库备份与恢复操作指南

Oracle数据库备份与恢复操作指南一、备份使用RMAN备份整个数据库RMAN是Oracle提供的用于备份和恢复数据库的管理工具,使用RMAN可以备份整个数据库,包括数据文件、控制文件和归档日志。以下是一个备份整个数据库的示例:RMA
Oracle数据库备份与恢复操作指南
2024-03-02

阿里云数据库备份本地还原操作指南

随着企业数据量的不断增加,数据库备份和恢复成为了企业管理的重要环节。阿里云数据库提供了一站式云数据库服务,可以帮助企业高效地进行数据备份和恢复。本文将详细介绍阿里云数据库备份本地还原的操作方法。正文:一、阿里云数据库备份本地还原操作流程登录阿里云控制台在浏览器中输入“https://.console.aliyun
阿里云数据库备份本地还原操作指南
2023-11-15

C#中怎么对注册表进行判断指定操作

C#中怎么对注册表进行判断指定操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。判断指定注册表项是否存在private bool IsRegeditExit(s
2023-06-18

系统稳定性护身符:操作系统备份策略指南

系统稳定性是企业业务运营的关键,而操作系统备份策略是确保系统稳定性的重要手段。本文将为您详细讲解操作系统备份策略的制定方法,并提供代码示例,帮助您轻松实现操作系统备份。
系统稳定性护身符:操作系统备份策略指南
2024-02-03

阿里云数据库备份与还原的简单操作指南

本文将为您介绍如何在阿里云上进行数据库备份与还原的操作,帮助您轻松管理和保护您的数据库。数据库备份数据库备份是保护数据库数据的重要措施之一。在阿里云上,您可以使用多种方式来进行数据库备份,包括手动备份和自动备份两种方式。手动备份是指您自己手动执行备份操作。在阿里云上,您可以使用DMS(DataManagement
阿里云数据库备份与还原的简单操作指南
2024-01-22

Linux设置每晚定时备份Oracle数据表的操作命令

先新建目录该路径:/home/oracle/backup该名称:DATA_PATHsfNiCDhell脚本export ORACLE_BASE=/home/oracle/appexport ORACLE_HOME=$ORACLE_B
2022-12-27

MySQL数据库之数据表操作DDL数据定义语言

目录一、创建数据表二、查询数据表三、 删除数据表四、修改数据表以及字段一、创建数据表数据表:一个二维的表格,一个表格是由多列组成,表格中的每一类称之为表格的字段以上述学生信息表格为例在mysql数据库中创建一张表格,语句如下(注:创建前应
2022-08-18

VS2022连接数据库MySQL并进行基本的表的操作指南

vs2022中连接mysql1.连接MYSQL2.添加MySQL的引用环境配置测试代码在vs里面运行sql语句启动vs2022,在菜单栏里面选择视图,打开服务器资源管理器右键数据连接,点击添加连接然后发现有MySQL选项,进入里
2023-05-12

MySQL数据库多表操作通关指南(外键约束和多表联合查询)

目录1 多表关系2 外键约束(FOREIGN KEY)2.1 外键约束说明2.2 外键约束的创建2.3 外键约束实操:一对多关系2.4 删除外键约束2.5 外键约束实操:多对多关系3 多表联合查询3.1 联合查询的简介和分类3.2 联合查询
2022-06-14

编程热搜

目录