ORA-25153临时表空间为空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-25153临时表空间为空相关的知识,希望对你有一定的参考价值。

参考技术A 报ORA-25153,这一定是临时表空间逻辑名还在,但是找不到临时文件的原因。

解决方法:

1、查询临时表空间状态状态

select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS

------------------------------ ---------

SYSTEM                        ONLINE

UNDOTBS1                      ONLINE

SYSAUX                        ONLINE

TEMP                          ONLINE

USERS                          ONLINE

TEST_TBS                      ONLINE

TEST_TBS_TEMP                  ONLINE

说明表空间是在线的

2、查询临时表空间文件

select tablespace_name,file_name from dba_temp_files;

未选定行

说明已经找不到物理文件了

3、alter database  default temporary tablespace temp;

执行此命令后会报ORA-12907: 表空间 TEMP 已经是默认的临时表空间

这就说明临时表空间丢失了数据文件

4、我们添加一个临时文件给它

alter tablespace temp add tempfile '/u01/Oracle/oradata/temp02.dbf' size  512m autoextend on;

5、我们查看一下文件是否建立成功

select tablespace_name,file_name from dba_temp_files;

原创oracle ORA-01157 ORA-01110 DataGuard 备库 临时表空间报错

简要: 当查询数据库数据时,提示临时表空间异常,报错ORA-01157 ORA-01110,经过对数据文件处理后,已经解决此故障。

 

环境:Oracle 11g RAC For Linux 6,该库为DataGuard备库

 

1. 查询数据时报错,如下:

ERROR:
ORA-01157: cannot identify/lock data file 226 - see DBWR trace file
ORA-01110: data file 226: ‘+DG_DATA02/racdb/blsp_temp.dbf‘

 

2. 检查DataGuard转换参数

SQL> show parameter db_file_name_convert

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      

-- 输出信息已调整显示格式

+DG_SYSTEM/racdb/datafile, +DG_SYSTEM/racdbdg/datafile,
+DG_SYSTEM/racdb,          +DG_SYSTEM/racdbdg,
+DG_DATA01/racdb/datafile, +DG_DDATA_01/racdbdg/datafile,
+DG_DATA02/racdb/datafile, +DG_DDATA_02/racdbdg/datafile,
+DG_SYSTEM/racdb/tempfile, +DG_SYSTEM/racdbdg/tempfile,
+DG_DATA01/racdb/tempfile, +DG_DDATA_01/racdbdg/tempfile,
+DG_DATA02/racdb/tempfile, +DG_DDATA_02/racdbdg/tempfile


发现转换参数格式是正确的,但是没有设置临时数据文件所在路径

 

3. 再查询ASM磁盘组中,也确实没有报错的这个临时数据文件

 

4. 解决方法:

   a. 调整数据库参数

   b. 将数据文件重新创建到ASM磁盘组中

 

5. 调整转换参数,在主库中增加临时表空间的转换路径,在备库中的路径与主库相反,该参数为静态参数,需要重启数据库,数据库为生产库,暂时不修改。

提供修改示例如下:

主库:

。。。

‘+DG_DATA02/racdb/‘,‘+DG_DATA02/racdbdg/‘

。。。

备库:

。。。

‘+DG_DATA02/racdbdg/‘,‘+DG_DATA02/racdb/‘

。。。

 

6. 调整数据文件路径

6.1. 查询主库中的数据文件信息,完整路径和文件大小

SQL> select file_id,file_name,bytes/1024/1024 MB,status,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;

   FILE_ID FILE_NAME                               MB STATUS  TABLESPACE_NAME
---------- ------------------------------- ---------- ------- -----------------
        26 +DG_DATA02/racdb/blsp_temp.dbf        10240 ONLINE  BLSP_TEMP

SQL>

 

6.2. 取消备库日志应用,修改文件管理方式为手动管理

alter database recover managed standby database cancel;
alter system set standby_file_management=MANUAL SID=‘*‘;

 

6.3. 将数据文件RENAME到备库的ASM磁盘路径中,不成功,报错如下:

SQL> alter database rename file ‘+DG_DATA02/racdb/blsp_temp.dbf‘ to ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘;
alter database rename file ‘+DG_DATA02/racdb/blsp_temp.dbf‘ to ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01141: error renaming data file 226 - new file ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘ not found
ORA-01110: data file 226: ‘+DG_DATA02/racdb/blsp_temp.dbf‘
ORA-17503: ksfdopn:2 Failed to open file +DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf
ORA-15173: entry ‘blsp_temp.dbf‘ does not exist in directory ‘datafile‘


SQL>

 

6.4. 在临时表空间里面新添加一个数据文件,成功

SQL> alter tablespace BLSP_TEMP add tempfile ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf‘ size 10240M;

Tablespace altered.

SQL>

查询临时表空间,还是报错

SQL>  select file_id,file_name,bytes/1024/1024 MB,status,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;
 select file_id,file_name,bytes/1024/1024 MB,status,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘
                                                                         *
ERROR at line 1:
ORA-01157: cannot identify/lock data file 226 - see DBWR trace file
ORA-01110: data file 226: ‘+DG_DATA02/racdb/blsp_temp.dbf‘


SQL>

删除报错的数据文件,成功

SQL> alter tablespace BLSP_TEMP drop tempfile ‘+DG_DATA02/racdb/blsp_temp.dbf‘;

Tablespace altered.

SQL>

查询表空间信息,正常

SQL> select file_id,file_name,bytes/1024/1024 MB,status,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;

   FILE_ID FILE_NAME                                                       MB STATUS  TABLESPACE_NAME
---------- ------------------------------------------------------- ---------- ------- ------------------------------
        27 +DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf                 10240 ONLINE  BLSP_TEMP

SQL>

 

6.5. 再新添加回来原来报错的数据文件名字


SQL> alter tablespace BLSP_TEMP add tempfile ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘ size 10240M;

Tablespace altered.

SQL>  select file_id,file_name,bytes/1024/1024 MB,status,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;

   FILE_ID FILE_NAME                                                       MB STATUS  TABLESPACE_NAME
---------- ------------------------------------------------------- ---------- ------- ------------------------------
        26 +DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf                   10240 ONLINE  BLSP_TEMP
        27 +DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf                 10240 ONLINE  BLSP_TEMP

SQL>

 

6.6. 删除新添加的数据文件(blsp_temp02.dbf)

SQL> alter tablespace BLSP_TEMP drop tempfile ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf‘;

Tablespace altered.

SQL>
SQL> select file_id,file_name,bytes/1024/1024 MB,status,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;

   FILE_ID FILE_NAME                                                       MB STATUS  TABLESPACE_NAME
---------- ------------------------------------------------------- ---------- ------- ------------------------------
        26 +DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf                   10240 ONLINE  BLSP_TEMP

SQL>

 

6.7. 设置文件管理方式为自动,并启用日志应用

alter system set standby_file_management=AUTO SID=‘*‘;

alter database recover managed standby database using current logfile disconnect ;

 















































































以上是关于ORA-25153临时表空间为空的主要内容,如果未能解决你的问题,请参考以下文章

ORA-25153: 临时表空间为空

Ora-25153:临时表空间为空

ORACLE-015:ora-25153 暂时表空间为空,ora01652 无法通过128

临时表空间操作总结

mysql 临时空间不足怎么办

怎么修改mysql数据库临时表空间大小