Linux下实现MySQL数据备份和恢复的命令使用全攻略

2019-01-04 20:03:28刘景俊

# chown -R mysql:mysql /mydata/data/

(4)启动服务器登陆查看恢复完成。

[root@stu18 data] # service mysqld start

注意:每一次恢复完成之后一定要重新做一次完全备份工作!!

4.6、使用innobackupex进行增量备份

说明:每个InnoDB的页面都会包含一个LSN信息,每当相关的数据发生改变,相关的页面的LSN就会自动增长。这正是InnoDB表可以进行增量备份的基础,即innobackupex通过备份上次完全备份之后发生改变的页面来实现。
第一次改动数据实现增量备份
实现增量备份可以使用下面的命令进行:

[root@stu18 data] # innobackupex --user=root --password=mypass --incremental /innobackup --incremental-basedir=/innobackup/2013-08-14_08-14-12/

其中,/innobackup指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/backup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据。–incremental-basedir是指向上一次完全备份所在的目录。

第二次改动数据进行增量备份:

[root@stu18 ~] # innobackupex --user=root --password=mypass --incremental /innobackup --incremental-basedir=/innobackup/2013-08-14_08-29-05/

第二次增量备份的执行命令和第一次大致相同,只有其–incremental-basedir应该指向上一次的增量备份所在的目录。

第三次改动数据还未进行增量备份

mysql> delete from coc where id=14;

4.7、使用innobackupex基于完全+增量+二进制日志恢复数据

(1)由于笔者这里将二进制日志和数据文件写在了同一个文件目录下所以在模拟数据库崩溃前必须先复制出二进制日志文件,所以建议看客们将数据目录和二进制目录分开存放,不要和笔者一样犯如此二的错误。方法如下:
前提是在刚刚建立服务器尚未启动服务器之前做如下操作;

mkdir /mybinlog #建立一目录用于存放二进制日志 chown mysql:mysql /mybinlog #更改权限 vim /etc/my.cnf #修改配置文件 log-bin=/mybinlog/mysql-bin #二进制日志目录及文件名前缀,添加之

好了言归正传复制二进制日志文件:

[root@stu18 data] # cp mysql-bin.000001/innobackup/

(2)模拟服务器崩溃

[root@stu18 ~] # service mysqld stop [root@stu18 ~] # cd /mydata/data/ [root@stu18 data] # rm -rf *

(3)准备备份

首先注意“准备”增量备份与整理完全备份有着一些不同,尤其要注意的是:
1)需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。