如何进行mysql的备份与恢复的探讨

网友投稿 160 2023-12-04

如何进行mysql的备份与恢复的探讨

如何进行mysql的备份与恢复的探讨,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

如何进行mysql的备份与恢复的探讨

1,我现在的备份方案为:

A(master)----->B(slave)进行实时同步,在B(slave)上每周日凌晨3点做一次全备份,周一至周六做

增量备份,增量备份的时刻选择,根据业务需求灵活修改。当DB出现故障时,或是服务器业务逻辑出现

重大bug,玩家投诉较为严重时,这时我们需要对数据进行恢复。

2,我现在的恢复方案为:

首先停掉所有服务器,在B(slave)上首先进行一次全备份恢复:

mysql -uroot -p**** < allbackup.sql

然后选择时间点进行增量恢复:

mysqlbinlog --start-date="2011-06-15 14:00:00" --stop-date="2011-06-15 17:30:00" mysql-bin.[0-9]* |mysql -uroot -p****

这样所有的,所有的表单都恢复到了正常状态。

3,这样做的问题是:

相当麻烦,很痛苦。如果只是db_account中的一个表单 tb_account出现了问题,其他的数据库均正常。那么这样做就太折腾了,

因为全备份对所有的数据库都生效,这样的恢复当然也是对所有的数据库生效。那么恢复之后,要在B(slave)上找到想要的恢复后的数据,

导入到A(master)中,而其他的数据都不能保持不动。痛苦!!!

4,改进后的方案为:

对每个数据库进行全备份,不用原来的对所有的数据库备份的做法(即下面的做法):

dump -h $HOST -u $USER -p$PASSWORD --opt --all-databases --flush-logs > $BAKDIR/$DATESTR.sql

这样的话,每个数据库的备份数据都会相应的生成在一个sql文件中,也就是说原来的备份目录下的sql文件由一个增加到了N个,这样就

可以去恢复具体的数据库了,哪个数据库出问题就去恢复哪个数据库,哪里不会点哪里,妈妈再也不用担心我的学习了。

省去了很多麻烦。即你可以这样写:

mysqldump -h $HOST -u $USER -p$PASSWORD --flush-logs  db_account > account.sql

mysqldump -h $HOST -u $USER -p$PASSWORD --flush-logs  db_test1 > test1.sql

mysqldump -h $HOST -u $USER -p$PASSWORD --flush-logs  db_test2 > test2.sql

mysqldump -h $HOST -u $USER -p$PASSWORD --flush-logs  db_test3 > test3.sql

那么增量备份怎么办?

如果基于时间点的增量恢复db_account,该怎么办?有办法

mysqlbinlog --start-date="2011-06-15 14:00:00" --stop-date="2011-06-15 17:30:00" -d db_account mysql-bin.[0-9]*

可以用-d指定数据库进行增量恢复,这样就可以对指定的数据库进行全备份恢复和增量备份恢复了,一切是多么的和谐。

5,一点点的小担心:

就是在对具体的一个数据库db_account进行全备份,flush-logs的时候,会删除db_account的增量数据。那么有没有以下的可能:

5.1,两个数据库中的增量数据在一个mysql-bin文件中

5.2,一个数据库的增量数据在两个mysql-bin文件中

如果有以上的可能,那么在flush-logs的时候会不会出现什么隐患或是问题呢?如db_account在flush-logs的时候删除了

一个文件,但这个文件中还有其他数据库的增量数据。或是说flush-logs不是基于文件删除,而是基于数据删除,在所有的

文件中找到db_account的增量数据,然后做删除,当发现一个文件没有数据的时候,再删除该文件。大家都知道的,

mysql-bin的文件是相当多的,如果不做删除清理的话,总有一天硬盘会爆炸的。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mysql如何查询字符长度
下一篇:SqlServer执行计划及Sql查询优化的示例分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~