首页 > 其他分享 >innobackupex只备份恢复单表或者单库

innobackupex只备份恢复单表或者单库

时间:2023-06-21 14:56:59浏览次数:36  
标签:canal -- 单库 manager tablespace 单表 table innobackupex alter

innobackupex只备份恢复单表或者单库

全程在线导入,数据库不需要重启

前提条件:
1.单库备份和恢复可以使用innobackupex全量备份的文件或者单独备份的文件
2.单库恢复需要将所有的表discard和import
3.单库恢复需要在目标端单独建立数据库和对应的表结构,否则只能全库备份和恢复

一、使用innobackupex执行备份

innobackupex --defaults-file=/etc/my.cnf --user=root --password='xxx' --host='192.xxxx' --databases=canal_manager /data/backup/canal_manager


备份并压缩多个库
innobackupex --defaults-file=/etc/my.cnf --user=root --password='sxxx' --host='192.xx' --databases="gkdb_center_account gkdb_center_application" --compress /data/backup/db

二、应用日志

注意,这里不用执行数据的恢复 copy或者moveback

解压:
innobackupex --decompress /data/backup/db/2023-06-13_09-35-39 
应用日志
nnobackupex --apply-log /backup/canal_manager/2023-05-30_14-55-18

三、在源库导出数据库的表结构

mysqldump --no-data -uroot -p'xxxx' -h192.168.xx --databases canal_manager --triggers --routines --events > /home/mysql/canal_manager.sql

四、在目标库创建数据库和表结构

数据库的名称可以随便改变(这也是快速修改数据库名称的方法之一)

source /tmp/canal_manager.sql

五、将需要导入的库的所有表空间discard

select concat('alter table ',table_schema,'.',table_name,' discard tablespace;') from information_schema.tables where table_schema='canal_manager' into outfile '/tmp/canal_manager_discard.sql';

select concat('alter table ',table_schema,'.',table_name,' discard tablespace;') from information_schema.tables where table_type='BASE TABLE' and table_schema in ('goldkinn_center_dev_announcement',
'goldkinn_center_dev_appraise');

source /tmp/canal_manager_discard.sql

如果报错:
# 加入参数,=号后面为空是所有路径都可以
secure-file-priv=/tmp
[root@mysql ~]#/etc/init.d/mysqld restart  # 重启服务

脚本内容:

SET FOREIGN_KEY_CHECKS=0;  
alter table canal_manager.canal_adapter_config discard tablespace;
alter table canal_manager.canal_cluster discard tablespace;   
alter table canal_manager.canal_config discard tablespace;   
alter table canal_manager.canal_instance_config discard tablespace;
alter table canal_manager.canal_node_server discard tablespace;
alter table canal_manager.canal_user discard tablespace;


SET FOREIGN_KEY_CHECKS=1; 

六、备份目录下的所有表空间和数据文件全部移动到当前库的目标目录下

cp /backup/canal_manager/2023-05-30_14-55-18/canal_manager/* /data/mysql/data/canal_manager

七、将所有表空间加载,导入

select concat('alter table ',table_schema,'.',table_name,' import tablespace;') from information_schema.tables where table_schema='canal_manager' into outfile '/tmp/canal_manager_import.sql';

select concat('alter table ',table_schema,'.',table_name,' import tablespace;') from information_schema.tables where table_type='BASE TABLE' and table_schema in ('goldkinn_center_dev_announcement',
'goldkinn_center_dev_appraise',
'goldkinn_center_dev_crm',

source /tmp/canal_manager_import.sql';

脚本:
SET FOREIGN_KEY_CHECKS=0; 
alter table canal_manager.canal_adapter_config import tablespace;        
alter table canal_manager.canal_cluster import tablespace;               
alter table canal_manager.canal_config import tablespace;                
alter table canal_manager.canal_instance_config import tablespace;       
alter table canal_manager.canal_node_server import tablespace;           
alter table canal_manager.canal_user import tablespace;

SET FOREIGN_KEY_CHECKS=1; 

八、检查数据是否正确导入

标签:canal,--,单库,manager,tablespace,单表,table,innobackupex,alter
From: https://www.cnblogs.com/xulinforDB/p/17496203.html

相关文章

  • MySQL单表查询练习(条件_模糊_分组_聚合_排序)
    练习所用数据表•部门表CREATETABLEDEPT(DEPTNOINTPRIMARYKEY,–部门编号DNAMEVARCHAR(14),–部门名称LOCVARCHAR(13)–部门地址);INSERTINTODEPTVALUES(10,‘ACCOUNTING’,‘NEWYORK’);INSERTINTODEPTVALUES(20,‘RESEARCH’,‘DALLAS’);......
  • nodejs使用eggjs创建项目,接入influxdb完成单表增删改查
    转载请注明出处:1.Eggjs特性:Eggjs是Node.js服务端应用开发框架,它提供了一套约定,使开发者能够快速搭建、开发和部署应用。以下是Egg.js的一些特性和作用:框架内置了基于约定的目录结构、约定的扩展机制和一些常用的插件,可以帮助开发者快速搭建应用。Egg.js遵循MVC......
  • 使用session+cookie改造单表项目
    1.  session掌握之后,我们怎么解决oa项目中的登录问题,怎么能让登录起作用。  441.1 思路  44  - 登录成功之后,可以将用户的登录信息存储到session当中。也就是说session中如果有用户的信息就代表用户登录成功了。session中没有用户信息,表示用户没有登录过。则跳转到登录页......
  • 关于MySQL的一些优化(单表访问)
    以此表为例CREATETABLE`single_table`(`id`intNOTNULLAUTO_INCREMENT,`key1`varchar(100)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL,`key2`intNULLDEFAULTNULL,`key3`varchar(100)CHARACTERSETutf8mb4COLLATEutf8mb......
  • 单表的CRUD操作升级
    1.  使用模板方法设计模式优化oa项目  34- 上面的注解解决了配置文件的问题。但是现在的oa项目仍然存在一个比较臃肿的问题。  - 一个单标的CRUD,就写了6个Servlet。如果一个复杂的业务系统,这种开发方式,显然会导致类爆炸。(类的数量太大。)1.1 怎么解决这个类爆炸问题?34可以......
  • 使用纯Servlet完成单表的CRUD操作
    1. 使用纯粹的Servlet完成单表【对部门的】的增删改查操作。(B/S结构的。)   262. 实现步骤2.1 第一步:准备一张数据库表。(sql脚本)代码在E:\java\course14\CRUD  注意这里我们添加表的方式是dos窗口命令,使用命令source  E:\java\course14\CRUD  路径尽量不要有中文dept.sq......
  • 为什么MySQL单表不能超过2000万行?
    摘要:MySQL一张表最多能存多少数据?本文分享自华为云社区《为什么MySQL单表不能超过2000万行?》,作者:GaussDB数据库。最近看到一篇《我说MySQL每张表最好不要超过2000万数据,面试官让我回去等通知》的文章,非常有趣。文中提到,他朋友在面试的过程中说,自己的工作就是把用户操作信息......
  • ecshop 购物车 下单 提交到订单表的代码
     /*插入订单表*/do{$order['order_sn']=get_order_sn();if($GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'),addslashes_deep($order),&#......
  • 单表查询
    第一章简单查询1.1、select语句mysql中查询数据的基本语句是select语句。语法:select[distinct]字段1,字段2,字段3.....from表名[where条件表达式][groupby字段名][having条件表达式][orderby字段名[asc|desc]][limit偏移量]distinct:剔除重复数据[]:可选......
  • 工厂智能电表远程抄表系统项目,成功案例,源代码出售,C#语言,可监控24小时厂区总用电量波形
    工厂智能电表远程抄表系统项目,成功案例,源代码出售,C#语言,可监控24小时厂区总用电量波形图,单表24小时用电量波形图。可自动导出多种不同形式excel表,厂区单月各表用电量,厂区各表电量值,单表每日用电量表,单表每小时用电量表ID:3477654308305764......