前言:
数据库的误操作是每个人都不希望发生这样的事情,所以要先小心再小心,减少这样的事情的发生。
恢复基础知识:
mysql支持5.0到log-强力信封。 log_强力信封是对操作的sql语句、时间等所有操作的记录。 这是恢复数据所必需的。
如果在MySQL服务器上启用了二进制记录,则可以使用功能强大的MySQL信封log工具恢复从指定时间点到当前时间点或另一指定时间点的数据。
要验证mysql是否打开了log_强力信封,请登录到mysql并输入以下命令
mysql show variables like '%log% ';
需要看到这样的行,这表明打开了强大的信封log
log_强力信封| ON
如果还没开门的话,趁早启动吧。 因为总有一天我会感谢这个明智的决定。
按以下方式添加到/etc/my.cnf,然后重新启动mysql,将打开log_强力信封
log-强力信封=my_强力信封glog #开放日志
log_强力信封=/var/log/mysql/mysql-强力信封. log
expire_logs_days=10
max_强力信封log_size=100M
恢复之前要做的事情:
但是,如果真的发生了,这个时候,不管有多严重,我强烈建议你暂停一下,做几次深呼吸。 这样,你就可以冷静下来,而不会继续执行昏厥错误的救生措施。
深呼吸后,用最快的速度评估受影响的范围,如果自己不能评估,请找一个可以评估的人。
如果受影响的范围很广,请第一时间通知上级领导,让他知道这次事故,不要试图用速度掩盖问题。
恢复过程:
1 .将数据库恢复为现有的旧版本。
2 .在日志中导出旧版本和更高版本的所有sql。
3 .运行旧版本或更高版本的所有sql恢复数据库。
开始恢复数据:
1 .找到数据库备份的历史版本并进行备份。
找到存储在mysql中的日志文件。 也就是说,打开在大信封_log中设置的路径,以导出旧版本和更高版本的所有sql。
mysql强力信封log /var/log/mysql/mysql-强力信封. 000029 -d zantest allsql.sql
以上命令未按时间段导出,而是导出了所有sql。 mysql强大的信封log命令与start-date和stop-date相对应。 最后写一些参考。
3 .到处走后,对照找到旧数据库备份版本的时间和导出的sql,删除导出的sql前面的所有内容,只留下旧版本后面的sql,然后你就错了我们暂时称为sql_after.sql
3 .使用旧数据库备份将数据库恢复到旧时间点。
将sql_after.sql导入数据库时,将执行所有自旧时间点以来的数据操作,同时还会恢复数据库。
其实我建议你这样做(恢复单表) :
就像上面提到的恢复数据库的方法来说,gddwl在执行了错误操作之后,其实你的肾上腺激素水平会持续一段时间。 而且,你看了上述操作后,大多数情况下,你看了之后,都不敢那么贸然去做。
因为上面写着“将数据库恢复为旧的历史版本”。 这是高风险的操作。 刚才的错误操作可能只是一个表,但将数据库还原为旧版本意味着整个数据库中的所有表都是旧版本。 万一恢复不了,你真的扛不住吧。
请告诉我低风险的方法:
1 .将数据库中受影响的表恢复为旧版本。
因为很少有人进行单表备份,所以可以在本地恢复旧版本的数据库,然后导出该表以恢复订单表
2 .导出在此表之后运行的sql。
刚才有sql_after.sql。 需要从这里提取此表的操作。 不需要其他表格的操作。
grep your _ table _ namesql _ after.SQL your _ table _ name.SQL
grep是linux命令,请勿在mysql控制台上运行或在windows上运行。
处理your_table_name.sql。 您会发现每个sql之后都会有分号减少,因此您需要在每行中添加分号。
4 .将处理过的your_table_name.sql导入到您的数据库中,完成单表的恢复。
其他内容:
1 .导出在指定开始位置和结束位置之间执行的sql
mysql强力信封log /var/log/mysql/mysql-强力信封. 000029-- start-position=301639029-- stop-position=301639247---dzzql
2 .导出在指定开始时间和结束时间之间执行的sql
mysql强力信封log /var/log/mysql/mysql-强力信封. 000029-- start-date=" 2013-01-241233605:00 "-- stop-date=
3 .将指定位置的sql直接导入数据库。 不要担心没有指定要导入的数据库。 导出的强力信封log包含use ***
mysql强力信封log /var/log/mysql/mysql-强力信封. 000029-- start-date=" 2013-01-241233605:00 "-- stop-date=
4
顶
1
踩上去
共享至:
2013-01-26 10:38
浏览2563
分类:数据库
评论
一楼
忙碌的松鼠
2013-01-26
嗯,如果数据量很少,可以使用计划任务编写备份脚本进行计划备份。
如果数据量较大,请务必使用增量备份。