一、 Mysqlbin-log 日志 1.开启Mysqlbin-log 日志 #vi/etc/my.cnf [client] #password =your_password port =3306 socket =/tmp/mysql.sock default-character-set-utf8 ....... [mysqld] port= 3306 socket= /var/lib/mysql/mysql.sock log-slow-queries=mysql-slowlog log-error=mysql.err log=mysql.log log-bin=mysql-bin//删除#符号
2.查看二进制文件(mysql-bin.******) #cd/usr/local/mysql/bin/ && ls
3.查看mysqbinlog日志是否开启 mysql>showvariables like “%log-bin%;
4.与Mysqlbin-log有关的日志操作 mysql>flushlogs;//此时就会多一个最新的bin-log日志 mysql>showmaster status;//查看最后一个bin日志 mysql>resetmaster;//清空所有的bin-log日志 mysql>mysqlbinlog–no-defaults mysql-bin.******|more//查看bin-log日志
二、Mysqlbin-log日志恢复
1.备份现有数据(库) #mysqldump-uroot -p123456 test -l -F > /tmp/test.sql //-F即flushlogs,-l即读锁,在备份时用户不可进行写操作
2.第一次恢复操作 #mysql -uroot-p123456 test -v(可选)-f < /tmp/test.sql
3.第二次从bin-log日志恢复操作 #/usr/local/mysql/bin/mysqlbinlog--no-defaults --stop-position=”position_num” mysql-bin.****** |/usr/local/mysql/bin/mysql -uroot -p123456 //position是用来记录增、删、改操作的
三、一次完整的Mysqlbin-log日志恢复过程实例 1).创建一个表: mysql>usetest; mysql>createtable t1(id int); mysql>showtables;
2).添加两行数据: mysql>insertinto t1 values(1); mysql>insertinto t1 values(2); mysql>select *from t1;
3).备份现有数据(09:30): #mysqldump -uroot-p123456 test -l -F > /tmp/test.sql
4).在备份完后再添加三行数据(记录): mysql>insertinto t1 values(3); mysql>insertinto t1 values(4); mysql>insertinto t1 values(5);
5).此时突然数据库损损坏或者认为删除: mysql>droptable t1;
6).用已备份的test.sql来恢复数据库: #mysql -uroot-p123456 test < test.sql
7).从bin-log日志恢复: #/usr/local/mysql/bin/mysqlbinlog–no-defaults mysql-bin.000006|more//查看bin-log日志,在我的虚力机上bin-log日志从mysql-bin.000005开始 #/usr/local/mysql/bin/mysqlbinlog--no-defaults --stop-position=”272” mysql-bin.000006 |/usr/local/mysql/bin/mysql -uroot -p123456 //恢复bin-log日志
|