意外删除数据文件,如何回复oralce库

[复制链接]
查看11 | 回复9 | 2010-1-4 08:33:08 | 显示全部楼层 |阅读模式
oralce库中一个数据文件意外被别人删除,而且那个磁盘已经有过写操作,现在无法打开该数据文件属于的数据库,总是提示

ralce正在打开或关闭,请救救我!
回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
有备份吗
回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
该数据文件对应哪个表空间?
回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
我是一个新手,对oralce知道得很少,这里暂时没有懂的人,所以如果有什么解决方法,请告诉详细操作过程及使用的软件
我搜索了以前的帖子,看到有相关讨论,但我不知道该如何操作
比如"svrmgr>"是个什么东西,现在无法和数据库建立连接,怎么能执行那些alter语句的?
烦请指导!
回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
备份与恢复不是三言两语就能说得清的东西。
建议先看看书吧。
回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
我也不知道什么备份,似乎是没有备份吧,我们这个是开发用的小服务器,应该没有做备份处理吧
我知道这个文件对应的表空间,另外,别人删除时是直接在windows下的资源管理器里操作的
现在我无法打开数据库,也不能执行什么sql语句了.无论是普通用户还是sys用户都不能登陆了.
回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
管理员,我不想知道备份和回复,就想知道如何使我的数据库能够打开,就是这种意外用资源管理器删除数据文件后的处理方法,谢谢
回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
本机下,如果是win2000
打开命令行窗口
sqlplus /nolog
然后
conn/ as sysdba
shutdown immediate
startup mount
再把那个删掉的文件OFFLINE(忘了语法了)
alter database open
试试看。
回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
因为表空间对应的物理文件已经不存在,控制文件必须更新.
把下面命令中的文件路径改成对应的路径.
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "xxx"
NORESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 'c:\ORADATA\REDO\REDO01.LOG'SIZE 10M,
GROUP 2 'c:\ORADATA\REDO\REDO02.LOG'SIZE 10M,
GROUP 3 'c:\ORADATA\REDO\REDO03.LOG'SIZE 10M
DATAFILE
'c:\ORADATA\SYSTEM01.DBF',
'c:\ORADATA\RBS01.DBF',
'c:\ORADATA\USERS.DBF',
'c:\ORADATA\TEMP01.DBF',
'c:\ORADATA\TOOLS.DBF',
'c:\ORADATA\INDX.DBF',
CHARACTER SET ZHS16GBK;
RECOVER DATABASE
alter database open;
最初由 deskfee 发布
[B]我也不知道什么备份,似乎是没有备份吧,我们这个是开发用的小服务器,应该没有做备份处理吧
我知道这个文件对应的表空间,另外,别人删除时是直接在windows下的资源管理器里操作的
现在我无法打开数据库,也不能执行什么sql语句了.无论是普通用户还是sys用户都不能登陆了. [/B]

回复

使用道具 举报

千问 | 2010-1-4 08:33:08 | 显示全部楼层
以前在网上看到的一篇资料,你照着试一下,情况应该是和你说的一下,希望能有用:
系统环境:
1、操作系统:Windows 2000 Server,机器内存128M
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:\ORACLE
错误现象:
因误操作,数据库中某一数据文件被误删,
控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,
显示以下错误
ORA-01033: ORACLE initialization or shutdown in progress
模拟现象:
create tablespace test datafile
'c:\test.ora' size 5M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
default storage (initial 128K next 1M pctincrease 0)
/
关闭所有服务stop.bat
net stop "OracleWebAssistant0"
net stop "OracleOraHome81TNSListener"
net stop "OracleServiceORADB"
shutdown
在操作系统中删除test.ora文件
重新启动服务start.bat
net start "OracleWebAssistant0"
net start "OracleOraHome81TNSListener"
net start "OracleServiceORADB"
服务里OracleServiceORADB显示已启动,但用SQL*Plus无法连接,
显示ORA-01033: ORACLE initialization or shutdown in progress

解决方法:
先让该数据文件脱机,就可以打开数据库
C:\>svrmgrl
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>startup mount
--ARCHIVELOG模式命令,文件名要大写
svrmgrl>alter database datafile 'C:\TEST.ORA' offline;
--NOARCHIVELOG模式命令
svrmgrl>alter database datafile 'C:\TEST.ORA' offline drop;
svrmgrl>alter database open;

--查询数据文件联、脱机状态
SQL> select file#,name,status from v$datafile;
SQL> drop tablespace test;
表空间已丢弃。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行