使用Xtrabackup对数据库备份和恢复
2018-06-18 01:01:20来源:未知 阅读 ()
须安装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
2、破坏数据库
rm -rf /app/mysqldb/*
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 #启动服务
二、完全、增量备份及还原
1、完全备份数据库
innobackupex --user=root --password=li123456 /backups/
2、对数据库修改并做增量备份
MariaDB [(none)]> create database ceshi;
mkdir /backups/inc1 #创建存储第一次增量备份的目录,便于管理 innobackupex --user=root --password=li123456 --incremental /backups/inc1 --incremental-basedir=/backups/2018-03-07_15-23-30
MariaDB [(none)]> drop database test ;
mkdir /backups/inc2 #创建存储第二次增量备份的目录
innobackupex --user=root --password=li123456 --incremental /backups/inc2 --incremental-basedir=/backups/inc1/2018-03-07_15-42-56
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 #启动服务
三、单表导出和导入
注:需MySQL 5.6及以上版本才支持此功能
1、单表备份
innobackupex --user=root --password=li123456 --include='reset_gq.wp_users' /backups
2、导出表结构
mysql -uroot -p -e 'show create table reset_gq.wp_users'
3、删除表
mysql -uroot -p -e 'drop table reset_gq.wp_users'
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; #导入表空间
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PHP访问MySQL查询超时怎么办 2020-03-09
- MySQL中使用WHERE子句的方法 2019-10-25
- 关于laravel后台模板laravel-admin select框的使用详解 2019-10-08
- PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql 2019-09-23
- 使用 Shell 在多服务器上批量操作 2019-09-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash