使用mysqldump进行MariaDB 的备份(三)

2015-07-23 18:08:11 · 作者: · 浏览: 7
转换为sql文件
[root@MariaDB ~]# mysqlbinlog /backup/bin-log/mysql-bin.000004> /backup/all.1.sql


第二天对数据进行了一些操作
MariaDB[hellodb]> insert into tb1 values (1000),(9000);
MariaDB[hellodb]> select * from tb1;
+------+
|id? |
+------+
|? ? 1 |
|? ? 2 |
|? ? 3 |
|? 23 |
|1000 |
|9000 |
+------+


模拟故障
删除数据目录下的所有文件,模拟数据库故障:
[root@MariaDB ~]# rm -rf /mydata/data/*


数据库这个时候还可以登录,但是数据库都不再了
MariaDB [hellodb]> show databases;
+--------------------+
| Database? ? ? ? ? |
+--------------------+
| information_schema |
+--------------------+


恢复前的准备
发现数据库故障先关闭数据库,但是数据库无法正常关闭,只能关闭进程
[root@MariaDB ~]# service mysqld stop
MySQL server PID file could not be found!? ? ? ? ? ? ? ? ? [FAILED]
[root@MariaDB ~]# killall mysqld


?
由于数据库数据目录的所有内容被删除,就算是导入了完全备份文件也是缺少一些文件,解决方法就是重新初始化一下数据库。
[root@MariaDB ~]# cd /usr/local/mysql/
[root@MariaDB mysql]# scripts/mysql_install_db--user=mysql --datadir=/mydata/data/


初始化完成之后,一些基本的文件都存在了
[root@MariaDB mysql]# ll /mydata/data/
total 36
-rw-rw---- 1 mysql mysql 16384 Jun 16 01:22aria_log.00000001
-rw-rw---- 1 mysql mysql? ? 52 Jun 16 01:22 aria_log_control
-rw-r----- 1 mysql root? ? 80 Jun 16 01:18 MariaDB.err
drwx------ 2 mysql root? 4096 Jun 16 01:22 mysql
drwx------ 2 mysql mysql? 4096 Jun 16 01:22 performance_schema
drwx------ 2 mysql root? 4096 Jun 16 01:22 test


?
将第二天的二进制日志文件转换为sql文件
[root@MariaDB ~]# mysqlbinlog/backup/bin-log/mysql-bin.000005 > /backup/all.2.sql


恢复过程
恢复之前启动Mysql服务,否则无法导入备份文件
[root@MariaDB ~]# service mysqld start


导入第一天的完全备份文件,由于刚刚初始化完成数据,这个时候的数据库还没有密码
[root@MariaDB ~]# mysql

登录数据库查看,所有的数据库都已经恢复,但是第一天对数据库更改的内容还是没有恢复
MariaDB [(none)]> show databases;
+--------------------+
| Database? ? ? ? ? |
+--------------------+
| information_schema |
| hellodb? ? ? ? ? |
| mysql? ? ? ? ? ? |
| performance_schema |
| test? ? ? ? ? ? ? |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [hellodb]> select * from tb1;
+------+
| id? |
+------+
|? ? 1 |
|? ? 2 |
|? ? 3 |
|? 21 |
|? 22 |
|? 23 |
+------+
6 rows in set (0.00 sec)


导入第一天的增量备份文件
[root@MariaDB ~]# mysql -u root -p < /backup/all.1.sql


发现第一天删除的文件已经不存在,但是第二天添加的内容还是没有
MariaDB [hellodb]> select * from tb1;
+------+
| id? |
+------+
|? ? 1 |
|? ? 2 |
|? ? 3 |
|? 23 |
+------+
4 rows in set (0.00 sec)


导入第二天的二进制日志转换后的sql文件。
1 [root@MariaDB ~]# mysql -u root -p

导入完成之后,数据库就回到了故障之前的状态
MariaDB [hellodb]> select * from tb1;
+------+
| id? |
+------+
|? ? 1 |
|? ? 2 |
|? ? 3 |
|? 23 |
| 1000 |
| 9000 |
+------+
6 rows in set (0.00 sec)