프린트 하기

OS환경 : Oracle Linux 6.8 (64bit)


DB 환경 : Oracle Database 11.2.0.4


방법 : Oracle 11g R2 ADG 데이터가드 브로커 파라미터 변경 방법

Oracle 11g R2 데이터가드를 구성한 상태에서 파라미터를 변경할 경우 

데이터가드 브로커에서도 값을 같이 변경해줘야함 

그렇지 않으면 dgmgrl의 show configuration 에서 값이 다르다는 오류 메세지가 발생함



아래 방법으로 구성한 후 테스트함

*Oracle Linux 6.8에 Oracle 11g R2 ADG 설치 가이드 https://positivemh.tistory.com/674



1번 노드(Primary) hostname : adg1, db_name : adg11g, db_unique_name : adg11g

2번 노드(Standby) hostname : adg2, db_name : adg11g, db_unique_name : adg11gsb



log_archive_max_processes 파라미터의 값을 변경하는 방법을 설명함



현재 oracle 서버 파라미터 값 확인(spfile)

1
2
3
4
5
6
7
8
9
10
11
12
13
1번 노드
SQL> show parameter log_archive_max_processes
 
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes         integer     4
 
2번 노드
SQL> show parameter log_archive_max_processes
 
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes         integer     4

4로 설정되어 있음



현재 데이터가드 브로커 파라미터 값 확인

1
2
3
4
5
6
$ dgmgrl sys/oracle
DGMGRL> show database 'adg11g' LogArchiveMaxProcesses
  LogArchiveMaxProcesses = '4'
 
DGMGRL> show database 'adg11gsb' LogArchiveMaxProcesses                      
  LogArchiveMaxProcesses = '4'

4로 설정되어 있음



데이터가드 브로커 현재 configuration 상태 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
DGMGRL> show configuration
 
Configuration - adg11g
 
  Protection Mode: MaxPerformance
  Databases:
    adg11g   - Primary database
    adg11gsb - Physical standby database
 
Fast-Start Failover: DISABLED
 
Configuration Status:
SUCCESS

정상



현재 프로세스 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1번 노드
SQL> set lines 200 pages 1000
select client_process,process,status,sequence# from v$managed_standby;
 
CLIENT_P PROCESS   STATUS     SEQUENCE#
-------- --------- ------------ ----------
ARCH     ARCH       CONNECTED         0
ARCH     ARCH       CLOSING        13
ARCH     ARCH       CLOSING        14
ARCH     ARCH       CLOSING        14
LNS     LNS       WRITING        16
 
2번 노드
SQL> set lines 200 pages 1000
SQL> select client_process,process,status,sequence# from v$managed_standby
 
CLIENT_P PROCESS   STATUS     SEQUENCE#
-------- --------- ------------ ----------
ARCH     ARCH       CLOSING        14
ARCH     ARCH       CLOSING        15
ARCH     ARCH       CONNECTED         0
ARCH     ARCH       CLOSING        13
ARCH     RFS       IDLE          0
UNKNOWN  RFS       IDLE          0
LGWR     RFS       IDLE         16
N/A     MRP0       APPLYING_LOG     16
 
8 rows selected.

1번, 2번 노드 모두 ARCH 프로세스가 4개씩 존재함(PROCESS 컬럼)



파라미터 변경(spfile)

1
2
3
4
5
6
7
8
9
1번 노드
SQL> alter system set log_archive_max_processes=5 scope=spfile;
 
System altered.
 
2번 노드
SQL> alter system set log_archive_max_processes=5 scope=spfile;
 
System altered.



DB 재기동

1
2
3
4
5
6
7
1번 노드
SQL> shutdown immediate
SQL> startup
 
2번 노드
SQL> shutdown immediate
SQL> startup



파라미터 값 확인(spfile)

1
2
3
4
5
6
7
8
9
10
11
12
13
1번 노드
SQL> show parameter log_archive_max_processes
 
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes         integer     5
 
2번 노드
SQL> show parameter log_archive_max_processes
 
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes         integer     5

정상적으로 변경됨



데이터가드 브로커 현재 configuration 상태 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ dgmgrl sys/oracle
DGMGRL> show configuration
 
Configuration - adg11g
 
  Protection Mode: MaxPerformance
  Databases:
    adg11g   - Primary database
      Warning: ORA-16792: configurable property value is inconsistent with database setting
 
    adg11gsb - Physical standby database
      Warning: ORA-16792: configurable property value is inconsistent with database setting
 
Fast-Start Failover: DISABLED
 
Configuration Status:
WARNING

에러 메세지 발생



에러 메세지 상세 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1번 노드
DGMGRL> show instance verbose 'adg11g'
 
Instance 'adg11g' of database 'adg11g'
 
  Host Name: adg1
  PFILE:     
  Properties:
    SidName                         = 'adg11g'
    StaticConnectIdentifier         = 'adg11g'
    StandbyArchiveLocation          = '/app/oracle/arch/adg11g'
    AlternateLocation               = ''
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = '%t_%s_%r.arc'
    TopWaitEvents                   = '(monitor)'
 
  Instance Warning(s):
    ORA-16714: the value of property LogArchiveMaxProcesses is inconsistent with the database setting
 
Instance Status:
WARNING
 
2번 노드
DGMGRL> show instance verbose 'adg11gsb'
 
Instance 'adg11gsb' of database 'adg11gsb'
 
  Host Name: adg2
  PFILE:     
  Properties:
    SidName                         = 'adg11gsb'
    StaticConnectIdentifier         = 'adg11gsb'
    StandbyArchiveLocation          = '/app/oracle/arch/adg11gsb'
    AlternateLocation               = ''
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = '%t_%s_%r.arc'
    TopWaitEvents                   = '(monitor)'
 
  Instance Warning(s):
    ORA-16714: the value of property LogArchiveMaxProcesses is inconsistent with the database setting
 
Instance Status:
WARNING

LogArchiveMaxProcesses 파라미터가 일관성이 없다고 나옴(inconsistent)



일관성없는 파라미터 조회

1
2
3
4
5
6
7
8
9
10
$ dgmgrl sys/oracle
DGMGRL> show database 'adg11g' InconsistentProperties
INCONSISTENT PROPERTIES
   INSTANCE_NAME        PROPERTY_NAME         MEMORY_VALUE         SPFILE_VALUE         BROKER_VALUE 
          adg11g LogArchiveMaxProcesses                    5                    5                    4 
 
DGMGRL> show database 'adg11gsb' InconsistentProperties
INCONSISTENT PROPERTIES
   INSTANCE_NAME        PROPERTY_NAME         MEMORY_VALUE         SPFILE_VALUE         BROKER_VALUE 
        adg11gsb LogArchiveMaxProcesses                    5                    5                    4 

각각 MEMORY_VALUE, SPFILE_VALUE, BROKER_VALUE가 있는데

MEMORY_VALUE, SPFILE_VALUE는 5로 변경되었지만 BROKER_VALUE는 여전히 4임



브로커 파라미터 LogArchiveMaxProcesses 값을 5로 변경

1
2
3
4
5
6
$ dgmgrl sys/oracle
DGMGRL> edit database 'adg11g' set property LogArchiveMaxProcesses=5;
Property "logarchivemaxprocesses" updated
 
DGMGRL> edit database 'adg11gsb' set property LogArchiveMaxProcesses=5;
Property "logarchivemaxprocesses" updated



변경된 값 조회

1
2
3
4
5
6
$ dgmgrl sys/oracle
DGMGRL> show database 'adg11g' LogArchiveMaxProcesses
  LogArchiveMaxProcesses = '5'
 
DGMGRL> show database 'adg11gsb' LogArchiveMaxProcesses
  LogArchiveMaxProcesses = '5'

5로 변경됨



일관성없는 파라미터 조회

1
2
3
4
5
6
7
8
9
$ dgmgrl sys/oracle
DGMGRL> show database 'adg11g' InconsistentProperties
INCONSISTENT PROPERTIES
   INSTANCE_NAME        PROPERTY_NAME         MEMORY_VALUE         SPFILE_VALUE         BROKER_VALUE 
 
DGMGRL> show database 'adg11gsb' InconsistentProperties
INCONSISTENT PROPERTIES
   INSTANCE_NAME        PROPERTY_NAME         MEMORY_VALUE         SPFILE_VALUE         BROKER_VALUE 
 

아무런 내용도 조회되지 않음(정상 상태)



데이터가드 브로커 현재 configuration 상태 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
DGMGRL> show configuration
 
Configuration - adg11g
 
  Protection Mode: MaxPerformance
  Databases:
    adg11g   - Primary database
    adg11gsb - Physical standby database
 
Fast-Start Failover: DISABLED
 
Configuration Status:
SUCCESS

정상 상태로 변경됨



참조 : 

https://docs.oracle.com/cd/E11882_01/server.112/e40771/dgmgrl.htm