之前在 Oracle 12c 关于密码(password)的几个新特性小结曾经记录过12C 密码文件可以放到ASM DG的特性, 最近处理一个案例时就遇到了,简单记录一套修复他人搭建的问题RAC+ DG的过程, 环境Oracle 12cR2 2-nodes RAC+DG。

1, db alert log of primary side

2018-12-25 09:32:18.111000 +08:00

Error 1034 received logging on to the standby

2018-12-25 09:37:18.335000 +08:00

Error 1034 received logging on to the standby

tip:

提示目标实例未启动,后确认备库有一个节点1启动,节点2关闭,理论上Standby 端不应该因部分实例停而影响DG的传输。

2. 确认DG 配置 on primary side

SQL>show parameter log_archive

NAME VALUES

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

log_archive_dest_2 SERVICE=STD_ANBOB2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stdANBOB

oracle@DB01:/home/oracle> tnsping STD_ANBOB2

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 133.96.43.38)(PORT = 1531))) (CONNECT_DATA = (SID = ANBOB2)))

OK (0 msec)

tip:

使用了非默认的1531 port, 但是配置的只是节点2的IP,而且还使用的SID而不是service_name, 后来发现standby side的实例监听中只配置了SERVICE_NAME=SID的服务,无同名服务说明静态监听配置也是不正确的,需要先修复standby side上增加共同的服务名。

3, 修正primary side 传输SERVICE配置

oracle@DB01:/home/oracle> tnsping STD_ANBOB

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 133.96.43.137)(PORT = 1531)) (ADDRESS = (PROTOCOL = TCP)(HOST = 133.96.43.138)(PORT = 1531))) (CONNECT_DATA = (service_name = ANBOB.com)))

OK (0 msec)

SQL> alter system set log_archive_dest_2='SERVICE=STD_ANBOB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stdANBOB';

# Primary side db alert log

Error 1017 received logging on to the standby

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

Check that the primary and standby are using a password file

and remote_login_passwordfile is set to SHARED or EXCLUSIVE,

and that the SYS password is same in the password files.

returning error ORA-16191

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

TT04: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (16191)

TT04: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned

Errors in file /oracle/app/oracle/diag/rdbms/ANBOB/anbob/trace/anbob_tt04_47574.trc:

ORA-16191: Primary log shipping client not logged on standby

Error 16191 for archive log file 5 to 'STD_ANBOB'

Tip:

增加了实例1,使用了服务名,支持STANDBY上的RAC部分实例关闭后的正常传输, 但是主库日志里又出现了ora-1017 ora-16191错误

4, STANDBY side ORA-7445 [kzsrgavs()+995]

# db alert log

2018-12-25 10:48:21.996000 +08:00

Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x7FFD269AF8A7] [PC:0x2897843, kzsrgavs()+995] [flags: 0x0, count: 1]

Errors in file /oracle/app/oracle/diag/rdbms/stdANBOB/ANBOB1/trace/ANBOB1_pr00_36293.trc (incident=64809):

ORA-07445: exception encountered: core dump [kzsrgavs()+995] [SIGSEGV] [ADDR:0x7FFD269AF8A7] [PC:0x2897843] [Address not mapped to object] []

Incident details in: /oracle/app/oracle/diag/rdbms/stdANBOB/ANBOB1/incident/incdir_64809/ANBOB1_pr00_36293_i64809.trc

Use ADRCI or Support Workbench to package the incident.

See Note 411.1 at My Oracle Support for error and packaging details.

Dumping diagnostic data in directory=[cdmp_20181225104822], requested by (instance=1, osid=36293 (PR00)), summary=[incident=64809].

2018-12-25 10:48:51.764000 +08:00

alter database recover managed standby database cancel

2018-12-25 10:48:53.175000 +08:00

Logmerger died, shutting down parallel recovery slaves

2018-12-25 10:49:26.184000 +08:00

CLMN: delete dead process - failed

2018-12-25 10:53:59.078000 +08:00

ORA-1013 signalled during: alter database recover managed standby database cancel...

# ora-7445 trace file

*** 2018-12-25T10:48:22.063388+08:00

dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x3, level=3, mask=0x0)

[TOC00004]

3> ***** SQL Statement (None) *****

Current SQL information unavailable - no cursor.

3< ***** current_sql_statement ***** [TOC00004-END] [TOC00005] 3> ***** Call Stack Trace *****

ksedst()+119 < dbkedDefDump()+1200 < ksedmp()+259 < ssexhd()+3188 <

sslssSynchHdlr()+39 < sslsshandler()+118 < __sighandler() <

kzsrgavs()+995 < krsu_pre11_pwd_conn() < krsu_oci_est_sec_conn()+1594 <

krsu_wupi_log()+446 < krsu_upi_logc()+366 < krsu_connect()+104 <

krsf_send_fal_request()+607 < krsf_get_gap_sequence()+1266 < krr_read_disk()+446 <

krr_read_buffer() < krr_parse_redo() < krr_do_media_recovery()+6603 <

krddmr()+1356 < krd_do_mrp()+1078 < krd_logmerger_driver()+6425 < krp_slave_main() <

ksvrdp_int()+2010 < opirip()+602 < opidrv()+602 < sou2o()+145 <

opimai_real()+202 < ssthrdmain()+417 < main()+262

tips:

Standby 实例具然出现了ora-7445 [kzsrgavs()+995].

KZSRGAVS >>>>> (Kzsr)Gavs – Kernel Security Privileges Roles/Remote Password File ??

KRSU_PRE11_PWD_CONN >>>>>(Krs)U – Kernel Recovery Standby/Dataguard

猜测DG 的db password file不一致,说明当时备库的节点1可能密码文件和主库和备库2节点不一致,这点可以使用md5sum验证文件。于是习惯性的从Primary节点1的$ORACLE_HOME/dbs下, scp过去一份PWD file到standby 下,此时执行alter database recover managed standby database cancel操作可能会hang, 可以shutdown abort重新启动. 再次启动log应用。

# standby side db alert log

Managed Standby Recovery starting Real Time Apply

2018-12-25 11:07:57.610000 +08:00

Parallel Media Recovery started with 80 slaves

Media Recovery Log +ARCHDG/STDANBOB/ARCHIVELOG/2018_12_25/thread_2_seq_1906.301.995795603

Media Recovery Log +ARCHDG/STDANBOB/ARCHIVELOG/2018_12_24/thread_1_seq_5110.280.995721757

Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x7FFF32BC5EC7] [PC:0x2897843, kzsrgavs()+995] [flags: 0x0, count: 1]

Errors in file /oracle/app/oracle/diag/rdbms/stdANBOB/ANBOB1/trace/ANBOB1_arc3_76413.trc (incident=128681):

ORA-07445: exception encountered: core dump [kzsrgavs()+995] [SIGSEGV] [ADDR:0x7FFF32BC5EC7] [PC:0x2897843] [Address not mapped to object] []

Incident details in: /oracle/app/oracle/diag/rdbms/stdANBOB/ANBOB1/incident/incdir_128681/ANBOB1_arc3_76413_i128681.trc

Use ADRCI or Support Workbench to package the incident.

See Note 411.1 at My Oracle Support for error and packaging details.

2018-12-25 11:07:59.047000 +08:00

Dumping diagnostic data in directory=[cdmp_20181225110759], requested by (instance=1, osid=76413 (ARC3)), summary=[incident=128681].

2018-12-25 11:08:00.972000 +08:00

ARCH: Detected ARCH process failure

ARCH: STARTING ARCH PROCESSES

Starting background process ARC3

ARC3 started with pid=167, OS id=29684

ARC3: Archival started

ARCH: STARTING ARCH PROCESSES COMPLETE

Media Recovery of Online Log[Thread=1, Seq=5111]

Recovery of Online Redo Log: Thread 1 Group 52 Seq 5111 Reading mem 0

Mem# 0: +DATADG/STDANBOB/ONLINELOG/group_52.260.995277121

2018-12-25 11:09:01.424000 +08:00

Standby crash recovery failed to bring standby database to a consistent

point because needed redo hasn't arrived yet.

MRP: Wait timeout: thread 1 sequence# 5111

Media Recovery user canceled with status 16016

Managed Standby Recovery not using Real Time Apply

Standby Crash Recovery aborted due to error 10877.

Errors in file /oracle/app/oracle/diag/rdbms/stdANBOB/ANBOB1/trace/ANBOB1_ora_29171.trc:

ORA-10877: error signaled in parallel recovery slave

ORA-10877: error signaled in parallel recovery slave

Recovery interrupted!

Some recovered datafiles maybe left media fuzzy

Media recovery may continue but open resetlogs may fail

Errors in file /oracle/app/oracle/diag/rdbms/stdANBOB/ANBOB1/trace/ANBOB1_pr00_29289.trc:

ORA-16043: Redo apply has been canceled.

ORA-16016: archived log for thread 1 sequence# 5111 unavailable

Completed Standby Crash Recovery.

Tip:

当时还以为redo archived log sequence# 5111有问题,手动传输应用一下。

5. 手动传输GAP ARCHIVED LOG file

RMAN> backup archivelog sequence between 5111 and 5122;

# scp backuppiece file to standby side

RMAN> catalog backuppiece '/home/oracle/bftllg3h_1_1';

RMAN> restore archivelog sequence between 5111 and 5122;

tip:

Standby 重启应用发现可以往下继续应用,但是很快把手动传输的日志应用完后,又ORA-7445挂起了, 此时判断还应该是密码文件问题。 难道密码文件不对,看来是忽略了12C 的password file in ASM的特性。

6, password file in ASM

oracle@DB01:/home/oracle> srvctl config database -d ANBOB

Database unique name: ANBOB

Database name: ANBOB

Oracle home: /oracle/app/oracle/product/12.2.0/db_1

Oracle user: oracle

Spfile: +DATADG/ANBOB/PARAMETERFILE/spfile.281.992037707

Password file: +DATADG/ANBOB/PASSWORD/pwdANBOB.269.992036729

Domain: com

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Server pools:

Disk Groups: DATADG,ARCHDG

Mount point paths:

Services:

Type: RAC

Start concurrency:

Stop concurrency:

OSDBA group: dba

OSOPER group:

Database instances: ANBOB1,ANBOB2

...

Note:

Password file记录确认了当前的实例密码文件是在ASM DiskGroup中。如果该行记录值为空表明使用使用之前的本地ORACLE_HOME/dbs下的目录文件,现在解决进来就简单了。

grid@DB01:/home/grid>asmcmd

ASMCMD> cp +DATADG/ANBOB/PASSWORD/pwdANBOB.269.992036729 /tmp/orapwd.file

copying +DATADG/ANBOB/PASSWORD/pwdANBOB.269.992036729 -> /tmp/orapwd.file

grid@DB01:/home/grid>ls -l /tmp/orapwd.file

-rw-r----- 1 grid oinstall 3584 Dec 25 14:15 /tmp/orapwd.file

# scp the orapwd.file to standby instance both.

7. REGISTER Standby DB in CRS

oracle@qdord01:/home/oracle> srvctl add database -db stdANBOB -oraclehome $ORACLE_HOME -spfile +DATADG/STDANBOB/PARAMETERFILE/spfile.435.995277297 -role PHYSICAL_STANDBY -startoption MOUNT -dbtype RAC -dbname ANBOB -diskgroup "datadg,archdg"

oracle@qdord01:/home/oracle> srvctl add instance -db stdANBOB -instance ANBOB1 -node qdord01

oracle@qdord01:/home/oracle> srvctl add instance -db stdANBOB -instance ANBOB2 -node qdord02

grid@qdord01:/home/grid> srvctl start instance -d stdANBOB -n qdord01

grid@qdord01:/home/grid> srvctl start instance -d stdANBOB -n qdord02

Conclusion:

12C中为了在不同实例间统一的密码管理, 支持把DB密码(ASM password same)存储到ASM DISKGROUP中,这样在维护DG环境时,当同步密码文件时就要先确认一下密码的位置, 同样DG端也可以把密码存储到ASM中,然后使用srvctl modify database修改pwd路径. 这个案例通过在标准化DG配置中因密码不一致产生了各种错误,后重新同步密码文件解决,提醒有相同问题的同学可以少走弯路。

— enjoy —

打赏

微信扫一扫,打赏作者吧~

oracle12c密码文件如何拷贝,Oracle12c R2注意事项:DB password file in ASM (DataGuard环境重建PWD)...相关推荐

  1. oracle12c密码文件,【转】Oracle 12c 关于密码文件(password)的几个新特性

    oracle数据库软件是获得过最高级别的安全认证,完全超越其它所有数据库软件,并且在可维护性上基于大量的实践需要稳步前行,这里简单列举几个12c 关于password几个新特性. 1. 新的passw ...

  2. oracle12c口令文件,学习笔记:Oracle 12C ASM 新特性 共享密码文件

    天萃荷净 测试试验ORACLE 12C ASM 新特性 共享密码文件的详细过程 在ORACLE 12C之前大家都知道密码文件是存放在?/dbs或者?/database中,如果要修改修改sysdba权限 ...

  3. Java 文件的拷贝

    一:上码 package com.wyj.two;import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...

  4. oracle asm密码是什么,ORACLE 12C ASM 新特性:共享密码文件

    在ORACLE 12C之前大家都知道密码文件是存放在?/dbs或者?/database中,如果要修改修改sysdba权限的用户密码时候,会去修改密码文件,而在rac数据库的sys密码文件是存在各个节点 ...

  5. Linux SSH免密码登录与拷贝文件(SCP)- 亲测

    参考网址1:http://blog.csdn.net/xyang81/article/details/51477925 参考网址2:http://blog.itpub.net/29500582/vie ...

  6. Linux SSH免密码登录与拷贝文件(SCP)

    原文链接:http://blog.csdn.net/xyang81/article/details/51477925 在工作当中经常会登录远程服务器安装软件.部署应用或者拷贝文件到远程服务器上,都会提 ...

  7. Linux命令scp用于远程文件的拷贝(上传和下载)

    3_Linux命令scp用于远程文件的拷贝(上传和下载) 文章目录 1.SCP简介 2.SCP使用 2.1.命令格式: 2.2.命令功能: 2.3.命令参数: 3.使用实例: 如何将本地文件通过终端上 ...

  8. linux服务器拷贝目录文件夹,linux两台服务器之间文件/文件夹拷贝

    linux两台服务器之间文件/文件夹拷贝 跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹--------------------------------- ...

  9. 文件服务器拷贝资料需要解锁,如何加密U盘文件防止复制,怎样实现U盘文件防拷贝?...

    现在我们经常会用U盘存储一些重要的文件,有时候不想随意让别人查看.同时,U盘也非常容易丢失,也需要防止U盘丢失后文件泄密,如何实现呢?可以通过以下两种方法: 方法一.通过Windows BitLock ...

最新文章

  1. 系统学英语 —语法— 句子成分
  2. 利用SAP内置功能生成Search Help
  3. Linux下如何高效删除一个几十G的文本文件的最后一行或几行
  4. ubuntu下 mysql安装以后无法登陆的的解决方法((ERROR 1698 (28000): Access denied for user 'root'@'localhost'))...
  5. PHP 文件加密Zend Guard Loader 学习和使用(如何安装ioncube扩展对PHP代码加密)
  6. 180C. Letter
  7. 设计模式C++实现 ——观察者模式
  8. mysql数据库中数据类型的长度
  9. 容器编排技术 -- Kubernetes StatefulSet基本使用
  10. flink读取不到文件_flink批处理从0到1
  11. 【精品毕设】电力电子仿真——母线继电保护动作行为仿真分析系统
  12. 【读书笔记】《CSS新世界》—— 第一章 概述
  13. sap委外退料流程图_生产部领退料流程图
  14. Unexpected token o in JSON at position 1 at JSON.parse (anonym)
  15. AS打包V1和V2签名,使用乐固加固安装包签名有误 ShieldCode = 40186
  16. 千图成像(用图片拼图片)的java教程
  17. memory compression关闭,亲测有效
  18. ~~~实用工具~~~
  19. Android 开源项目及网址
  20. 数据库的基本常用命令

热门文章

  1. 官方图鉴解读丨透视小红书内容营销下半场
  2. PyCharm 社区版首次上传代码到GitHub和新增代码上传到GitHub(超详细)
  3. 如何解决访问github时出错
  4. FPS游戏服务器设计的问题
  5. 5注21选5升序彩票
  6. ssh 无密登录(两行命令即可)
  7. docker部署jar包的几种方式
  8. 可行性研究--《软件工程导论》
  9. 部署您的第一个服务器端应用程序的 SwiftUI 之旅Vapor
  10. Juniper BGP选路原则