我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何进行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的文件是相当多的,如果不做删除清理的话,总有一天硬盘会爆炸的。

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL中如何进行数据备份和恢复

MySQL 中可以通过使用 mysqldump 工具来进行数据备份和恢复操作。以下是备份和恢复的步骤:数据备份:打开命令行工具并登录到 MySQL 数据库。使用以下命令备份整个数据库:mysqldump -u username -p d
MySQL中如何进行数据备份和恢复
2024-03-06

MySQL中如何进行备份和恢复数据

在MySQL中,可以使用mysqldump命令来备份数据库,使用mysql命令来恢复数据库。备份数据:mysqldump -u username -p database_name > backup.sql恢复数据:mysql -u u
MySQL中如何进行备份和恢复数据
2024-04-09

使用DBeaver进行mysql数据备份与恢复

目录 前言 一、Dbeaver是什么? 二、Dbeaver如何备份与恢复数据 1.备份Mysql数据 2.恢复Mysql数据 三、导入sql失败与解决 ?总结 前言 项目迭代、版本升级的过程中,有时候会涉及到数据库表结构的更改,因而,数据
2023-08-18

MySQL命令行方式进行数据备份与恢复

目录备份还原方式一方式二平时经常管理数据库的时候 发现身边小伙伴儿 都是使用各种图形化工具对mysql数javascript据进行数据的备份和还原操作 离开了工具就束手无策了 美其名曰 巧妇难为无米之炊今天就和大家分享一下命令行方式对M
2022-08-18

如何在MySQL中进行数据备份和恢复

在MySQL中进行数据备份和恢复可以使用以下几种方法:使用mysqldump命令进行数据备份:备份数据库:mysqldump -u -p > backup.sql备
如何在MySQL中进行数据备份和恢复
2024-04-09

如何使用MySQL进行数据备份和恢复?

如何使用MySQL进行数据备份和恢复?数据库中的数据对于任何企业或个人而言都是非常重要的。由于各种原因(如硬件故障、人为错误或恶意攻击等),数据可能会丢失或损坏。因此,定期进行数据库备份是非常重要的。MySQL作为最受欢迎的开源关系型数据库
2023-10-22

怎样进行Linux 系统的备份与恢复

这篇文章将为大家详细讲解有关怎样进行Linux 系统的备份与恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。删库跑路的事常常听说,不过,这只能是个调侃的话题,真正的工作中可不能这么干,否则
2023-06-28

Python中如何对MySQL数据库进行备份和恢复操作?(通过Python如何实现MySQL数据库的备份与恢复?)

本文介绍了如何使用PythonMySQLdb库对MySQL数据库进行备份和恢复。备份涉及导出数据库到文件,而恢复涉及从文件导入数据库。自动化过程可以使用调度器(如cron)来安排定期备份和恢复。本文提供了详细的步骤和代码示例,使读者能够轻松地实施这些操作,确保数据的安全性和完整性。
Python中如何对MySQL数据库进行备份和恢复操作?(通过Python如何实现MySQL数据库的备份与恢复?)
2024-04-02

详解mysql的备份与恢复

前言: 前面几篇文章为大家介绍了 MySQL 各种语句语法的用法及用户权限相关知识。本篇文章将主要讲解 MySQL 数据库数据备份与恢复相关知识,主要聚焦于逻辑备份,介绍mysqldump工具的使用以及恢复方法。这里简单讲下物理备份和逻辑备
2022-05-28

编程热搜

目录