MySQL物理备份还原(全量)

xtrabackup是MySQL物理热备利器,可以做到全量备份和增量备份。

Posted by caosw on May 28, 2019

MySQL物理备份还原


1、创建测试库和测试数据

用于验证之后的还原的操作

mysql> create database test;
Query OK, 1 row affected (5.00 sec)
mysql> use test;
Database changed
mysql> create table test(a int);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test values(1);
Query OK, 1 row affected (0.03 sec)

2、进行简单备份

出现“completed OK!”代表备份成功

[root@mysql ~]# innobackupex --defaults-file=/etc/my.cnf --no-timestamp --user=root --password=Gepoint -S /tmp/mysql.sock --parallel=4 --extra-lsndir=/opt/backup/full /opt/backup/full

3、关闭数据库服务

[root@mysql ~]# service mysqld stop
Shutting down MySQL....... SUCCESS!

4、模拟删除所有数据文件

这里的我的数据文件均存放在/data/mysql_data目录下

[root@mysql ~]# cd /data/mysql_data/
[root@mysql mysql_data]# rm -rf *
[root@mysql mysql_data]# ll
total 0

5、整库还原

apply-log恢复产生的事务日志

[root@mysql mysql_data]# innobackupex --defaults-file=/etc/my.cnf --apply-log /opt/backup/full/

copy-back恢复数据

[root@mysql mysql_data]# innobackupex --defaults-file=/etc/my.cnf --copy-back /opt/backup/full/

同样出现“completed OK!”代表还原成功

6、更改数据目录的所属用户和组

根据数据文件存放的路径进行修改

[root@mysql data]# chown -R mysql:mysql /data/mysql_data/

7、启动MySQL服务

[root@mysql data]# service mysqld start
Starting MySQL.Logging to '/data/mysql_data/error.log'.
.... SUCCESS!

这里自动创建了error.log日志

8、查看测试数据是否恢复

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from test;
+------+
| a    |
+------+
|    1 |
+------+
1 row in set (0.00 sec)