数据导入时遭遇ORA-01187、ORA-01110问题(二)
--------------------
GOEX_ADMIN GOEX_TEMP
3、故障解决
[sql]
--从上面的情形来看,应该是热备恢复之后,由于临时表空间不需要做restore,所以导致了控制文件中临时表空间的相关信息与数据字典中记录的不一致
--下面我们来为临时表空间GOEX_TEMP增加一个数据文件
SQL> alter tablespace GOEX_TEMP add tempfile '/u02/database/EC0320/temp/EC0320_tempEC0320_2.dbf' size 100m autoextend on;
Tablespace altered.
--删除之前的数据文件
SQL> alter tablespace GOEX_TEMP drop tempfile '/u02/database/EC0320/temp/EC0320_tempEC0320.dbf';
Tablespace altered.
--再次查询dba_temp_files,可以看到下面的错误提示是一样的,只不过指向了不同的数据文件,依然需要修改
SQL> select FILE_NAME,STATUS,AUTOEXTENSIBLE from dba_temp_files;
select FILE_NAME,STATUS,AUTOEXTENSIBLE from dba_temp_files
*
ERROR at line 1:
ORA-01187: cannot read from file 201 because it failed verification tests
ORA-01110: data file 201: '/u02/database/EC0320/temp/tempEC0320.dbf'
SQL> alter tablespace TEMP add tempfile '/u02/database/EC0320/temp/tempEC0320_2.dbf' size 100m autoextend on;
Tablespace altered.
SQL> alter tablespace TEMP drop tempfile '/u02/database/EC0320/temp/tempEC0320.dbf';
Tablespace altered.
SQL> alter tablespace FIX_TEMP add tempfile '/u02/database/EC0320/temp/EC0320_temp_fix.dbf' size 100m autoextend on;
Tablespace altered.
SQL> alter tablespace FIX_TEMP drop tempfile '/u02/database/EC0320/temp/EC0320_temp.dbf';
Tablespace altered.
SQL> select FILE_NAME,STATUS,AUTOEXTENSIBLE from dba_temp_files;
FILE_NAME STATUS AUT
------------------------------------------------------------ --------- ---
/u02/database/EC0320/temp/EC0320_temp_fix.dbf AVAILABLE YES
/u02/database/EC0320/temp/tempEC0320_2.dbf AVAILABLE YES
/u02/database/EC0320/temp/EC0320_tempEC0320_2.dbf AVAILABLE YES
--上述操作之后,对应的文件在文件系统中并没有删除,需要手动删除
--应该可以通过reuse方式来重新使用临时表空间的数据文件,而无需通过添加删除方式来解决,此未测试
4、小结
a、对于数据库恢复之后,除了能够正常open之外,应考虑临时表空间是否处于可用状态
b、对于ORA之类的错误,最快的了解错误的详细信息是系统命令提示符下输入oerr ora