DG常见问题及解决方法

来源:这里教程网 时间:2026-03-03 21:00:54 作者:

问题 1 :归档传不过来 

解决办法:请确认密码文件是否正确 

-rw-r----- 1 oracle oinstall 1536 Apr  9 13:12  orapworcl 

oracle   31148     1  0 10:32 ?        00:00:00 ora_smon_orcl 

原则上二节点密码文件也要从重新一节点传过来 

注意: 12c 版本及以上, rac 密码文件存放 ASM 磁盘中,查询密码文件存放位置方法:  

select * from v$passwordfile_info; 

 

问题 2 :缺失归档 

备库报错: 

atal NI connect error 12545, connecting to: 

 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=racscan)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=oracle)(HOST=orc 

l)(USER=oracle))))     

TNS-00515: Connect failed because target host or object does not exist 

    nt secondary err code: 111 

    nt OS err code: 0 

Error 12545 received logging on to the standby 

FAL[client, ARC0]: Error 12545 connecting to orcl for fetching gap sequence 

 

主库报错 

Error 1033 received logging on to the standby 

Tue Apr 09 20:11:42 2019 

Thread 1 advanced to log sequence 2859 (LGWR switch) 

  Current log# 5 seq# 2859 mem# 0: +FRA/orcl/onlinelog/group_5.259.997268217 

Tue Apr 09 20:11:49 2019 

Archived Log entry 10872 added for thread 1 sequence 2858 ID 0x5ae6f471 dest 1: 

Tue Apr 09 20:11:58 2019 

Error 1033 received logging on to the standby 

FAL[server, ARC3]: FAL archive failed, see trace file. 

ARCH: FAL archive failed. Archiver continuing 

ORACLE Instance orcl1 - Archival Error. Archiver continuing. 

 

解决办法:增量备份 

 

 

问题 3 :通过 rman 备份, restore 数据文件由于种种原因失败(比如空间不足),部分数据文件没有 restore 出来。  

解决办法:清理空间,重新 restore database  ,数据库会 restore 还未恢复出来的文件。不需要重新做过 

 

问题 4 :搭建 rac-rac dg 时,发现备库只能接收到一节点的归档,接收不到二节点的归档  

解决办法:检查一二节点是否用同一个 spfile 起起来的,检查 tnsnames.ora 文件是否正确 

 

问题 5 :归档没有传到指定的 location 位置,但是 location 中已经配置过了  

解决办法: 检查 standby_archive_dest 参数,如为 ?/dbs/arch ,则更改为跟 location 位置中一样的位置 

可查看 dest 的有效性及路径是否正确  select * from v$archive_dest_status;  

 

1) 主库的 LOG_ARCHIVE_DEST_n='service' 默认的 arch 传输方式, primary 会远程将 archived log 传输到 standby_archive_dest

 

2)fal_* 是通过 arch 传输过来的,所以使用的是 STANDBY_ARCHIVE_DEST 目录,如果不存在这个目录,就使用 LOG_ARCHIVE_DEST_n

 

3)If both parameters are specified, the STANDBY_ARCHIVE_DEST initialization parameter overrides the directory location specified with the LOG_ARCHIVE_DEST_n parameter.

如果 STANDBY_ARCHIVE_DEST LOG_ARCHIVE_DEST_n 两个参数指定 ,STANDBY_ARCHIVE_DEST 初始化覆盖 LOG_ARCHIVE_DEST_n 目录指定位置参数。

 

4)If none of the initialization parameters have been specified, then archived redo log files are stored in the default location for the STANDBY_ARCHIVE_DEST initialization parameter.

如果 STANDBY_ARCHIVE_DEST LOG_ARCHIVE_DEST_n 都没有配置,将会把归档日志放到 STANDBY_ARCHIVE_DEST 的默认目录

 

5) 如果 STANDBY_ARCHIVE_DEST 未配置,而配置了 LOG_ARCHIVE_DEST_n, 那么产生的归档将放置到 LOG_ARCHIVE_DEST_n

 

6) 建议: STANDBY_ARCHIVE_DEST LOG_ARCHIVE_DEST_n=‘location’ 的配置相同

 

7) 11g ,已经不建议使用 STANDBY_ARCHIVE_DEST ,也就是说建议 配置 dg 的时候尽量使用 standby redo logfile

 

 

问题 6 dg 强制打开时,在激活 standby 数据库时,遇到以下报错  

ERROR at line 1: 

ORA-00344: unable to re-create online log '+DATA/additdb/onlinelog/log1a' 

ORA-17502: ksfdcre:4 Failed to create file +DATA/additdb/onlinelog/log1a 

ORA-15173: entry 'additdb' does not exist in directory '/' 

解决办法:是由于日志没有转换过来导致的,重命名日志 alter database rename file '' to '' 

  重建控制文件 

将数据库打开,再建新的日志,删除旧的日志 

 

问题 7 19c 手工搭建 dg 时,开启 mrp 时,备库告警日志报如下错误,找不到以下文件  

2020-08-24T04:45:23.767166-04:00 

Errors in file /oracle/app/diag/rdbms/orcl/orcl/trace/orcl_mz00_26961.trc: 

ORA-01110: data file 19: '/oracle/oradata/bbb.281.1044801877' 

2020-08-24T04:45:23.919285-04:00 

Errors in file /oracle/app/diag/rdbms/orcl/orcl/trace/orcl_mz00_26961.trc: 

ORA-01110: data file 73: '/oracle/oradata/ccc01.dbf' 

这是由于主库有多个名字一样但是数据文件路径不一样的文件导致的 

解决方法:重新设置 convert 参数,或在 restore setname 

 

 

问题 8 :主库归档传不过去,检查 /etc/hosts,tnsnames.ora 等文件均没有问题  

告警日志报错信息: 

Thu Dec 17 14:51:04 2020 

Error 12154 received logging on to the standby 

PING[ARC2]: Heartbeat failed to connect to standby 'std'. Error is 12154. 

Thu Dec 17 14:52:04 2020 

Error 12154 received logging on to the standby 

PING[ARC2]: Heartbeat failed to connect to standby 'std'. Error is 12154. 

 

查询 dest_2 error 

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 

 

解决方法:   可能是由于 tnsnames.ora 文件没有生效( 1/2 任选一个执行) 

重启主库 

重新设置 log_archive_dest_2 参数 

alter system set log_archive_dest_2 = 'service="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<standbynode>)(PORT=< port# >))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=STDBY)))"' ; 

 

问题 9 rac-rac dg 设置了 convert 值,但是创建的文件仍没生成在对应的路径下  

解决方法: 

检查 convert 参数设置是否正确, sid= 实例名优先级大于 sid=* 

查看是否有设置 omf 参数:   db_create_file_dest 

3 db_file_name_convert 参数配置如下,对应的数据文件没有转换到对应的路径下,这是由于, +SSDDG/ +SSDDG/hisdb/datafile/ 转换路径重合导致  

*.db_file_name_convert= 

'+SSDDG/','/backup/oradata/hisdb_dg/', 

'+SSDDG/ hisdb/datafile/','/backup/oradata/hisdb_dg/', 

 

+SSDDG/hisdb/datafile/system.256.932501365 

/backup/oradata/hisdb_dg/ hisdb/datafile/system.256.932501365 

 

 

问题 10 :客户反馈主库很卡,阻塞源头为  “ oracle@sqyy-rac1 (LGWR)    sqyy-rac1   LGWR-LNS wait on channel”  

解决方法: 

查看主库的 dg 参数设置:   log_archive_dest_2     = "service=mhhis LGWR  SYNC affirm   valid_for=(online_logfiles,primary_role) db_unique_name=mhorcl"  

数据库的异常等待是由于主库的 LNS 进程同步传送在线日志信息给 DG 环境引起的,且引起的瓶颈在备库端。 SYNC 表示网络 I/O 将与重做日志的写入同步进行 , 等待网络 i/o 完成收到响应后继续下一个写操作。 AFFIM 表示同步并且发送成功写操作状态到主数据库。 

更改 log_archive_dest_2 参数设置 

alter system set log_archive_dest_2='service=mhhis LGWR ASYNC affirm valid_for=(online_logfiles,primary_role) db_unique_name=mhorcl'; 

相关推荐