今天模拟了ORA-01157和ORA-01110的错误:
SQL> create tablespace test1 datafile size 20m;
SQL> alter tablespace test1 add datafile size 10m;
SQL> create table test10 (xh number) tablespace TEST1;
表已创建。
SQL> insert into test10 values (111);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select file_name,file_id,tablespace_name from dba_data_files order by file_
id;
FILE_NAME FILE_ID
---------------------------------------- ----------
TABLESPACE_NAME
----------------------------------------
E:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF 1
SYSTEM
E:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF 2
SYSAUX
E:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF 3
UNDOTBS1
FILE_NAME FILE_ID
---------------------------------------- ----------
TABLESPACE_NAME
----------------------------------------
E:\ORACLE\ORADATA\ORCL\USERS01.DBF 4
USERS
E:\ORACLE\ORADATA\ORCL\DUANXQ_TS1.DBF 5
DUANXQ_TS1
E:\ORACLE\ORCL\DATAFILE\O1_MF_TEST1_75L1 6
5FFO_.DBF
TEST1
FILE_NAME FILE_ID
---------------------------------------- ----------
TABLESPACE_NAME
----------------------------------------
E:\ORACLE\ORCL\DATAFILE\O1_MF_TEST1_75L1 7
9G2X_.DBF
TEST1
已选择7行。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
===此时删除数据文件6和7
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 364905364 bytes
Database Buffers 163577856 bytes
Redo Buffers 5844992 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\ORACLE\ORCL\DATAFILE\O1_MF_TEST1_75L15FFO_.DBF'
SQL> select file_name,file_id,tablespace_name from dba_data_files order by file_id;
select file_name,file_id,tablespace_name from dba_data_files order by file_id
*
第 1 行出现错误:
ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
SQL> restore database
SP2-0734: 未知的命令开头 "restore da..." - 忽略了剩余的行。
SQL> recover database
ORA-00283: 恢复会话因错误而取消
ORA-01110: 数据文件 6: 'E:\ORACLE\ORCL\DATAFILE\O1_MF_TEST1_75L15FFO_.DBF'
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\ORACLE\ORCL\DATAFILE\O1_MF_TEST1_75L15FFO_.DBF'
===此时从回收站还原刚才删除的数据文件,然后重新recover报错,但是可以open
SQL> recover database
ORA-00283: 恢复会话因错误而取消
ORA-00264: 不要求恢复
SQL> recover database
ORA-00283: 恢复会话因错误而取消
ORA-00264: 不要求恢复
SQL> alter database open;
数据库已更改。
===下面重新模拟====
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
===此时删除数据文件6和7
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 364905364 bytes
Database Buffers 163577856 bytes
Redo Buffers 5844992 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\ORACLE\ORCL\DATAFILE\O1_MF_TEST1_75L15FFO_.DBF'
SQL> alter database create datafile 6;
数据库已更改。
SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-01110: 数据文件 7: 'E:\ORACLE\ORCL\DATAFILE\O1_MF_TEST1_75L19G2X_.DBF'
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'E:\ORACLE\ORCL\DATAFILE\O1_MF_TEST1_75L19G2X_.DBF'
SQL> alter database create datafile 7;
数据库已更改。
SQL> recover database;
完成介质恢复。
SQL> alter database open;
数据库已更改。
SQL>
SQL> select * from test10;
XH
----------
111
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24058069/viewspace-706027/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24058069/viewspace-706027/