MySQL备份与恢复之保证数据一致性(5)

2019-01-04 22:00:54于海丽

第四步,更新数据

mysql> insert into class values(3,'Devel'); Query OK, 1 row affected (0.01 sec) mysql> update class set cname="dab" where cid=2; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from class; +------+-------+ | cid | cname | +------+-------+ | 1 | linux | | 2 | dab | | 3 | Devel | +------+-------+ 3 rows in set (0.00 sec) mysql> select * from stu; +------+---------+------+ | sid | sname | cid | +------+---------+------+ | 1 | larry01 | 1 | | 2 | larry02 | 2 | +------+---------+------+ 2 rows in set (0.00 sec) mysql> delete from stu where cid=2; Query OK, 1 row affected (0.00 sec) mysql> update stu set sname="larry007" where sid=1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from stu; +------+----------+------+ | sid | sname | cid | +------+----------+------+ | 1 | larry007 | 1 | +------+----------+------+ 1 row in set (0.00 sec) [root@serv01 data]# date Tue Sep 10 19:38:24 CST 2013

第五步,模拟数据丢失,删除库

[root@serv01 data]# rm -rf /usr/local/mysql/data/larrydb/ mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | game | | hello | | mnt | | mysql | | performance_schema | | test | +--------------------+ 7 rows in set (0.00 sec) [root@serv01 data]# cd /usr/local/mysql/data/ [root@serv01 data]# ll total 28736 drwx------. 2 mysql mysql 4096 Sep 10 19:14 game drwx------. 2 mysql mysql 4096 Sep 7 00:43 hello -rw-rw----. 1 mysql mysql 18874368 Sep 10 19:36 ibdata1 -rw-rw----. 1 mysql mysql 5242880 Sep 10 19:36 ib_logfile0 -rw-rw----. 1 mysql mysql 5242880 Sep 4 23:39 ib_logfile1 drwxr-xr-x. 2 mysql mysql 4096 Sep 10 18:35 mnt drwxr-xr-x. 2 mysql mysql 4096 Sep 4 23:39 mysql -rw-rw----. 1 mysql mysql 998 Sep 10 19:37 mysql-bin.000001 -rw-rw----. 1 mysql mysql 19 Sep 10 19:34 mysql-bin.index drwx------. 2 mysql mysql 4096 Sep 4 23:39 performance_schema -rw-r-----. 1 mysql root 26371 Sep 10 19:30 serv01.host.com.err -rw-rw----. 1 mysql mysql 5 Sep 10 18:36 serv01.host.com.pid drwx------. 2 mysql mysql 4096 Sep 7 00:13 test #可以使用mysqlbinlog命令查看日志文件 [root@serv01 data]# mysqlbinlog mysql-bin.000001 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | game | | hello | | mnt | | mysql | | performance_schema | | test | +--------------------+ 7 rows in set (0.00 sec) mysql> drop database larrydb; Query OK, 0 rows affected (0.01 sec)

第六步,导入更新之前的数据

[root@serv01 databackup]# mysql -uroot -p123456 < larrydb.sql ERROR 1050 (42S01) at line 33: Table '`larrydb`.`class`' already exists [root@serv01 databackup]# mysql -uroot -p123456 < larrydb.sql mysql> use larrydb; Database changed mysql> select * from stu; +------+---------+------+ | sid | sname | cid | +------+---------+------+ | 1 | larry01 | 1 | | 2 | larry02 | 2 | +------+---------+------+ 2 rows in set (0.00 sec) mysql> select * from class; +------+--------+ | cid | cname | +------+--------+ | 1 | linux | | 2 | oracle | +------+--------+ 2 rows in set (0.00 sec)