프린트 하기

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



참조 : https://stackoverflow.com/questions/26031123/ora-12514-tnslistener-does-not-currently-know-of-service-requested-in-connect