数据库被删除了怎么恢复

数据库被删除了怎么恢复,第1张

数据库删除了数据是一个很棘手的问题,数据的删除首先包括三个层面:

1.删除放入回收站,没有在回收站中清除数据。这种情况是最简单的,进入回收站,找到删除的数据,右击选择恢复。

2.删除后未放入回收站或者删除后清空回收站,尽量先不要往原数据所在盘符下储存内容,刚刚删除的数据只是文件结构被删除,真正的文件数据还没被覆盖。通过数据恢复软件是可以找回来的,专业的软件例如有超级兔子数据恢复软件。

3.如果是删除很久以后才想到数据库数据要恢复,并且磁盘一直在使用,磁盘被填满的话数据就已经被覆盖了,这样的数据是无法找回的。

如何恢复一个被误drop的存储过程

--此方法,适用开启归档模式的Oracle数据库

当你DROP掉存储过程时,首先

SQL>dropprocedureselect_data

SQL>altersystemswitchlogfile--切换日志

系统已更改。

查看flash_recovery_area文件下下最新的归档日志

SQL>connsysassysdba--使用sys用户连接

SQL>showparameterutl

NAMETYPEVALUE

-----------------------------------------------------------------------------

create_stored_outlinesstring

utl_file_dirstring

设置utl_file_dir路径

--单实例环境

SQL>altersystemsetutl_file_dir='d:demo'scope=spfile

--RAC环境

SQL>altersystemsetutl_file_dir='d:demo'scope=spfilesid='*'

重启数据库

SQL>Shutdownimmediate

SQL>Startup

建立字典文件(环境为windows)

--dict.ora为文件名d:\demo,为路径名

SQL>executedbms_logmnr_d.build('dict.ora','d:\logmnr',dbms_logmnr_d.store_in_flat_file)

PL/SQL过程已成功完成。

建立日志分析列表

SQL>executedbms_logmnr.add_logfile(logfilename=>'E:\app\ZT\flash_recovery_area\lyz\ARCHIVELOG\2012_11_21\O1_MF_1_29_8BRJ6S2J_.ARC',options=>dbms_logmnr.new)

PL/SQL过程已成功完成。

--继续添加日志

SQL>executedbms_logmnr.add_logfile(logfilename=>'E:\app\ZT\flash_recovery_area\lyz\ARCHIVELOG\2012_11_21\O1_MF_1_30_8BRJSY77_.ARC',options=>dbms_logmnr.addfile)

PL/SQL过程已成功完成。

启动LogMiner

SQL>executedbms_logmnr.start_logmnr(dictfilename=>'D:\logmnr\dict.ora',options=>dbms_logmnr.ddl_dict_tracking)

PL/SQL过程已成功完成。

数据库中的数据被删除后,可以恢复。但至少需要满足两个条件:

1、在误删之前,至少有完整备份之前的数据库。

2、数据库的恢复模式(Recoverymode)是“完整(Full)”。

只有满足这两个条件,才可以恢复数据库中误删的数据。

针对这两个前提条件,有三种方式可以恢复数据:

方式一:如果,这两个前提条件都满足,可以通过SQL语句进行数据恢复,而且只需三步即可恢删除的数据,无需第三方工具。

方式二:当不满足第一个条件,而满足第二个条件时,需要借助第三方工具,才能恢复数据。

方式三:如果两个条件都不满足,数据则无法恢复。所以,一定将数据库的恢复模式,调整为“完整(Full)”。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6729614.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存