OS환경 : Oracle Linux 6.8 (64bit)
DB 환경 : Oracle Database 11.2.0.4 ADG
에러 : Active Data Guard ORA-12514: TNS:listener does not currently know of service requested in connect descriptor, Switchover ERROR
데이터 가드 환경이 아닌 일반 환경에서 발생한 경우 아래 링크로 이동
https://positivemh.tistory.com/427
데이터가드 구성 환경에서 switchover 명령시 발생하는 오류
switchover 테스트(1번 노드)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ dgmgrl sys/oracle DGMGRL> switchover to adg11gsb Performing switchover NOW, please wait... Operation requires a connection to instance "adg11gsb" on database "adg11gsb" Connecting to instance "adg11gsb"... Connected. New primary database "adg11gsb" is opening... Operation requires startup of instance "adg11g" on database "adg11g" Starting instance "adg11g"... Unable to connect to database ORA-12514: TNS:listener does not currently know of service requested in connect descriptor Failed. Warning: You are no longer connected to ORACLE. Please complete the following steps to finish switchover: start up and mount instance "adg11g" of database "adg11g" |
1번 노드가 제대로 올라오지 못함
수동으로 startup mount(1번 노드)
1 2 3 4 5 6 7 8 9 | SQL> startup mount ORACLE instance started. Total System Global Area 1653518336 bytes Fixed Size 2253784 bytes Variable Size 1073744936 bytes Database Buffers 570425344 bytes Redo Buffers 7094272 bytes Database mounted. |
configuration 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $ dgmgrl sys/oracle DGMGRL> show configuration Configuration - adg11g Protection Mode: MaxPerformance Databases: adg11gsb - Primary database adg11g - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS |
2번 노드가 Primary 가 되고 1번 노드가 Standby 가 됨
수동으로 mount 로 올려주면 해결이되지만 매번 수동으로 하기엔 불편함
해결 방법 : DGMGRL에서 StaticConnectIdentifier 파라미터 설정
(switchover 재시도 후 1번 노드 Primary, 2번 노드 Standby 일 때 진행)
StaticConnectIdentifier 파라미터 설정
1 2 3 4 5 | $ dgmgrl sys/oracle DGMGRL> edit database adg11g set property StaticConnectIdentifier = 'adg11g'; Property "staticconnectidentifier" updated DGMGRL> edit database adg11gsb set property StaticConnectIdentifier = 'adg11gsb'; Property "staticconnectidentifier" updated |
다시 switchover 테스트
1 2 3 4 5 6 7 8 9 10 11 | DGMGRL> switchover to adg11gsb Performing switchover NOW, please wait... Operation requires a connection to instance "adg11gsb" on database "adg11gsb" Connecting to instance "adg11gsb"... Connected. New primary database "adg11gsb" is opening... Operation requires startup of instance "adg11g" on database "adg11g" Starting instance "adg11g"... ORACLE instance started. Database mounted. Switchover succeeded, new primary is "adg11gsb" |
정상적으로 완료됨
configuration 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 | DGMGRL> show configuration Configuration - adg11g Protection Mode: MaxPerformance Databases: adg11gsb - Primary database adg11g - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS |
정상적으로 완료됨
원인 : switchover 시 해당 노드의 DB 명을 제대로 찾지 못하는 문제
switchover 시 해당 노드의 DB 명을 제대로 찾지 못하는 문제로 보이지만
왜 이렇게 되는지 정확한 원인은 알수 없음
데이터 가드 환경이 아닌 일반 환경에서 발생한 경우 아래 링크로 이동
https://positivemh.tistory.com/427