全备恢复单库单表操作

发布于 15 天前  36 次阅读


1.环境

CentOS release 6.8 (Final)

Mysql版本:mysql-5.7.26

2.数据备份

  1. 全备:
  2. /application/mysql-5.7.26/bin/mysqldump -uroot -p--all-databases --lock-all-tables --routines --triggers --events --master-data=2 --flush-logs >full.sql

3、全库恢复:

  1. mysql -uroot -p < 20190818.sql

4、全备恢复单库

全备恢复单库单表操作插图
  1. 创建库:create database ysxdb2019;
  2. 导入数据:mysql -uroot -p --one-database < 20190818.sql
全备恢复单库单表操作插图2
全备恢复单库单表操作插图4

5、全备恢复单表

5.1、删掉一张表:drop table biz_action_log;

全备恢复单库单表操作插图6

恢复单表数据

实例:table biz_action_log

删表结构:

drop table biz_action_log;

删表内容:

delete from biz_action_log;

从全库备份中抽取出t表的表结构

  1. sed -e '/./{H;$!d;}' -e 'x;/CREATE TABLE `biz_action_log`/!d;q' 20190818.sql > jg-biz_action_log.sql

从全库备份中抽取出t表的内容

grep 'INSERT INTObiz_action_log' 20190818.sql > nr-biz_action_log.sql

5.2、问题解决:首先解决主键冲突问题

全备恢复单库单表操作插图8

解决:REPLACE into

遇主键冲突,替换原纪录,即 先删除原纪录,后insert 新纪录

sed -i ‘s#INSERT#replace#g’ nr-biz_action_log.sql

进入该库导入数据

导入表结构:mysql> source jg-biz_action_log.sql

导入表内容:mysql> source nr-biz_action_log.sql


生之逢时,为之奋斗。