oracle恢复误删除表
今天用PLSQL不知道什么原因,用户下的所有表都没了,感觉可能是有人误删了。
部分转于:www.2cto.com (在使用中遇到一些情况,加少许补充)
最终使用以下命令恢复:
if(您要使用下面这个命令,请先看后面的准备工作)
{
flashback table username.T_tableName to before drop;
~~~~~~~~ ~~~~~~~~~~~
(蓝色) (红色)
红字:需要恢复的表名
篮字:指定某一用户下的表(这部分可缺省,此时默认恢复该登录用户下的表)}
该命令支持 Oracle9i以上版本
准备工作:
注意需要启动Flashback功能
启用
数据库Flashback 功能
在win的服务里把所有标记为自动Oracle的服务全都启动起来.如果是Oracle10G,应该有4个服务.
然后,运行cmd.exe,如果Oracle就按照在本机,输入如下命令:sqlplus /nolog.完成后会进入到SQL>的提示符.
这时候如果win的Oracle服务启动起来了,则数据库正常情况下是mount并且是open的,
然后,运行cmd.exe,如果Oracle就按照在本机,输入如下命令:sqlplus /nolog.完成后会进入到SQL>的提示符.
这时候如果win的Oracle服务启动起来了,则数据库正常情况下是mount并且是open的,
要想使用startup mount命令,则需要先关闭Oracle数据库.输入:
SQL>shutdown immediate;
就可以关闭数据库.然后,就可以使用startup mount启动数据库到mount状态了.
如果后面还要打开的话,输入
SQL>alter database open;
则会打开数据库.
SQL>shutdown immediate;
就可以关闭数据库.然后,就可以使用startup mount启动数据库到mount状态了.
如果后面还要打开的话,输入
SQL>alter database open;
则会打开数据库.
1). 数据库启动到mount状态
SQL> startup mount;
2). 检查Flashback 功能, 缺省时功能是关闭的。
SQL> select name, current_scn, flashback_on from v$database;
NAME CURRENT_SCN FLASHBACK_ON
-------- ----------- ------------------
DBA 945715 NO
3). 启动Flashback功能
SQL> alter database flashback on;
数据库已更改。
SQL> select name, current_scn, flashback_on from v$database;
NAME CURRENT_SCN FLASHBACK_ON
--------- ----------- ------------------
DBA 0 YES
本文仅供参考,不当之处请批评指正。