如何恢复Linux下意外删除的Oracle和MySQL数据库?
- 内容介绍
- 相关推荐
本文共计904个文字,预计阅读时间需要4分钟。
没有删除过数据库的DBA职业生涯是不完整的,删除过数据库的DBA一定阅读过Oracle公众号。昨晚有朋友在微信群里求助讨论,误删了一个MySQL数据库,整个恢复过程和Oracle公众号密切相关。
没有删除过数据库的DBA职业生涯是不完整的,删除过数据库还能幸存的DBA一定是订阅了“Oracle”公众号。
昨晚有朋友在微信群中求助讨论,误删除了一个MySQL的数据库,整个恢复过程和以下文章中提到的步骤完全相同,只要MySQL主进程还没有退出,从文件句柄中可以恢复文件最终挽回损失。类似的lsof找到那些被标记为Deleted的文件(以下是参考示意图)。
让我们完整的再复习一下这篇文章的步骤,一定要记住这种方法:
今天有客户的数据库意外被删除了整个目录中的数据文件,操作系统级别的删除,然而幸运的是这个数据库没有崩溃,仍然处于 open 状态的时候,客户就发现了问题,求助到我们,最终完整地恢复了所有数据文件。
在 Linux 下大致重新演示一下恢复的过程,恢复的步骤与数据库版本没有太大关系,与操作系统的不同会有所不同。
1. 在数据库 open 的时候,直接删除 users 表空间中的数据文件。
2. 尝试在 users 表空间中创建表,开始报错。
在告警日志中,同样也可以看到类似信息。
3. 检查 dbwr 的进程 PID
4. dbwr 会打开所有数据文件的句柄。
本文共计904个文字,预计阅读时间需要4分钟。
没有删除过数据库的DBA职业生涯是不完整的,删除过数据库的DBA一定阅读过Oracle公众号。昨晚有朋友在微信群里求助讨论,误删了一个MySQL数据库,整个恢复过程和Oracle公众号密切相关。
没有删除过数据库的DBA职业生涯是不完整的,删除过数据库还能幸存的DBA一定是订阅了“Oracle”公众号。
昨晚有朋友在微信群中求助讨论,误删除了一个MySQL的数据库,整个恢复过程和以下文章中提到的步骤完全相同,只要MySQL主进程还没有退出,从文件句柄中可以恢复文件最终挽回损失。类似的lsof找到那些被标记为Deleted的文件(以下是参考示意图)。
让我们完整的再复习一下这篇文章的步骤,一定要记住这种方法:
今天有客户的数据库意外被删除了整个目录中的数据文件,操作系统级别的删除,然而幸运的是这个数据库没有崩溃,仍然处于 open 状态的时候,客户就发现了问题,求助到我们,最终完整地恢复了所有数据文件。
在 Linux 下大致重新演示一下恢复的过程,恢复的步骤与数据库版本没有太大关系,与操作系统的不同会有所不同。
1. 在数据库 open 的时候,直接删除 users 表空间中的数据文件。
2. 尝试在 users 表空间中创建表,开始报错。
在告警日志中,同样也可以看到类似信息。
3. 检查 dbwr 的进程 PID
4. dbwr 会打开所有数据文件的句柄。

