本文将详细解释如何使用Oracle来辅助MySQL数据问题的恢复。边肖觉得挺实用的,就分享给大家参考。希望你看完这篇文章能有所收获。
今天思考一个问题,如果遇到一些不规则的操作,比如掉、截断、删除,恢复起来还是很困难的。如果在Oracle中打开回收站,则可以借助闪回删除操作来执行删除操作,并且可能会有一些更微妙的操作,例如更新。当插入操作导致问题并且需要数据修复时,此时可以使用闪回查询作为辅助。如果使用了截断,就没有什么可做的了。事实上,截断操作完成后,数据一般会在数据文件中。此时,可以使用第三方数据恢复工具来尝试恢复。此时数据恢复不是毫秒级的,没有办法容忍几分钟甚至几小时。
但是,在Oracle中,如果之前启动了闪回数据库功能,则可以检索截断的数据。但话说回来,整个系统被重启所阻止,可能影响更大。如果不使用闪回数据库,这也是一种在数据删除之前通过dataguard或其他标准恢复在时间点直接恢复的方法。
因此,Oracle中数据恢复的方法很多,使用场景可以根据需要选择。
MySQL中数据恢复的替代方法相对较少。不过有一个亮点就是MySQL中的重做日志可读性强,mysqlbinlog可以轻松分析里面的内容。然而,截断、删除和一些DML错误操作场景对MySQL来说更加困难。
一旦出现问题,只能通过最新备份的方式进行数据恢复,需要进行相应的备份,然后基于最新的备份,分析相关的binlog,直到恢复数据变化时点的数据。
总的来说,这个过程还是需要很多时间的。首先是判断备份和binlog的时间点,这可以在其他测试环境中完成,应该需要很长时间。
我考虑了以下方案,结合Oracle和mysql,充分利用Oracle强大的闪回功能。也许这个方案对于很多数据恢复有很多亮点。
它还没有在本地测试过,因为它还需要一些额外的定制和数据类型映射,所以这只是一个粗略的想法。
首先,保留MySQL原有的架构,一个主库和两个备份库。因为主库中的binlog是数据同步的关键,所以考虑设置一个sql解析的路径,然后使用binlog进行sql解析,然后进行适当的修改。这个过程可以是异步过程,然后与Oracle结合并部署到Oracle中的模式。
MySQL中的数据量相对较少,可以考虑在一个Oracle中映射多个具有多个模式的MySQL数据库,数据类型可以适当映射。比如MySQL中的大int、小int在Oracle中直接用数字映射。映射varchar和varchar2,等等。
数据到位后,我们可以考虑各种闪回功能来恢复数据。截断等操作可以使用闪回数据库恢复,删除操作可以通过回收站、闪回数据库或基于时间点恢复。删除可以通过闪回删除、闪回查询等方式恢复。更新可以通过闪回查询等方式恢复。拿到相应的技术局后,可以直接导出csv文件或者插入语句。使用mysqlimport或insert完成MySQL中的数据部署。
在这个过程中,MySQL可以一直保持前进。比如一个部队在行军的时候,一个军官突然发现自己没有带地图,中途摔倒了。这时,他可以派一个士兵骑马拿地图。这时,神谕就是那个士兵,能够完成这个艰巨的任务,而部队还在行军,没有受到任何其他影响。
这篇关于“如何用Oracle辅助恢复MySQL数据问题”的文章就在这里,希望。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50258.html