Oracle数据库数据文件rm -rf误删除后恢复
2014-05-30 15:00
309 查看
Oracle数据库中表空间的数据文件在基于OS系统级别被rm -rf 删除后,只要数据库在删除后一直未被shutdown,那么就可以手动恢复,恢复的前提是Oracle安装在Linux系统下,下面是一个实例模拟 1. 在数据库open的时候,直接删除users表空间中的数据文件。 SQL select
Oracle数据库中表空间的数据文件在基于OS系统级别被rm -rf 删除后,只要数据库在删除后一直未被shutdown,那么就可以手动恢复,恢复的前提是Oracle安装在Linux系统下,下面是一个实例模拟
1. 在数据库open的时候,直接删除users表空间中的数据文件。
2. 尝试在users表空间中创建表,开始报错。
3. 检查dbwr的进程PID
4. dbwr会打开所有数据文件的句柄。在proc目录中可以查到,目录名是进程PID,fd表示文件描述符。
注意其中“/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf (deleted)”字样,表示该文件已经被删除,如果是Solaris操作系统,ls命令不会有如此清晰的显示,为了在Solaris系统中确认哪个句柄对应哪个文件,则需要使用lsof程序。
5. 直接cp该句柄文件名回原位置。
6. 进行数据文件recover ---------- 在归档模式下
完成数据文件恢复。
在非归档模式下,需要shutdown后,进入mount模式,offline,recover,online,open
恢复的原理是,在Linux操作系统中,如果文件从操作系统级别被rm掉,之前打开该文件的进程仍然持有相应的文件句柄,所指向的文件仍然可以读写,并且该文件的文件描述符可以从/proc目录中获得。但是要注意的是,此时如果关闭数据库,则此句柄会消失,那么除了扫描磁盘进行文件恢复之外就没有其它方法了,因此在数据库出现问题的时候,如果不确认情况的复杂程度,千万不要随便关闭数据库。重启数据库往往是没有意义的,甚至是致命的。
Oracle数据库中表空间的数据文件在基于OS系统级别被rm -rf 删除后,只要数据库在删除后一直未被shutdown,那么就可以手动恢复,恢复的前提是Oracle安装在Linux系统下,下面是一个实例模拟
1. 在数据库open的时候,直接删除users表空间中的数据文件。
5. 直接cp该句柄文件名回原位置。
在非归档模式下,需要shutdown后,进入mount模式,offline,recover,online,open
恢复的原理是,在Linux操作系统中,如果文件从操作系统级别被rm掉,之前打开该文件的进程仍然持有相应的文件句柄,所指向的文件仍然可以读写,并且该文件的文件描述符可以从/proc目录中获得。但是要注意的是,此时如果关闭数据库,则此句柄会消失,那么除了扫描磁盘进行文件恢复之外就没有其它方法了,因此在数据库出现问题的时候,如果不确认情况的复杂程度,千万不要随便关闭数据库。重启数据库往往是没有意义的,甚至是致命的。
相关文章推荐
- linux ext3 ext4 文件系统 rm -rf删除后数据快速恢复
- ext3grep恢复rm -rf删除的文件
- 用ext3grep恢复rm -rf 误删除的文件
- rm -rf删除文件的恢复
- opensuse 12.3 使用extundelete恢复ext3,ext4文件系统下被rm删除的数据
- linux ext3 ext4文件系统下 恢复 rm -rf 误删除文件
- 恢复被rm意外删除数据文件
- linux 下恢复rm -rf删除的文件
- 使用 Linux 文件恢复工具恢复rm -rf删除的文件
- 无归档,无备份,rm误删除所有数据文件恢复(四)
- 恢复被rm意外删除数据文件
- ext4文件系统里恢复被rm -rf删除的文件
- ORA-27041: unable to open file--恢复被rm意外删除数据文件
- 无归档,无备份,rm误删除数据文件恢复(三)
- linux用extundelete恢复ext2、ext3、ext4下rm -rf误删除的数据
- ext2文件系统下rm-rf * 误删数据恢复
- 【Linux】rm删除数据文件的恢复操作
- 恢复被rm意外删除数据文件
- 使用lsof恢复rm -rf删除后的文件
- rm -rf 删除文件恢复