oracle误删除表空间的解决办法(造成ORA-01033
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
oracle 9i误删除表空间的解决办法(造成ORA-01033: ORACLE initialization or shutdown in progress ;ORA-01110: 数据库未打开)
依次执行如下命令:
0.开始--运行-- 输入 services.msc进入服务,在里面开启orcaleServiceORCL
1.开始--运行-- 输入cmd
sqlplus /nolog
SQL>conn system/manage as sysdba;
已连接到空闲例程。
2.SQL>shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
3.SQL>startup mount;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
4.SQL>alter database open;(查看误删除的文件)
alter database open
*
ERROR 位于第 1 行:
ORA-01157: 无法标识/锁定数据文件 11 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 11: 'E:\WB\MYSPACE.ORA'
5.SQL>alter database clear unarchived logfile group 1 unrecoverable datafile; (在文件恢复出错时,使用此命令将文件删除)
数据库已更改
SQL>alter database clear unarchived logfile group 2 unrecoverable datafile;
数据库已更改
SQL>alter database clear unarchived logfile group 3 unrecoverable datafile;
数据库已更改
6.SQL>alter database datafile 'E:\WB\MYSPACE.ORA' offline drop;(将误删除的表空间从数据库中卸载)
数据库已更改
7.SQL>alter database open;
数据库已更改
至此,结束了,再登陆后就成功了!
SQL> alter tablespace 表空间名 online;
*
ERROR 位于第 1 行:
ORA-01157: 无法标识/锁定数据文件 11 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 11: 'E:\WB\MYSPACE.ORA'
可见这是由于C:\ORACLE\ORADATA\ORCL\REDO01.LOG被误删造成的,那么有什么办法可以解决这个问题呢(希望保留用户vm_uer的所有表及其中的数据)?恳请大侠们指点。
---------------------------------------------------------------
首先,执行下面的语句看看group1是不是current日志组
SQL> select group#,sequence#,archived,status from v$log;
如果被删除的日志不是当前日志组的成员,比较简单
SQL> alter database clear logfile group 1;
如果你的库是非归档的,或许要用下面的语句
SQL> alter database clear unarchived logfile group 1;
如果是当前日志组损坏,但是数据库是正常关闭的,上面的办法也可以使用
如果日志组中有活动的事务,那么可能需要利用备份来恢复了,否则只有通过隐含参数强制打开库(不推荐,如果是生产库,最好请求技术支持)