山定子 注:以下内容是从网上收集的,本人未测试过。据说第三个方法有人测试通过。
误删除数据库文件*.dbs导致oracle启动失败的解决方法
一、
下面步骤模拟误删除后的修复过程:
1.rm /pb/OpenWorks/oracle/dbs/OWEX0.dbs
2.手动启动(dbstart)查看出错信息,找出删除的.dbs文件名和数据库名。
3.连接数据库(SqlPlus)
su - oracle
svrmgrl
connect internal
startup nomount
alter database mount exclusive;
4.从数据库中删除出错信息中列出的全路径文件
alter database dataafile '/pb/OpenWorks/oracle/dbs/OWEX0.dbs'
offline drop;
5.打开数据库 alter database open;
6.drop tablespace OWEX including contents cascade constraints;
drop user OWEX cascade;
drop role manage_OWEX;
drop role interp_OWEX;
drop role l_interp_OWEX;
drop role browse_OWEX
7.从工区数据库中删除OWEX
alter session set current_schema=owsys;
delete from ow_sys_project where project_name='OWEX';
delete from ow_sys_prj_user where project_name='OWEX'; delete from owsysp.ow_sysp_prj_security where
project_name='OWEX';
commit
8.重新dbshut数据库后,再次dbstart,数据库应该正常启动,如果有OWEX 工区的备份文件,restore 即可。
=================================
二、
这是来自阿果石油网的 hdgcl 提供的解决方案:
第5楼
1. 在xterm(1)窗口登录进入oracle帐号, su - oracle,
sun1{oracle}# svrmgrl
SVRMGR> connect internal
SVRMGR> startup mount
SVRMGR> alter database datafile '/home1/OpenWorks/oracle/dbs/owsysp_tbs.dbf' offline drop;
SVRMGR> alter database open;
SVRMGR> drop tablespace owsysp including contents cascade constraints;
2. 在xterm(2)窗口, su – oracle,并且执行下列命令:
sun1{oracle}# rm /home1/OpenWorks/oracle/dbs/owsysp_tbs.dbf
3. 返回到 xterm(1) 窗口,作
SVRMGR > create tablespace OWSYSP datafile '/home1/OpenWorks/oracle/dbs/owsysp_tbs.dbf' size 1M;
SVRMGR > grant DBA to owsysp with ADMIN OPTION ;
SVRMGR > grant create procedure, create synonym, create table,
2 > create sequence, create database link, create trigger,
3 > create session, create view to owsysp ;
4. 返回到 xterm(2)窗口,作
sun1{oracle}44# $ORACLE_HOME/bin/imp owsysp/owsysp INCTYPE=restore FULL=y \
FILE=/home1/OpenWorks/dat/owsys/owsysp.dmp
5. 返回到 xterm(1)窗口, 作
SVRMGR > connect owsysp/owsysp;
SVRMGR > exit;
=====================================
三、
山定子 注:据兰马群员(26个字母)说,他用下述方法测试通过。
冰晶
540439299
LandMark Ⅰ 号超级群 36530625
问题:误删除数据库文件*.dbs导致oracle启动失败
回答:下面步骤模拟误删除后的修复过程:
1. 手动启动(dbstart)查看出错信息,找出删除的dbs文件名和库名(AHMTNNN)
2. 进入sqlplus
su
- oracle
svrmgrl
connect internal
startup nomount
alter database mount exclusive;
以上如不能进入,用以下方法:
Sqlplus /nolog
3. 出现sql>提示符后执行4-7,注意AHMTnnn需要根据实际库名更换.
4. 从数据库中删除出错信息中列出的全路径文件
alter database datafile ‘/pb/oracle/OraHome1/owprojects /AHMTnnn.dbs’ offline drop;
若跟我一样仅是在project admin菜单里看不到恢复的工区信息而在系统下却能找到恢复的工区开头的一串名字的情况下。仅执行这些就够了。Commit;后再quit出来,dbshut 之后再dbstart.就该正常了,或退出SQL后重起机器也可。后面这些指令若也执行就会提示不存在。因为根本就没形成这些字段。
若 project admin能看见,则库里相关字段内容都要清干净。
5. 打开数据库
alter database open;
6. drop tablespace AHMTNNN including
contents cascade
constraints;
drop user AHMTNNN cascade;
drop role manage_AHMTNNN;
drop role interp_AHMTNNN;
drop role l_interp_AHMTNNN;
drop role browse_AHMTNNN;
7. 从工区数据库中删除AHMTNNN
alter session set current_schema=owsys;
delete from ow_sys_project where
project_name=’AHMTNNN’;
delete from ow_sys_prj_user where
project_name=’AHMTNNN’;
delete from owsysp.ow_sysp_prj_security
where
project_name=’AHMTNNN’;
commit;
8.重新dbshut数据库后,再次dbstart,数据库应该正常启动。
==============================
相关内容:
井工区恢复失败的解决办法
http://blog.chinaunix.net/uid-124509-id-61955.html
阅读(6945) | 评论(3) | 转发(0) |