mysqlbackup备份与恢复及模拟案例恢复

mysqlbackup制作备份

1.制作一个没有apply-log的完整备份

mysqlbackup --defaults-file=/etc/my.cnf --socket=/tmp/mysqld.sock \
--with-timestamp --user=dba --password=beifen --backup-dir=/var/lib/backup backup
2.制作增量备份(完整性备份的增量)
mkdir -p inc/tue
mkdir -p inc/wed
mysqlbackup --defaults-file=/etc/my.cnf --user=dba --password=beifen --socket=/tmp/mysqld.sock \
--incremental --incremental-base=dir:/var/lib/backup/2015-06-12_07-49-58 \
--incremental-backup-dir=/var/lib/backup/inc/tue backup
3.制作增量备份的增量备份
mysqlbackup --defaults-file=/etc/my.cnf --user=dba --password=beifen --socket=/tmp/mysqld.sock \
--incremental --incremental-base=dir:/var/lib/backup/inc/tue \
--incremental-backup-dir=/var/lib/backup/inc/wed backup


mysqlbackup恢复备份
1.使用apply-log 将完整性备份做成最终备份
mysqlbackup --backup-dir=/var/lib/backup/2015-06-12_07-49-58 apply-log
2.将增量备份合并至最终备份
mysqlbackup --incremental-backup-dir=/var/lib/backup/inc/tue --backup-dir=/var/lib/backup/2015-06-12_07-49-58 \
apply-incremental-backup
3.将增量备份合并至最终备份
mysqlbackup --incremental-backup-dir=/var/lib/backup/inc/wed --backup-dir=/var/lib/backup/2015-06-12_07-49-58 \
apply-incremental-backup


mysqlbackup支持制作单文件备份
rm -rf *
mysqlbackup --defaults-file=/etc/my.cnf --socket=/tmp/mysqld.sock \
--user=dba --password=beifen --only-innodb --backup-dir=/var/lib/backup \
--backup-image=backup1.mbi backup-to-image


mysqlbackup查看单文件的备份
mysqlbackup --backup-image=backup1.mbi list-image


提取全部备份里的文件
mysqlbackup --backup-image=backup1.mbi --backup-dir=/var/lib/backup image-to-backup-dir  --解压到备份目录
mysqlbackup --backup-image=/var/lib/backup/backup1.mbi --backup-dir=/var/lib/backup/unpack extract  --解开到指定目录


提取单个备份里的文件
mysqlbackup --backup-image=/var/lib/backup/backup1.mbi --src-entry=server-my.cnf extract  --解压到当前目录
mysqlbackup --backup-image=/var/lib/backup/backup1.mbi --src-entry=server-my.cnf \
--dst-entry=/var/lib/backup/unpack/server-my111111.cnf extract   --解压到dst-entry这个目录



使用单个.ibd文件备份恢复到另一台服务器
1.使用--only-innodb或--only-innodb-with-frm制作备份
mysqlbackup --defaults-file=/etc/my.cnf --socket=/tmp/mysqld.sock --user=dba --password=beifen \
--only-innodb --with-timestamp --backup-dir=/var/lib/backup backup
2.使用apply-log生成一个版本一致性的最终备份
mysqlbackup --defaults-file=/etc/my.cnf --socket=/tmp/mysqld.sock --user=dba --password=beifen \
--only-innodb --with-timestamp --backup-dir=/var/lib/backup/2015-06-12_08-53-06 apply-log
3.在另一台服务器的数据库中创建同名表,要恢复db1下的t1表到db2里
use db2;
CREATE TABLE `t1` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL,
  `salary` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4.给指定要恢复的表上写锁 db2库
lock tables t1 write;
5.删除这个新表的.ibd文件 db2库
alter table t1 discard tablespace;
6.把备份的.ibd文件拷贝过来,放到数据文件目录
cp t1.ibd /home/mysql/db2
chown mysql:mysql t1.ibd
7.导入.ibd文件
alter table t1 import tablespace;
8.解除写锁
unlock tables;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值