社区
Oracle 高级技术
帖子详情
表空间的物理文件被完全删除,导致ORACLE无法连接,如何恢复?
nibh
2003-08-28 10:34:30
先创建表空间文件,再创建用户,接着删除用户,停止ORACEL服务器,手工删除创建的表空间文件.再重新启动ORACLE,连接时提示:ORACLE NOT AVAILABLE.有什么办法使ORACLE恢复?
...全文
824
6
打赏
收藏
表空间的物理文件被完全删除,导致ORACLE无法连接,如何恢复?
先创建表空间文件,再创建用户,接着删除用户,停止ORACEL服务器,手工删除创建的表空间文件.再重新启动ORACLE,连接时提示:ORACLE NOT AVAILABLE.有什么办法使ORACLE恢复?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nibh
2003-08-30
打赏
举报
回复
感谢阿木和飘,我的数据库已恢复.
使用leeshow的方法,数据库提示:ora-01034:oracle not availabled.
tiangou
2003-08-29
打赏
举报
回复
请输入用户名: sys/sys@zhou as sysdba
连接到:
Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
With the Partitioning option
JServer Release 9.0.1.1.1 - Production
SQL> create tablespace test datafile 'c:\test.dbf' size 1M;
表空间已创建。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 118255568 bytes
Fixed Size 282576 bytes
Variable Size 83886080 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 9 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 9: 'C:\TEST.DBF'
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 118255568 bytes
Fixed Size 282576 bytes
Variable Size 83886080 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
数据库装载完毕。
SQL> alter database datafile 'C:\TEST.DBF' offline drop;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL>
l2g32003
2003-08-29
打赏
举报
回复
不用恢复数据文件的话 上面的就可以解决
1.查看归档情况
SQL> connect internal
已连接。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 D:\oracle\oradata\ora8i\archive
最早的概要信息日志序列 501
下一个存档日志序列 503
当前日志序列 503
SQL>
2.创建测试的数据文件及表空间
SQL> show user
USER 为"SYSTEM"
SQL> select file_name, tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAM
-------------------------------------------------- --------------
D:\ORACLE\ORADATA\ORA8I\SYSTEM01.DBF SYSTEM
D:\ORACLE\ORADATA\ORA8I\RBS01.DBF RBS
D:\ORACLE\ORADATA\ORA8I\USERS01.DBF USERS
D:\ORACLE\ORADATA\ORA8I\TEMP01.DBF TEMP
D:\ORACLE\ORADATA\ORA8I\TOOLS01.DBF TOOLS
D:\ORACLE\ORADATA\ORA8I\INDX01.DBF INDX
D:\ORACLE\ORADATA\ORA8I\OEM_REPOSITORY.ORA OEM_REPOSITORY
D:\ORACLE\ORADATA\ORA8I\TTS_EX1.DBF TTS_EX1
D:\ORACLE\ORADATA\ORA8I\TTS_EX2.DBF TTS_EX2
已选择9行。
SQL> create tablespace table_data
2 datafile 'd:\oracle\oradata\ora8i\table_data.dbf' size 2M;
表空间已创建。
3.创建测试的用户和表
SQL> create user aa identified by aa
2 default tablespace table_data
3 temporary tablespace temp;
用户已创建
SQL> grant connect, resource to aa;
授权成功。
SQL> grant alter system to aa;
授权成功。
SQL> conn aa/aa;
已连接。
SQL> create table test(a int);
表已创建。
4.创建测试的表数据
SQL> insert into test values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into test values(2);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into test values(3);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into test values(4);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from test;
A
----------
1
2
3
4
因为都commit了,所以如果成功恢复的话,应该可以看到全部4条数据。
5.物理删除文件d:\oracle\oradata\ora8i\table_data.dbf
SVRMGR> connect internal
连接成功。
SVRMGR> shutdown immediate;
已关闭数据库。
已卸下数据库。
已关闭 ORACLE 实例。
D:\>del d:\oracle\oradata\ora8i\table_data.dbf
D:\oracle\oradata\ora8i>dir *.dbf/w
驱动器 D 中的卷没有标签。
卷的序列号是 C822-4715
D:\oracle\oradata\ora8i 的目录
INDX01.DBF RBS01.DBF SYSTEM01.DBF TEMP01.DBF TOOLS01.DBF
TTS_EX1.DBF TTS_EX2.DBF USERS01.DBF
8 个文件 736,165,888 字节
0 个目录 1,280,155,648 可用字节
6.启动数据库报错
SVRMGR> startup
ORACLE instance started.
Total System Global Area 54761500 bytes
Fixed Size 75804 bytes
Variable Size 19685376 bytes
Database Buffers 34922496 bytes
Redo Buffers 77824 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 10 - see DBWR trace file
ORA-01110: data file 10: 'D:\ORACLE\ORADATA\ORA8I\TABLE_DATA.DBF'
7.开始进行恢复
SVRMGR> alter tablespace TABLE_DATA offline immediate;
alter tablespace TABLE_DATA offline immediate
*
ORA-01109: database not open
SVRMGR> select * from v$recover_file;
FILE# ONLINE ERROR CHANGE# TIME
---------- ------- ------------------ ---------- ---------
10 ONLINE FILE NOT FOUND 0
1 row selected.
SVRMGR> alter database datafile 10 offline;
Statement processed.
SVRMGR> alter database open;
Statement processed.
SVRMGR> alter database create datafile 'D:\ORACLE\ORADATA\ORA8I\TABLE_DATA.DBF'
as 'D:\ORACLE\ORADATA\ORA8I\TABLE_DATA.DBF' size 2M;
Statement processed.
SVRMGR> recover tablespace table_data;
ORA-00279: change 760836 generated at 08/25/2003 17:41:31 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\ORA8I\ARCHIVE\ORA8IT001S00503.ARC
ORA-00280: change 760836 for thread 1 is in sequence #503
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
Log applied.
ORA-00279: change 760874 generated at 08/25/2003 17:47:07 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\ORA8I\ARCHIVE\ORA8IT001S00504.ARC
ORA-00280: change 760874 for thread 1 is in sequence #504
ORA-00278: log file 'D:\ORACLE\ORADATA\ORA8I\ARCHIVE\ORA8IT001S00503.ARC' no lon
ger needed for this recovery
Log applied.
Media recovery complete.
SVRMGR> alter tablespace table_data online;
Statement processed.
8.测试是否恢复完整
SQL> conn aa/aa;
Connected.
SQL> select * from test;
A
----------
1
2
3
4
6liuy
2003-08-29
打赏
举报
回复
同意 tiangou(阿木)
LGQDUCKY
2003-08-29
打赏
举报
回复
手工删除创建的表空间文件,以后操作要在数据库里面做,
因为你物理删除数据文件,并不是数据库的行为。
因为你这个数据文件不需要,这种方法恢复简单。例如:
上面的兄弟也提到了:
用SVRMGRL
SVRMGRL>CONNECT internal
SVRMGRL>startup mount
SVRMGRL> alter database datafile <删除的文件名,全路径> offline drop;
SVRMGRL>alter database open;
chanet
2003-08-29
打赏
举报
回复
以oracle身份登陆:
1.
$sqlplus /nolog
sql>connect internal
sql>startup
2.
$sqlplus internal
sql>startup
3.
$sqlplus /nolog
sql>connect /as sysdba
sql>startup
4.
$svrmgr
svrmgr>connect internal
svrmgr>startup
Oracle
误
删除
dbf
文件
和
表空间
恢复
Oracle
物理
删除
dbf
文件
和
表空间
恢复
参考: https://www.iteye.com/blog/java-mans-1642954 https://blog.csdn.net/qq_42774325/article/details/82353266 https://www.cnblogs.com/l10n/p/9406052.html 今天在dmp数据时入错了;想着把
表空间
文件
直接删了,重新入;这想当然的操作,
导致
后面浪费了时间; 题目说
恢复
并非指“
恢复
数据”,确切来说指的是“修复”或“复原”
误
删除
Oracle
表空间
,
恢复
,重
删除
,新建
起因:创建临时
表空间
没有使用temporary关键字,所以直接硬盘误
删除
了
表空间
,所以现在要
恢复
误创建的
表空间
,并进行正确
删除
,重新创建 错误信息:ORA-01033:
ORACLE
initialization or shutdown in progress原因:在
oracle
数据
文件
目录(例如:D:\
oracle
\product\10.2.0\db_1\database)误删了一个数据
文件
。 恢...
oracle
物理
文件
删除
如何
恢复
,
物理
删除
oracle
数据
文件
的
恢复
归档模式下测试:一.open状态下
物理
删除
数据
文件
,关闭情况
恢复
:SQL> create tablespace test datafile ‘+DATA/mecbs/datafile/test01.dbf‘ size 10M;Tablespace created.SQL> conn scott/scott;Connected.SQL> conn /as sysdbaConnect...
oracle
物理
文件
删除
如何
恢复
,
Oracle
数据
文件
物理
删除
后的
恢复
做系统管理的都是这样,难免会误删
文件
,某天要是把某个
Oracle
数据
文件
删除
,那该如何
恢复
呢?(这里数据库是OPEN的,并且未关闭)建立测试
表空间
创建测试用户插入测试数据
删除
数据
文件
恢复
数据库
文件
建立测试
表空间
SQL>selectnamefromv$datafile;NAME-------------------------------------------------------...
Oracle
中的
表空间
Oracle
中的
表空间
应用
Oracle 高级技术
3,499
社区成员
18,709
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章