mysql 增量备份导出_mysql数据的导入导出与完全备份恢复与增量备份恢复

数据的备份与恢复

备份手段

物理备份

直接拷贝库或表的文件(风险:文件系统不一样导致读取错误)

cp -r /var/lib/mysql

/dbbak/mysql.bak

tar -zxcf

/dbbak/mysql.tar.gz /var/lib/mysql;

SET

TIMESTAMP=1522433659;

insert

into t1(name) values(null)

;

# at 413

mysql> delete from t1 where shell is null; //此处为破坏数据库记录操作

[root@mysql51 logdir]# mysqlbinlog --start-position=302

--stop-position=413 /logdir/plj.000004 |mysql -uroot -p123456

mysql> select * from t1; //可以看出数据已经恢复

1.2

使用第三方软件提供的命令innobackupex对数据做增量备份

安装软件包percona

376 rpm -ivh

percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

377 yum

-y install perl-DBD-MySQL.x86_64

378 yum

-y install perl-Digest-MD5.x86_64

379 rpm

-ivh percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

380 rpm

-ivh libev-4.15-1.el6.rf.x86_64.rpm

381 rpm

-ivh percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

使用innobackupex命令做备份要求?

[root@mysql51 mysql]# rpm

-ql percona-xtrabackup-24

/usr/bin/xtrabackup

//只能备份innodb和xtradb

/usr/bin/innobackupex

//集成xtrabackup支持,还支持myisam (在线热备份工具,备份过程不锁库不锁表)

innobackupex命令的语法格式

innobackupex --user root

--password 123456

innobackupex

需要/var/lib/mysql 为空

rm -rf /var/lib/mysql

完全备份

innobackupex --user root

--password 123456 --databases="mysql performance_schema sys buydb

备份目录名

394 rm -rf /buydb/

395 innobackupex --user

root --password 123456 --databases="mysql performance_schema sys

buydb" --no-timestamp /buydb; //--no-timestamp不需要用日期为名的子目录存储

396 cd /buydb/

397

ls

增量备份

innobackupex --user root

--password 123456 --databases="mysql performance_chema sys userdb"

--incremental --incremental-basedir=上次备份数据存储的目录名

[root@mysql51 buydb]# du

-sh /new1dir

5.0M /new1dir

//增量备份的数据大小(多出ibdata1.delta ibdata1.meta文件为增量)

[root@mysql51 buydb]# du

-sh /buydb/

95M /buydb/

//首次完全备份的大小

增量恢复

--apply-log 恢复日志

--apply-only 合并日志

--copy-back 拷贝数据

innobackupex --user root

--password 123456 --databases="myql performance_schema sys gamedb"

--apply-log--redo-only 存储完全备份数据的目录 --incremental-dir=目录名

[root@mysql51 buydb]# ls

/new1dir/

xtrabackup_checkpoints

存储日志序列号

xtrabackup_info

存储数据库信息

xtrabackup_logfile

存储sql命令

拷贝文件

[root@mysql51 mysql]#

innobackupex --user root --password 123456 --databses="mysql

performance_schema sys buydb" --copy-back /buydb

备份目录下配置文件说明

[root@mysql51 buydb]# cat

/buydb/xtrabackup_checkpoints

backup_type =

full-backuped

from_lsn = 0

to_lsn = 4174233

[root@mysql51 buydb]# cat

/new1dir/xtrabackup_checkpoints

backup_type =

incremental

from_lsn = 4174233

to_lsn = 4179025

[root@mysql51 buydb]# cat

/new2dir/xtrabackup_checkpoints

backup_type =

incremental

from_lsn = 4179025

to_lsn = 4179025

rm -rf /var/lib/mysql

模拟数据丢失

mkdir /var/lib/mysql

增量恢复数据操作步骤

第一步:恢复完全备份的日志

innobackupex --user root

--password 123456 --databases="mysql performance_schema sys buydb"

--apply-log --redo-only /buydb

第二步 恢复增量备份的日志

[root@mysql51 mysql]#

innobackupex --user root --password 123456 --databases="mysql

performance_schema sys buydb" --apply-log --redo-only /buydb

--incremental-dir=/new1dir

[root@mysql51 mysql]#

innobackupex --user root --password 123456 --databases="mysql

performance_schema sys buydb" --apply-log --redo-only /buydb

--incremental-dir=/new2dir

第三步 根据日志信息,拷贝相应的恢复数据

[root@mysql51 mysql]#

innobackupex --user root --password 123456 --databses="mysql

performance_schema sys buydb" --copy-back /buydb

第四步

跟改数据库文件属性(默认为root权限,mysql系统用户没有访问权限)

[root@mysql51 mysql]# ls -l

/var/lib/mysql

[root@mysql51 mysql]# chown

-R mysql:mysql /var/lib/mysql

注意此处的步骤不能跳跃,因为时增量备份,如果序列号不连续将造成备份失败!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值