【原创】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 ;

原文地址:https://www.cnblogs.com/fengaix6/p/9508926.html

时间: 2024-08-02 02:13:36

【原创】oracle ORA-01157 ORA-01110 DataGuard 备库 临时表空间报错的相关文章

『ORACLE』DG搭建时备库的db_name报错

因为搭建DG时备库中的db_name为SBCD,实际应该是主库db_name的PROD1 所以在[主库]执行如下rman操作命令时会报错控制文件记录的数据库名与实际拷贝的数据库名不相同 RMAN> duplicate target database for standby from active database; Starting Duplicate Db at 01-MAY-17using target database control file instead of recovery ca

Oracle 11 g duplicate功能_复制dataguard备库

Qracle 11g duplicate功能 不用备份源库,通过网络复制出standby库 1.在standby上grid用户配置listener 注意是指定oracle用户的家目录: 监听状态: [[email protected] ~]$lsnrctl LSNRCTL for Linux:Version 11.2.0.4.0 - Production on 19-MAY-2014 18:46:15 Copyright (c)1991, 2013, Oracle.  All rights re

DataGuard备库ORA-01196故障恢复一则

问题现象 在使用shutdown abort停DataGuard备库后,备库不能open,报ORA-01196错误. 具体如下: 发现一备库不能应用日志,查看备库日志没发现报错,怀疑是备库应用日志服务停止,于是尝试重启备库: 可能因为备库是读业务比较繁忙,在shutdown immediate关闭备库时等时间过长,于是使用了shutdown abort命令: 但后面在启动备库时发生报错,造成数据文件损坏,控制文件和数据文件的scn号不一致. --启动备库时报错 SQL> startup ORAC

在dataguard备库上找回在主库上被错误的Drop/Truncate/Delete 掉的Table

前提: - Standby Database Must be in Flashback database mode. - Time at which Drop/Truncate/Delete Table happened should be within the db_flashback_retention_target and all the flashback and archive logs should be available     在dataguard备库上找回在主库上被错误的Dr

Oracle GoldenGate环境中主库和备库 网络突然中断后,主端的dp进程无法启动的问题

view report dpfull, 现象是 /gg/ggs/dirdat/aa000053 (no surch file or directory) 实际上,此文件在目的端存在的. 处理方法: 1. 目的端ps -ef | grep ggs ,找到server进程,假设server进程的pid是12345 2. 目的端 kill -9 12345 3. 目的端 stop mgr 4. 目的端 start mgr 5. 源端 start dp 6.dp状态ok,问题处理完毕. Oracle G

11gR2 dataguard 备库文件损坏处理一例

延迟标记像极了线段树,不再多说. 区间反转在树伸展到位之后,也变成了简单的递归交换左右儿子. 愈发感觉到伸展树简直太漂亮了,伸展操作更是诱惑到不行 ,总之数据结构太有魅力了. 比较简单,就直接上模板了. #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <queue> #in

oracle11g dataguard 备库数据同步的检查方法

概述: 一.环境 主库: ip地址:192.168.122.203 oracle根目录:/data/db/oracle SID:qyq 数据文件路径/data/db/oracle/oradata/qyq 归档文件路径:/data/db/oracle/archive' 备库: ip地址:192.168.122.204 oracle根目录:/data/app/oracle SID:qyq 数据文件路径/data/app/oracle/oradata/qyq 归档文件路径:/data/app/orac

利用ORACLE 11g 新特性创建物理备库

准备工作: 主库启用归档 在所有系统上安装oralce 11g软件 备库创建必要的目录 创建监听,配置tnsname文件 第一步: 将主库的密码文件cp一份到备库中 第二步: 主备库的参数文件修改: 主库参数文件如: matrix.__db_cache_size=83886080 matrix.__java_pool_size=4194304 matrix.__large_pool_size=4194304 matrix.__oracle_base='/u2/oracle'#ORACLE_BAS

Oracle 11g Data Guard 之逻辑备库角色转换

逻辑备库不复制数据库服务,在进行switchover或者failover时,连接主库服务的中间层将不能连接(因为服务的创建没有被复制),或者连接不正确的版本(因为服务属性的修改没有被复制). Oracle集群不复制管理逻辑备库的服务,必须手动对主库与备库进行同步,具体的详参Oracle集群管理和部署的相关内容. 一.逻辑备库的switchover操作 当进行switchover操作来改变主库和逻辑备库的角色时,总是在主库启动switchover,然后在逻辑备库完成操作,其中的步骤必须按顺序,否则