xtrbackup更换数据库_使用Xtrabackup对数据库备份和恢复

须安装Xtrabackup工具

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

yum install percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

注:生产环境中还原恢复操作不可直接使用备份源文件,须单独拷贝一份做恢复使用

一、完全备份及还原

1、备份数据库

innobackupex --user=root --password=li123456 /backups

23e3c6ab006c8e0f0b54d2b76bd7dbd2.png

330920769282835ecdc10ed6402cf0b7.png

2、破坏数据库

rm -rf /app/mysqldb/*

fbbbb04ab953c30b11869beac75ff913.png

3、恢复数据库

systemctl stop mysqld  #停止服务

innobackupex --apply-log /backups/2018-03-05_18-11-28/ #对备份进行整理

innobackupex --copy-back /backups/2018-03-05_18-11-28/ #还原数据库,还原前需确认数据库目录为空

chown -R mysql.mysql /app/mysqldb/  #修复属主属组

systemctl start mysqld  #启动服务

ab48ba267826cde934b3514c98e391ec.png

2a16cfa35c04a367b9e53137dff68248.png

19a1d7372eaaf759f1c5de3cccee3993.png

b61e539aa6e592412a510cbcd7509e8b.png

二、完全、增量备份及还原

1、完全备份数据库

innobackupex --user=root --password=li123456 /backups/

1561e8a6e431d60b5452292d21e94068.png

941f3c7e35497108d92770b14453c062.png

2、对数据库修改并做增量备份

MariaDB [(none)]> create database ceshi;

0ca26acd0a1cf128888417d1c0165958.png

mkdir /backups/inc1 #创建存储第一次增量备份的目录,便于管理

innobackupex--user=root --password=li123456 --incremental /backups/inc1 --incremental-basedir=/backups/2018-03-07_15-23-30

db1018fdc0cf300165ff44e8359f1890.png

7c6b757f315dea24079372529fc831e3.png

MariaDB [(none)]> drop database test ;

ada90cbaf1ef05e8d13f3bf12aa4a42c.png

mkdir /backups/inc2  #创建存储第二次增量备份的目录

innobackupex --user=root --password=li123456 --incremental /backups/inc2 --incremental-basedir=/backups/inc1/2018-03-07_15-42-56

4baac455692a665c2405ad77989cc901.png

9bd1e31539e07cbe80422c09f124c0ca.png

3、破坏数据库

rm -rf /app/mysqldb/*

4、恢复数据库

systemctl stop mysqld #停止服务

innobackupex --apply-log --redo-only /backups/2018-03-07_15-23-30/  #对完全备份进行整理

innobackupex --apply-log --redo-only /backups/2018-03-07_15-23-30/ --incremental-dir=/backups/inc1/2018-03-07_15-42-56  #对第一次增量备份进行整理

innobackupex --apply-log --redo-only /backups/2018-03-07_15-23-30/ --incremental-dir=/backups/inc2/2018-03-07_16-00-17  #对第二次增量备份进行整理

innobackupex --copy-back /backups/2018-03-07_15-23-30/  #还原数据库,还原前需确认数据库目录为空

chown -R mysql.mysql /app/mysqldb/  #修复属主属组

systemctl start mysqld  #启动服务

020976927925718cd0b5f652690a3214.png

a7ac913aa1c34b16ebfaffc8dd7a67f3.png

a330013646e2dafb49ef9f86c3266186.png

a6a24776bfa92826a806880abbc58f92.png

e7410b080addaa990238bf25bcc3062d.png

三、单表导出和导入

注:需MySQL 5.6及以上版本才支持此功能

1、单表备份

innobackupex --user=root --password=li123456 --include='reset_gq.wp_users' /backups

e2489f6cd67c0318360d51a6d142903b.png

e39e89dcbbe2943b07d1b8e6a06058ed.png

2、导出表结构

mysql -uroot -p -e 'show create table reset_gq.wp_users'

1cb235e782f94c3c71abbc2c77e337d3.png

3、删除表

mysql -uroot -p -e 'drop table reset_gq.wp_users'

91df9f233b4a533c3a8d377d3edd8d38.png

fbcff473dc4b269995bab88021fa80bb.png

4、单表恢复

innobackupex --apply-log --export /backups/2018-03-09_12-26-33/

创建表结构

MariaDB [reset_gq]> CREATE TABLE `wp_users` (

-> `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

-> `user_login` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

-> `user_pass` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

-> `user_nicename` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

-> `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

-> `user_url` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

-> `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

-> `user_activation_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

-> `user_status` int(11) NOT NULL DEFAULT 0,

-> `display_name` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

-> PRIMARY KEY (`ID`),

-> KEY `user_login_key` (`user_login`),

-> KEY `user_nicename` (`user_nicename`),

-> KEY `user_email` (`user_email`)

-> ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

MariaDB [reset_gq]> alter table wp_users discard tablespace;  #删除wp_users表空间

cp /backups/2018-03-09_12-26-33/reset_gq/wp_users.{cfg,exp,ibd} /app/mysqldb/reset_gq/

chown -R mysql.mysql /app/mysqldb/reset_gq/

MariaDB [reset_gq]> alter table wp_users import tablespace;  #导入表空间

5d8ca9f9e7af40463d68b29cdecb0ece.png

d0998809586f060f3d7cc74fef6d27ca.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值