IBM Cloud Docs
Red Hat Enterprise Linux 고가용성 애드온 클러스터에서 SAP HANA 다중 대상 시스템 복제 구성하기

Red Hat Enterprise Linux 고가용성 애드온 클러스터에서 SAP HANA 다중 대상 시스템 복제 구성하기

다음 정보에서는 다중 대상 복제 시나리오에서 SAP HANA 시스템 복제를 관리하기 위한 Red Hat Enterprise Linux (RHEL) 고가용성 애드온 클러스터 구성에 대해 설명합니다. 클러스터는 가상 서버 인스턴스를 IBM® Power® Virtual Server 의 가상 서버 인스턴스를 클러스터 노드로 사용합니다.

SAP HANA 다중 대상 시스템 복제 토폴로지에 여러 시스템을 연결하여 더 높은 수준의 가용성을 달성할 수 있습니다. 세 번째 SAP HANA 인스턴스는 다른 워크스페이스의 IBM Power Virtual Server 에 있는 가상 서버 인스턴스에서 실행됩니다. Red Hat Enterprise Linux 8(RHEL) HA 추가 기능의 SAP HANA 리소스 에이전트를 사용하려면 세 번째 SAP HANA 인스턴스를 수동으로 관리해야 하며 클러스터 외부의 가상 서버 인스턴스에 설치해야 합니다.

다중 대상 시스템 복제 시나리오에서, 하나의 보조 SAP HANA 시스템은 클러스터의 가상 서버 인스턴스에서 실행되고 다른 보조 HANA 시스템은 DR(재해 복구) 사이트에 배포된 가상 서버 인스턴스에서 실행됩니다. DR 사이트는 다른 지리적 위치 또는 영역의 다른 IBM Power Virtual Server 작업 공간에 구현됩니다. SAP HANA 시스템 복제 작업 모드는 모든 멀티타겟 복제 수준에서 동일해야 합니다.

DR 사이트의 보조 시스템 인계는 수동으로 트리거해야 합니다.

이 정보는 Power Virtual Server 에서 SAP HANA 의 고가용성 배포를 계획 중인 아키텍트 및 전문가를 위한 것입니다.

시작하기 전에

SAP 애플리케이션을 위한 고가용성 구현하기(IBM Power Virtual Server 참조)에 나와 있는 일반 요구 사항, 제품 설명서, 지원 문서 및 SAP 참고 사항을 검토하세요.

전제조건

멀티 타겟 시나리오 설정

다중 대상 시나리오는 Red Hat Enterprise Linux 고가용성 애드온 클러스터에서 SAP HANA 스케일업 시스템 복제 구성에 설명된 설정의 확장입니다. 다음 단계를 계속하기 전에 시스템 복제 클러스터에 대한 설정을 완료했는지 확인하세요.

클러스터 작업을 단순화하기 위해 SAPHana 리소스의 AUTOMATED_REGISTER 클러스터 속성을 true 로 설정할 수 있습니다. AUTOMATED_REGISTER=true 을 사용하면 장애가 발생한 노드가 클러스터에 다시 나타난 후 클러스터가 이전 기본 노드를 새 보조 노드로 자동 등록합니다.

클러스터 노드에서 다음 명령을 실행하여 리소스의 AUTOMATED_REGISTER 클러스터 속성을 확인합니다.

pcs resource config SAPHana_${SID}_${INSTNO}

샘플 출력:

# pcs resource config SAPHana_${SID}_${INSTNO}
 Resource: SAPHana_HDB_00 (class=ocf provider=heartbeat type=SAPHana)
  Attributes: AUTOMATED_REGISTER=true DUPLICATE_PRIMARY_TIMEOUT=900 InstanceNumber=00 PREFER_SITE_TAKEOVER=True SID=HDB
  Operations: demote interval=0s timeout=3600 (SAPHana_HDB_00-demote-interval-0s)
              methods interval=0s timeout=5 (SAPHana_HDB_00-methods-interval-0s)
              monitor interval=121 role=Slave timeout=700 (SAPHana_HDB_00-monitor-interval-121)
              monitor interval=119 role=Master timeout=700 (SAPHana_HDB_00-monitor-interval-119)
              promote interval=0s timeout=3600 (SAPHana_HDB_00-promote-interval-0s)
              reload interval=0s timeout=5 (SAPHana_HDB_00-reload-interval-0s)
              start interval=0s timeout=3600 (SAPHana_HDB_00-start-interval-0s)
              stop interval=0s timeout=3600 (SAPHana_HDB_00-stop-interval-0s)

AUTOMATED_REGISTER 클러스터 속성이 현재 false 으로 설정되어 있는 경우 다음 명령을 사용하여 자동 등록을 사용하도록 설정합니다.

pcs resource update SAPHana_${SID}_${INSTNO} AUTOMATED_REGISTER=true

업무 공간 간 네트워크 연결 제공

  1. 워크스페이스 만들기의 정보를 사용하여 다른 지리적 위치 또는 지역에 다른 워크스페이스를 만들 수 있습니다.

  2. 서브넷을 만들고 IP 범위가 클러스터의 가상 서버 인스턴스를 호스팅하는 작업 공간의 서브넷과 겹치지 않는지 확인합니다. 자세한 내용은 비공개 네트워크 서브넷 만들기를 참조하세요.

  3. 두 워크스페이스에서 IBM Cloud® 연결을 설정하고 활성화 IBM Transit Gateway. 자세한 정보는 Power Virtual Server 클라우드 연결 작성을 참조하십시오.

  4. IBM Cloud Transit Gateway 을 배포하여 두 개의 IBM Power Virtual Server 워크스페이스를 상호 연결합니다.

    IBM Cloud Transit Gateway 는 IBM Power Virtual Server, IBM Cloud classic 및 가상 사설 클라우드(VPC) 인프라를 상호 연결하고 데이터를 IBM Cloud 네트워크 내에 보관합니다. 계획 및 배포에 대한 자세한 내용은 IBM Cloud Transit Gateway, IBM Cloud Transit Gateway 계획주문 IBM Cloud Transit Gateway 을 참조하세요.

  5. 트랜짓 게이트웨이에 연결을 추가하여 IBM Power Virtual Server 사이의 네트워크 연결을 설정하려면 Transit Gateway 페이지를 엽니다.

  6. 환승 게이트웨이의 이름을 선택합니다.

  7. 연결 추가를 클릭하십시오.

  8. 네트워크 연결로 파워 시스템 가상 서버k를 선택하고 작업 공간의 위치를 선택합니다.

  9. 추가를 클릭하여 연결을 작성하십시오.

환경 변수 준비하기 NODE3

설정을 단순화하려면 NODE3 에서 사용자 ID root 에 대해 다음 환경 변수를 준비합니다. 이러한 환경 변수는 나머지 지침의 후속 명령에 사용됩니다.

NODE3 에서 다음 환경 변수를 사용하여 파일을 만듭니다. 그런 다음 SAP HANA 시스템의 구성에 따라 변수를 조정합니다.

export SID=<SID>            # SAP HANA System ID (uppercase)
export sid=<sid>            # SAP HANA System ID (lowercase)
export INSTNO=<INSTNO>      # SAP HANA Instance Number

export DC3=<Site3>          # HANA System Replication Site Name 3

export NODE1=<Hostname 1>   # Hostname of virtual server instance 1 (production primary)
export NODE2=<Hostname 2>   # Hostname of virtual server instance 2 (production secondary)
export NODE3=<Hostname 3>   # Hostname of virtual server instance 3 (production tertiary)

이 문서의 나머지 부분에서 샘플 명령을 사용하려면 이 파일을 소싱해야 합니다.

예를 들어 sap_dr_site.sh 라는 이름의 파일을 만든 경우 NODE3 에서 다음 명령을 실행하여 환경 변수를 설정합니다.

source sap_dr_site.sh

새 터미널 세션을 시작할 때마다 이전 source 명령을 실행해야 합니다. 또는 클러스터 구성 기간 동안 환경 변수 파일을 /etc/profile.d 디렉터리로 옮길 수 있습니다. 이 예제에서는 서버에 로그인할 때마다 파일이 자동으로 소싱됩니다.

가상 서버 인스턴스 간의 네트워크 연결 확인

두 클러스터 노드( NODE1 및 NODE2 )와 NODE3 사이의 네트워크 연결을 확인합니다.

  1. NODE1 와 NODE2, ping NODE3 에 모두 로그인합니다.

    ping -c 3 ${NODE3}
    

    샘플 출력:

    # ping -c 3 cl-hdb-3
    PING cl-hdb-3 (10.40.20.70) 56(84) bytes of data.
    64 bytes from 10.40.20.70 (10.40.20.70): icmp_seq=1 ttl=46 time=78.2 ms
    64 bytes from 10.40.20.70 (10.40.20.70): icmp_seq=2 ttl=46 time=78.3 ms
    64 bytes from 10.40.20.70 (10.40.20.70): icmp_seq=3 ttl=46 time=78.2 ms
    
    --- cl-hdb-3 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 78.197/78.233/78.264/0.027 ms
    
  2. NODE3 및 ping NODE1 에 로그인합니다.

    ping -c 3 ${NODE1}
    

    샘플 출력:

    # ping -c 3 cl-hdb-1
    PING cl-hdb-1 (10.40.10.60) 56(84) bytes of data.
    64 bytes from cl-hdb-1 (10.40.10.60): icmp_seq=1 ttl=46 time=78.3 ms
    64 bytes from cl-hdb-1 (10.40.10.60): icmp_seq=2 ttl=46 time=78.2 ms
    64 bytes from cl-hdb-1 (10.40.10.60): icmp_seq=3 ttl=46 time=78.3 ms
    
    --- cl-hdb-1 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2002ms
    rtt min/avg/max/mdev = 78.245/78.268/78.287/0.229 ms
    
  3. NODE3 및 ping NODE2 에 로그인합니다.

    ping -c 3 ${NODE2}
    

    샘플 출력:

    # ping -c 3 cl-hdb-2
    PING cl-hdb-2 (10.40.10.194) 56(84) bytes of data.
    64 bytes from cl-hdb-2 (10.40.10.194): icmp_seq=1 ttl=46 time=77.6 ms
    64 bytes from cl-hdb-2 (10.40.10.194): icmp_seq=2 ttl=46 time=79.1 ms
    64 bytes from cl-hdb-2 (10.40.10.194): icmp_seq=3 ttl=46 time=77.7 ms
    
    --- cl-hdb-2 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 77.649/78.129/79.071/0.703 ms
    

PKI SSFS 저장소 인증서 파일을 다음 주소로 복사합니다 NODE3

복제 프로세스를 위한 SAP HANA 2.0 데이터 및 로그 전송 채널은 시스템 PKI SSFS 스토리지 인증서 파일을 사용하여 인증해야 합니다.

시스템 PKI SSFS 저장소 인증서 파일은 /usr/sap/${SID}/SYS/global/security/rsecssfs/ 에 하위 디렉터리 datakey 에 저장됩니다.

NODE3 에서 다음 명령을 실행하여 NODE1 에서 SSFS_${SID}.DATSSFS_${SID}.KEY 파일을 복사합니다.

scp ${NODE1}:/usr/sap/${SID}/SYS/global/security/rsecssfs/data/SSFS_${SID}.DAT /usr/sap/${SID}/SYS/global/security/rsecssfs/data/SSFS_${SID}.DAT
scp ${NODE1}:/usr/sap/${SID}/SYS/global/security/rsecssfs/key/SSFS_${SID}.KEY /usr/sap/${SID}/SYS/global/security/rsecssfs/key/SSFS_${SID}.KEY

NODE3 에 복사된 PKI SSFS 저장소 인증서는 SAP HANA 시스템이 시작되는 동안 활성화됩니다. 따라서 NODE3 의 SAP HANA 시스템이 중지되면 파일을 복사하는 것이 좋습니다.

보조 SAP HANA DR 시스템 복제 시스템으로 NODE3 등록하기

SAP HANA 시스템을 보조 DR 시스템 복제 인스턴스로 등록합니다.

  1. NODE3 에서 SAP HANA 시스템을 중지합니다.

    sudo -i -u ${sid}adm -- HDB stop
    
  2. NODE3 에서 NODE1 에 보조 SAP HANA 인스턴스를 등록합니다.

    sudo -i -u ${sid}adm -- \
        hdbnsutil -sr_register \
          --name=${DC3} \
          --remoteHost=${NODE1} \
          --remoteInstance=${INSTNO} \
          --replicationMode=async \
          --operationMode=logreplay \
          --online
    
  3. NODE3 에서 보조 SAP HANA 인스턴스를 시작합니다.

    sudo -i -u ${sid}adm -- HDB start
    

SAP HANA 시스템 복제 상태 확인

다음 도구를 사용하여 시스템 복제 상태를 모니터링할 수 있습니다.

  • SAP HANA 조종석
  • SAP HANA 스튜디오
  • hdbnsutil 명령행 도구
  • systemReplicationStatus.py Python 스크립트
  • SQL 조회

일부 상태 정보를 얻으려면 데이터베이스 연결이 필요하므로 systemReplicationStatus.py 스크립트의 전체 출력은 기본 시스템에서만 사용할 수 있습니다.

NODE1 에서 systemReplicationStatus.py Python 스크립트를 사용하여 시스템 복제 상태를 확인합니다.

sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py

샘플 출력:

# sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
|Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
|         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
|-------- |-------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
|SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-3  |    30001 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-3  |    30007 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-3  |    30003 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-2  |    30001 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
|HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-2  |    30007 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
|HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-2  |    30003 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |

status system replication site "3": ACTIVE
status system replication site "2": ACTIVE
overall system replication status: ACTIVE

Local System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

mode: PRIMARY
site id: 1
site name: SiteA

hdbnsutil 명령으로 시스템 복제 상태의 다른 보기를 사용할 수 있습니다.

모든 노드에서 다음 명령을 실행하여 시스템 복제 상태를 확인합니다.

sudo -i -u ${sid}adm -- hdbnsutil -sr_state

샘플 출력 NODE1:

# sudo -i -u hdbadm -- hdbnsutil -sr_state

System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~

online: true

mode: primary
operation mode: primary
site id: 1
site name: SiteA

is source system: true
is secondary/consumer system: false
has secondaries/consumers attached: true
is a takeover active: false
is primary suspended: false

Host Mappings:
~~~~~~~~~~~~~~

cl-hdb-1 -> [SiteC] cl-hdb-3
cl-hdb-1 -> [SiteB] cl-hdb-2
cl-hdb-1 -> [SiteA] cl-hdb-1


Site Mappings:
~~~~~~~~~~~~~~
SiteA (primary/primary)
    |---SiteC (async/logreplay)
    |---SiteB (syncmem/logreplay)

Tier of SiteA: 1
Tier of SiteC: 2
Tier of SiteB: 2

Replication mode of SiteA: primary
Replication mode of SiteC: async
Replication mode of SiteB: syncmem

Operation mode of SiteA: primary
Operation mode of SiteC: logreplay
Operation mode of SiteB: logreplay

Mapping: SiteA -> SiteC
Mapping: SiteA -> SiteB

Hint based routing site:
done.

샘플 출력 NODE2:

# sudo -i -u hdbadm -- hdbnsutil -sr_state

System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~

online: true

mode: syncmem
operation mode: logreplay
site id: 2
site name: SiteB

is source system: true
is secondary/consumer system: true
has secondaries/consumers attached: false
is a takeover active: false
is primary suspended: false
is timetravel enabled: false
replay mode: auto
active primary site: 1

primary masters: cl-hdb-1

Host Mappings:
~~~~~~~~~~~~~~

cl-hdb-2 -> [SiteC] cl-hdb-3
cl-hdb-2 -> [SiteB] cl-hdb-2
cl-hdb-2 -> [SiteA] cl-hdb-1


Site Mappings:
~~~~~~~~~~~~~~
SiteA (primary/primary)
    |---SiteC (async/logreplay)
    |---SiteB (syncmem/logreplay)

Tier of SiteA: 1
Tier of SiteC: 2
Tier of SiteB: 2

Replication mode of SiteA: primary
Replication mode of SiteC: async
Replication mode of SiteB: syncmem

Operation mode of SiteA: primary
Operation mode of SiteC: logreplay
Operation mode of SiteB: logreplay

Mapping: SiteA -> SiteC
Mapping: SiteA -> SiteB

Hint based routing site:
done.

샘플 출력 NODE3:

# sudo -i -u hdbadm -- hdbnsutil -sr_state

System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~

online: true

mode: async
operation mode: logreplay
site id: 3
site name: SiteC

is source system: false
is secondary/consumer system: true
has secondaries/consumers attached: false
is a takeover active: false
is primary suspended: false
is timetravel enabled: false
replay mode: auto
active primary site: 1

primary masters: cl-hdb-1

Host Mappings:
~~~~~~~~~~~~~~

cl-hdb-3 -> [SiteC] cl-hdb-3
cl-hdb-3 -> [SiteB] cl-hdb-2
cl-hdb-3 -> [SiteA] cl-hdb-1


Site Mappings:
~~~~~~~~~~~~~~
SiteA (primary/primary)
    |---SiteC (async/logreplay)
    |---SiteB (syncmem/logreplay)

Tier of SiteA: 1
Tier of SiteC: 2
Tier of SiteB: 2

Replication mode of SiteA: primary
Replication mode of SiteC: async
Replication mode of SiteB: syncmem

Operation mode of SiteA: primary
Operation mode of SiteC: logreplay
Operation mode of SiteB: logreplay

Mapping: SiteA -> SiteC
Mapping: SiteA -> SiteB

Hint based routing site:
done.
done.

모든 노드에서 다음 명령을 실행하여 복제 모드와 작동 모드를 확인합니다.

sudo -i -u ${sid}adm -- \
    hdbnsutil -sr_state \
        --sapcontrol=1 2>/dev/null | grep -E "site(Operation|Replication)Mode"

샘플 출력:

# sudo -i -u ${sid}adm -- hdbnsutil -sr_state --sapcontrol=1 2>/dev/null | grep -E "site(Operation|Replication)Mode"
siteReplicationMode/SiteA=primary
siteReplicationMode/SiteB=syncmem
siteOperationMode/SiteA=primary
siteOperationMode/SiteB=logreplay

인수인계 후 세컨더리 자동 등록 활성화하기

다중 타겟 복제 시나리오에서 SAP HANA 은 이전에 인수 이전에 등록한 보조 타겟을 자동으로 다시 등록할 수 있습니다. 이 기능을 활성화하려면 global.ini 파일의 [system_replication] 섹션에서 register_secondaries_on_takeover 파라미터를 true 으로 설정합니다. SAP HANA 기본 시스템을 보조 시스템으로 장애 조치한 후 다른 보조 시스템은 자동으로 새 기본 시스템에 다시 등록됩니다.

이 옵션은 모든 잠재적 기본 사이트의 global.ini 파일에 추가해야 합니다.

세 노드 모두에서 다음 명령을 실행하여 매개변수를 변경합니다.

sudo -i -u ${sid}adm -- <<EOT
    python \$DIR_INSTANCE/exe/python_support/setParameter.py \
      -set SYSTEM/global.ini/system_replication/register_secondaries_on_takeover=true
EOT

global.ini 구성 파일에서 [system_replication] 섹션을 확인합니다.

cat /hana/shared/${SID}/global/hdb/custom/config/global.ini

SAP HANA 시스템 복제 클러스터 테스트

클러스터 구성을 철저히 테스트하여 클러스터가 올바르게 작동하는지 확인하는 것이 중요합니다. 다음 정보는 몇 가지 샘플 장애 조치 테스트 시나리오를 제공하지만 테스트 시나리오의 전체 목록은 아닙니다.

예를 들어 각 테스트 사례에 대한 설명에는 다음 정보가 포함됩니다.

  • 테스트되는 구성 요소
  • 테스트에 대한 설명
  • 장애 조치 테스트 전 사전 요구 사항 및 초기 상태
  • 테스트 절차
  • 예상 동작 및 결과
  • 복구 프로시저

Test1- 기본 데이터베이스 인스턴스의 장애 테스트

다음 정보를 사용하여 기본 데이터베이스 인스턴스의 장애를 테스트합니다.

Test1- 설명

NODE1 에서 실행되는 기본 SAP HANA 데이터베이스 인스턴스의 충돌을 시뮬레이션합니다.

Test1- 전제 조건

  • HANA 시스템 복제를 위한 기능적인 2노드 RHEL HA 애드온 클러스터입니다.
  • 두 클러스터 노드 모두 활성 상태입니다.
  • 클러스터는 NODE1 및 NODE2 에서 시작됩니다.
  • 클러스터 리소스 SAPHana_${SID}_${INSTNO}AUTOMATED_REGISTER=true 로 구성됩니다.
  • SAP HANA 시스템 복제 상태를 확인하세요:
    • SAP HANA 멀티타겟 시스템 복제가 활성화되고 동기화됩니다.
    • 기본 SAP HANA 시스템은 NODE1 에서 실행됩니다.
    • 보조 SAP HANA 시스템은 NODE2 에서 실행됩니다.
    • 또 다른 보조 SAP HANA 시스템은 DR 사이트의 NODE3 에서 실행되며 NODE1 에 등록되어 있습니다.

NODE1 에서 현재 시스템 복제 상태를 확인하세요.

sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py

샘플 출력:

# sudo -i -u hdbadm -- HDBSettings.sh systemReplicationStatus.py
|Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
|         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
|-------- |-------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
|SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-3  |    30001 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-3  |    30007 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-3  |    30003 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|SYSTEMDB |cl-hdb-2 |30001 |nameserver   |        1 |      2 |SiteA     |cl-hdb-2  |    30001 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
|HDB      |cl-hdb-2 |30007 |xsengine     |        2 |      2 |SiteA     |cl-hdb-2  |    30007 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
|HDB      |cl-hdb-2 |30003 |indexserver  |        3 |      2 |SiteA     |cl-hdb-2  |    30003 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |

status system replication site "3": ACTIVE
status system replication site "2": ACTIVE
overall system replication status: ACTIVE

Local System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

mode: PRIMARY
site id: 1
site name: SiteA

Test1- 테스트 절차

사용자 ${sid}adm 로 시그킬 신호를 보내 SAP HANA 기본을 크래시합니다.

NODE1 에서 다음 명령을 실행합니다.

sudo -i -u ${sid}adm -- HDB kill-9

Test1- 예상되는 동작

  • NODE1 의 SAP HANA 기본 인스턴스가 충돌합니다.
  • 클러스터는 중지된 기본 리소스를 감지하고 리소스를 undefined 로 표시합니다.
  • 클러스터는 NODE2 에서 보조 시스템( SAP HANA )을 기본 시스템으로 승격합니다.
  • 클러스터는 NODE1 에서 가상 IP 주소를 해제하고 NODE2 에서 기본 IP 주소를 획득합니다.
  • SAP NetWeaver 와 같은 애플리케이션이 SAP HANA 의 테넌트 데이터베이스에 연결되어 있는 경우 애플리케이션은 자동으로 새 기본 데이터베이스에 다시 연결됩니다.
  • DR 사이트의 NODE3 에서 실행되는 보조 HANA 시스템은 NODE2 에서 실행되는 새 기본 시스템에 자동으로 다시 등록됩니다.
  • 클러스터는 NODE2 의 기본 인스턴스가 완전히 활성화될 때까지 기다렸다가 실패한 인스턴스를 NODE1 에 보조 인스턴스로 등록합니다.
  • 클러스터는 NODE1 에서 보조 HANA 인스턴스를 시작합니다.

NODE1 에서 다음 명령을 실행하여 클러스터 상태를 확인합니다.

pcs status --full

샘플 출력:

pcs status --full
Cluster name: HDB_cluster
Cluster Summary:
  * Stack: corosync
  * Current DC: cl-hdb-1 (1) (version 2.0.5-9.el8_4.5-ba59be7122) - partition with quorum
  * Last updated: Mon Oct  9 10:46:59 2023
  * Last change:  Mon Oct  9 10:46:54 2023 by root via crm_attribute on cl-hdb-2
  * 2 nodes configured
  * 6 resource instances configured

Node List:
  * Online: [ cl-hdb-1 (1) cl-hdb-2 (2) ]

Full List of Resources:
  * res_fence_ibm_powervs       (stonith:fence_ibm_powervs):     Started cl-hdb-1
  * vip_HDB_00_primary  (ocf::heartbeat:IPaddr2):        Started cl-hdb-2
  * Clone Set: SAPHanaTopology_HDB_00-clone [SAPHanaTopology_HDB_00]:
    * SAPHanaTopology_HDB_00    (ocf::heartbeat:SAPHanaTopology):        Started cl-hdb-1
    * SAPHanaTopology_HDB_00    (ocf::heartbeat:SAPHanaTopology):        Started cl-hdb-2
  * Clone Set: SAPHana_HDB_00-clone [SAPHana_HDB_00] (promotable):
    * SAPHana_HDB_00    (ocf::heartbeat:SAPHana):        Slave cl-hdb-1
    * SAPHana_HDB_00    (ocf::heartbeat:SAPHana):        Master cl-hdb-2

Node Attributes:
  * Node: cl-hdb-1 (1):
    * hana_hdb_clone_state              : DEMOTED
    * hana_hdb_op_mode                  : logreplay
    * hana_hdb_remoteHost               : cl-hdb-2
    * hana_hdb_roles                    : 4:S:master1:master:worker:master
    * hana_hdb_site                     : SiteA
    * hana_hdb_sra                      : -
    * hana_hdb_srah                     : -
    * hana_hdb_srmode                   : syncmem
    * hana_hdb_sync_state               : SOK
    * hana_hdb_version                  : 2.00.070.00
    * hana_hdb_vhost                    : cl-hdb-1
    * lpa_hdb_lpt                       : 30
    * master-SAPHana_HDB_00             : 100
  * Node: cl-hdb-2 (2):
    * hana_hdb_clone_state              : PROMOTED
    * hana_hdb_op_mode                  : logreplay
    * hana_hdb_remoteHost               : cl-hdb-1
    * hana_hdb_roles                    : 4:P:master1:master:worker:master
    * hana_hdb_site                     : SiteB
    * hana_hdb_sra                      : -
    * hana_hdb_srah                     : -
    * hana_hdb_srmode                   : syncmem
    * hana_hdb_sync_state               : PRIM
    * hana_hdb_version                  : 2.00.070.00
    * hana_hdb_vhost                    : cl-hdb-2
    * lpa_hdb_lpt                       : 1696841214
    * master-SAPHana_HDB_00             : 150

Migration Summary:
  * Node: cl-hdb-1 (1):
    * SAPHana_HDB_00: migration-threshold=5000 fail-count=1 last-failure='Mon Oct  9 10:39:58 2023'

Failed Resource Actions:
  * SAPHana_HDB_00_monitor_119000 on cl-hdb-1 'master (failed)' (9): call=31, status='complete', exitreason='', last-rc-change='2023-10-09 10:39:58 +02:00', queued=0ms, exec=0ms

Tickets:

PCSD Status:
  cl-hdb-1: Online
  cl-hdb-2: Online

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

NODE2 에서 다음 명령을 실행하여 시스템 복제 상태를 확인합니다.

sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py

샘플 출력:

# sudo -i -u hdbadm -- HDBSettings.sh systemReplicationStatus.py
|Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
|         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
|-------- |-------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
|SYSTEMDB |cl-hdb-2 |30001 |nameserver   |        1 |      2 |SiteB     |cl-hdb-3  |    30001 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|HDB      |cl-hdb-2 |30007 |xsengine     |        2 |      2 |SiteB     |cl-hdb-3  |    30007 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|HDB      |cl-hdb-2 |30003 |indexserver  |        3 |      2 |SiteB     |cl-hdb-3  |    30003 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|SYSTEMDB |cl-hdb-2 |30001 |nameserver   |        1 |      2 |SiteB     |cl-hdb-1  |    30001 |        1 |SiteA     |YES           |SYNCMEM     |ACTIVE      |               |        True |
|HDB      |cl-hdb-2 |30007 |xsengine     |        2 |      2 |SiteB     |cl-hdb-1  |    30007 |        1 |SiteA     |YES           |SYNCMEM     |ACTIVE      |               |        True |
|HDB      |cl-hdb-2 |30003 |indexserver  |        3 |      2 |SiteB     |cl-hdb-1  |    30003 |        1 |SiteA     |YES           |SYNCMEM     |ACTIVE      |               |        True |

status system replication site "3": ACTIVE
status system replication site "1": ACTIVE
overall system replication status: ACTIVE

Local System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

mode: PRIMARY
site id: 2
site name: SiteB

SAP HANA 기본은 NODE2 에서 SiteB 로 실행됩니다. NODE3 의 보조 도메인은 NODE2 에서 실행되는 새 기본 도메인으로 자동 재등록됩니다. 클러스터 리소스 SAPHana_${SID}_${INSTNO}AUTOMATED_REGISTER=true 로 구성되면 클러스터는 SAP HANA 시스템을 NODE1 의 기본 시스템에 대한 보조로 NODE2 에 자동으로 등록합니다.

Test2- SAPHana 리소스를 다른 노드로 수동 이동 테스트하기

다음 정보를 사용하여 SAPHana 리소스를 다른 노드로 수동으로 이동하는 것을 테스트합니다.

Test2- 설명

클러스터 명령을 사용하여 기본 인스턴스를 다른 클러스터 노드로 이동합니다.

Test2- 전제 조건

  • HANA 시스템 복제를 위한 기능적인 2노드 RHEL HA 애드온 클러스터입니다.
  • 두 클러스터 노드 모두 활성 상태입니다.
  • 클러스터는 NODE1 및 NODE2 에서 시작됩니다.
  • 클러스터 리소스 SAPHana_${SID}_${INSTNO}AUTOMATED_REGISTER=true 로 구성됩니다.
  • SAP HANA 시스템 복제 상태를 확인하세요:
    • HANA 시스템 복제가 활성화되고 동기화됩니다.
    • 기본 SAP HANA 시스템은 NODE2 에서 실행됩니다.
    • 보조 SAP HANA 시스템은 NODE1 에서 실행됩니다.
    • 또 다른 보조 SAP HANA 시스템은 DR 사이트의 NODE3 에서 실행되며 NODE2 에 등록되어 있습니다.

Test2- 테스트 절차

  1. 클러스터 노드에서 다음 명령을 실행하여 기본값을 NODE1 으로 다시 이동합니다.

    pcs resource move SAPHana_${SID}_${INSTNO}-clone
    

    샘플 출력:

    # pcs resource move SAPHana_${SID}_${INSTNO}-clone
    Warning: Creating location constraint 'cli-ban-SAPHana_HDB_00-clone-on-cl-hdb-2' with a score of -INFINITY for resource SAPHana_HDB_00-clone on cl-hdb-2.
         This will prevent SAPHana_HDB_00-clone from running on cl-hdb-2 until the constraint is removed
         This will be the case even if cl-hdb-2 is the last node in the cluster
    

    NODE1 에서 기본 인스턴스가 활성화되면 SAP HANA 은 자동으로 NODE3 에 있는 인스턴스를 NODE1 에 보조로 다시 등록합니다.

  2. NODE1 에서 기본값이 올라갈 때까지 기다립니다. 그런 다음 위치 제약 조건을 제거합니다.

    pcs resource clear SAPHana_${SID}_${INSTNO}-clone
    

    샘플 출력:

    # pcs resource clear SAPHana_${SID}_${INSTNO}-clone
    Removing constraint: cli-ban-SAPHana_HDB_00-clone-on-cl-hdb-2
    

    이 명령은 이동 명령으로 생성된 위치 제약 조건을 지웁니다. 클러스터는 NODE2 에서 SAP HANA 시스템을 시작합니다.

  3. SAP HANA 시스템 복제 상태 확인에 설명된 대로 세 노드 모두에서 시스템 복제 상태를 확인합니다.

Test2- 예상되는 동작

  • 클러스터는 리소스를 이동하기 위한 위치 제약 조건을 생성합니다.
  • 클러스터는 NODE1 에서 보조 HANA 시스템으로의 테이크오버를 트리거합니다.
  • SAP NetWeaver 와 같은 애플리케이션이 SAP HANA 의 테넌트 데이터베이스에 연결되어 있는 경우 애플리케이션은 자동으로 새 기본 데이터베이스에 다시 연결됩니다.
  • NODE1 에서 NODE2 을 기본 등록합니다.
  • pcs resource clear 명령을 실행하여 위치 제약 조건을 제거합니다. 이 명령은 NODE2 에서 보조 인스턴스의 시작을 트리거합니다.
  • DR 사이트의 NODE3 에서 실행되는 보조 HANA 시스템은 NODE1 에서 실행되는 새 기본 시스템에 자동으로 다시 등록됩니다.

Test2- 복구 절차

복구 절차는 필요하지 않습니다. 테스트 시퀀스는 초기 SAP HANA 멀티타겟 시스템 복제 토폴로지를 다시 설정했습니다.

Test3- 기본 데이터베이스를 실행하는 노드의 테스트 실패

다음 정보를 사용하여 기본 데이터베이스를 실행하는 노드의 장애를 테스트합니다.

Test3- 설명

기본 HANA 데이터베이스를 실행하는 노드의 충돌을 시뮬레이션합니다.

Test3- 전제 조건

  • HANA 시스템 복제를 위한 기능적인 2노드 RHEL HA 애드온 클러스터입니다.
  • 두 클러스터 노드 모두 활성 상태입니다.
  • 클러스터는 NODE1 및 NODE2 에서 시작됩니다.
  • 클러스터 리소스 SAPHana_${SID}_${INSTNO}AUTOMATED_REGISTER=true 로 구성됩니다.
  • SAP HANA 시스템 복제 상태를 확인하세요:
    • HANA 시스템 복제가 활성화되고 동기화됩니다.
    • 기본 SAP HANA 시스템은 NODE1 에서 실행됩니다.
    • 보조 SAP HANA 시스템은 NODE2 에서 실행됩니다.
    • 또 다른 보조 SAP HANA 시스템은 DR 사이트의 NODE3 에서 실행되며 NODE1 에 등록되어 있습니다.

Test3- 테스트 절차

NODE1 에서 크래시 시스템 요청을 전송하여 기본 페이지를 크래시합니다.

NODE1 에서 다음 명령을 실행합니다.

sync; echo c > /proc/sysrq-trigger

Test3- 예상되는 동작

  • NODE1 충돌이 발생합니다.
  • 클러스터는 실패한 노드를 감지하고 해당 상태를 OFFLINE 로 설정합니다.
  • 이 클러스터는 NODE2 의 보조 HANA 데이터베이스를 새로운 기본 데이터베이스로 승격합니다.
  • 클러스터는 NODE2 에서 가상 IP 주소를 획득합니다.
  • SAP NetWeaver 와 같은 애플리케이션이 SAP HANA 의 테넌트 데이터베이스에 연결되어 있는 경우 애플리케이션은 자동으로 새 기본 데이터베이스에 다시 연결됩니다.
  • DR 사이트의 NODE3 에서 실행되는 보조 SAP HANA 시스템은 자동으로 NODE2 에 재등록됩니다.

NODE2 에서 SAP HANA 시스템 복제 상태를 확인합니다.

sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py

샘플 출력:

# sudo -i -u hdbadm -- HDBSettings.sh systemReplicationStatus.py
|Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
|         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
|-------- |-------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
|SYSTEMDB |cl-hdb-2 |30001 |nameserver   |        1 |      2 |SiteB     |cl-hdb-3  |    30001 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|HDB      |cl-hdb-2 |30007 |xsengine     |        2 |      2 |SiteB     |cl-hdb-3  |    30007 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
|HDB      |cl-hdb-2 |30003 |indexserver  |        3 |      2 |SiteB     |cl-hdb-3  |    30003 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |

status system replication site "3": ACTIVE
overall system replication status: ACTIVE

Local System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

mode: PRIMARY
site id: 2
site name: SiteB

Test3- 복구 절차

  1. IBM Cloud 콘솔에 로그인하고 NODE1 을 시작합니다.

  2. NODE1 에서 다음 명령을 실행하여 클러스터 서비스를 시작합니다.

    pcs cluster start
    
  3. 클러스터 노드에서 다음 명령을 실행하여 클러스터 상태를 확인합니다.

    pcs status --full
    
  4. NODE2 에서 SAP HANA 시스템 복제 상태를 확인합니다.

    sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
    
    

    샘플 출력:

    # sudo -i -u hdbadm -- HDBSettings.sh systemReplicationStatus.py
    |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
    |         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
    |-------- |-------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
    |SYSTEMDB |cl-hdb-2 |30001 |nameserver   |        1 |      2 |SiteB     |cl-hdb-3  |    30001 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
    |HDB      |cl-hdb-2 |30007 |xsengine     |        2 |      2 |SiteB     |cl-hdb-3  |    30007 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
    |HDB      |cl-hdb-2 |30003 |indexserver  |        3 |      2 |SiteB     |cl-hdb-3  |    30003 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
    |SYSTEMDB |cl-hdb-2 |30001 |nameserver   |        1 |      2 |SiteB     |cl-hdb-1  |    30001 |        1 |SiteA     |YES           |SYNCMEM     |ACTIVE      |               |        True |
    |HDB      |cl-hdb-2 |30007 |xsengine     |        2 |      2 |SiteB     |cl-hdb-1  |    30007 |        1 |SiteA     |YES           |SYNCMEM     |ACTIVE      |               |        True |
    |HDB      |cl-hdb-2 |30003 |indexserver  |        3 |      2 |SiteB     |cl-hdb-1  |    30003 |        1 |SiteA     |YES           |SYNCMEM     |ACTIVE      |               |        True |
    
    status system replication site "3": ACTIVE
    status system replication site "1": ACTIVE
    overall system replication status: ACTIVE
    
    Local System Replication State
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    mode: PRIMARY
    site id: 2
    site name: SiteB
    
  5. Test2 의 단계를 실행합니다. SAP Hana 리소스를 다른 노드로 수동으로 이동하여 초기 토폴로지로 되돌리는 것을 테스트합니다.

Test4- DR 사이트에서 실행되는 노드에서 DR 활성화 테스트하기

다음 정보를 사용하여 기본 워크스페이스에서 두 노드의 장애를 테스트하세요.

Test4- 설명

기본 및 보조 SAP HANA 데이터베이스를 실행하는 노드의 충돌을 시뮬레이션합니다.

Test4- 전제 조건

  • HANA 시스템 복제를 위한 기능적인 2노드 RHEL HA 애드온 클러스터입니다.
  • 두 클러스터 노드 모두 활성 상태입니다.
  • 클러스터는 NODE1 및 NODE2 에서 시작됩니다.
  • 클러스터 리소스 SAPHana_${SID}_${INSTNO}AUTOMATED_REGISTER=true 로 구성됩니다.
  • SAP HANA 시스템 복제 상태를 확인하세요:
    • SAP HANA 멀티타겟 시스템 복제가 활성화되고 동기화됩니다.
    • 기본 SAP HANA 시스템은 NODE1 에서 실행됩니다.
    • 보조 SAP HANA 시스템은 NODE2 에서 실행됩니다.
    • 또 다른 보조 SAP HANA 시스템은 DR 사이트의 NODE3 에서 실행되며 NODE1 에 등록되어 있습니다.

Test4- 테스트 절차

두 노드 모두에 크래시 시스템 요청을 전송하여 기본 크래시는 NODE1, 보조 크래시는 NODE2 에서 수행합니다.

  1. NODE1 에서 다음 명령을 실행합니다.

    sync; echo c > /proc/sysrq-trigger
    
  2. NODE2 에서 다음 명령을 실행합니다.

    sync; echo c > /proc/sysrq-trigger
    
  3. NODE3 에서 다음 명령을 실행하여 HANA 시스템을 기본으로 활성화합니다.

    sudo -i -u ${sid}adm -- hdbnsutil -sr_takeover
    

    샘플 출력:

    # sudo -i -u hdbadm -- hdbnsutil -sr_takeover
    done.
    

Test4- 예상되는 동작

  • NODE1 및 NODE2 즉시 중지합니다.
  • 수동 인수인계 후 NODE3 에서 기본 SAP HANA 시스템을 실행합니다.
  • SAP NetWeaver 와 같은 애플리케이션은 NODE3 에서 SAP HANA 시스템에 연결할 수 있습니다.

NODE3 는 클러스터의 일부가 아니며 HANA 시스템 복제 인계 후 가상 IP 주소를 인계하지 않습니다. DR 사이트에서 NODE3 에 연결하는 애플리케이션 서버를 시작하려면 이 문서에 설명되어 있지 않은 추가 작업이 필요합니다.

NODE3 에서 다음 명령을 실행하여 SAP HANA 시스템이 기본으로 실행되는지 확인합니다.

sudo -i -u ${sid}adm -- hdbnsutil -sr_state

샘플 출력:

# sudo -i -u hdbadm -- hdbnsutil -sr_state

System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~

online: true

mode: primary
operation mode: primary
site id: 3
site name: SiteC

is source system: true
is secondary/consumer system: false
has secondaries/consumers attached: false
is a takeover active: false
is primary suspended: false

Host Mappings:
~~~~~~~~~~~~~~

cl-hdb-3 -> [SiteC] cl-hdb-3
cl-hdb-3 -> [SiteB] cl-hdb-2


Site Mappings:
~~~~~~~~~~~~~~
SiteC (primary/primary)

Tier of SiteC: 1

Replication mode of SiteC: primary

Operation mode of SiteC: primary


Hint based routing site:
done.

Test4- 복구 절차

DR 사이트로의 전환 후 복구 절차는 복잡하며 별도의 테스트인 Test5 섹션에 별도의 테스트로 문서화되어 있습니다.

Test5- 원본 SAP HANA 멀티타겟 시스템 복제 토폴로지 복원하기

다음 정보를 사용하여 DR 사이트에서 실행되는 SAP HANA 시스템으로 인계한 후 원래 시스템 복제 토폴로지로 되돌리려면 다음 정보를 사용하세요.

다음 SAP 문서를 확인하세요.

Test5- 설명

원래 시스템 복제 토폴로지를 복원하고 기본 작업 공간에서 클러스터를 다시 활성화합니다.

Test5- 전제 조건

  • 기본 작업 공간에서 HANA 시스템 복제를 위한 2노드 RHEL HA 애드온 클러스터입니다.
  • 클러스터의 가상 서버 인스턴스가 모두 중지됩니다.
  • 기본 SAP HANA 시스템은 DR 사이트의 NODE3 에서 실행됩니다.

Test5- 테스트 절차

  1. 기본 작업 공간에서 가상 서버 인스턴스를 다시 시작합니다.

    1. IBM Cloud 콘솔에 로그인하고 NODE1 과 NODE2 를 모두 시작합니다.
    2. 두 노드를 모두 사용할 수 있을 때까지 기다립니다.
    3. Red Hat HA 애드온 클러스터 서비스가 두 클러스터 노드 모두에서 중지되었는지 확인합니다.
  2. NODE1 에 SAP HANA 시스템을 보조로 등록하세요.

    1. NODE3 에서 SAP HANA 시스템 복제가 활성화되어 있는지 확인합니다.

      sudo -i -u ${sid}adm -- hdbnsutil -sr_state
      
    2. NODE1 에서 다음 명령을 실행하여 호스트 이름을 NODE3 으로 환경 변수를 설정합니다.

      export NODE3=<Hostname 3>   # Hostname of virtual server instance 3 (production tertiary)
      
    3. NODE1 에서 다음 명령을 실행하여 SAP HANA 시스템을 NODE3 의 기본 시스템에 등록합니다.

      sudo -i -u ${sid}adm -- \
          hdbnsutil -sr_register \
            --name=${DC1} \
            --remoteHost=${NODE3} \
            --remoteInstance=${INSTNO} \
            --replicationMode=async \
            --operationMode=logreplay \
            --online
      
    4. NODE1 에서 시스템 복제 구성을 확인합니다.

      sudo -i -u ${sid}adm -- hdbnsutil -sr_state
      

      샘플 출력:

      
      System Replication State
      ~~~~~~~~~~~~~~~~~~~~~~~~
      
      online: false
      
      mode: async
      operation mode: unknown
      site id: 1
      site name: SiteA
      
      is source system: unknown
      is secondary/consumer system: true
      has secondaries/consumers attached: unknown
      is a takeover active: false
      is primary suspended: false
      is timetravel enabled: false
      replay mode: auto
      active primary site: 3
      
      primary masters: cl-hdb-3
      done.
      
    5. NODE1 에서 SAP HANA 시스템을 시작하여 시스템 복제를 시작합니다.

      sudo -i -u ${sid}adm -- HDB start
      
    6. NODE3 에서 시스템 복제 상태를 확인하고 NODE1 의 보조 서버가 완전히 동기화될 때까지 기다립니다.

      sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
      

      샘플 출력:

      # sudo -i -u hdbadm -- HDBSettings.sh systemReplicationStatus.py
      |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
      |         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
      |-------- |-------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
      |SYSTEMDB |cl-hdb-3 |30001 |nameserver   |        1 |      3 |SiteC     |cl-hdb-1  |    30001 |        1 |SiteA     |YES           |ASYNC       |ACTIVE      |               |        True |
      |HDB      |cl-hdb-3 |30007 |xsengine     |        2 |      3 |SiteC     |cl-hdb-1  |    30007 |        1 |SiteA     |YES           |ASYNC       |ACTIVE      |               |        True |
      |HDB      |cl-hdb-3 |30003 |indexserver  |        3 |      3 |SiteC     |cl-hdb-1  |    30003 |        1 |SiteA     |YES           |ASYNC       |ACTIVE      |               |        True |
      
      status system replication site "1": ACTIVE
      overall system replication status: ACTIVE
      
      Local System Replication State
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      mode: PRIMARY
      site id: 3
      site name: SiteC
      
  3. 기본 작업 공간으로 폴백을 시작합니다.

    기본 역할을 NODE1 으로 다시 이동하려면 가동 중지 기간이 필요합니다.

    NODE2 다운타임 기간을 최적화하기 위해 다운타임 기간 전에 SAP HANA 시스템을 NODE3 에 보조로 등록할 수 있습니다. 단점은 두 개의 Power Virtual Server 작업 공간 간에 더 많은 양의 데이터가 전송된다는 것입니다.

    다음에서는 NODE2 의 SAP HANA 시스템이 NODE1 이 다시 기본 시스템이 된 후 NODE1 에 보조 시스템으로 등록됩니다.

    1. NODE3 에 연결된 모든 애플리케이션과 SAP 애플리케이션 서버를 중지합니다.

    2. NODE1 에서 다음 명령을 실행하여 기본 역할을 인수합니다.

      핸드셰이크를 사용한 인계는 NODE3 에서 기본 시스템의 모든 트랜잭션을 일시 중단하고 나머지 모든 재실행 로그가 NODE1 에서 사용 가능한 경우에만 인계가 실행됩니다.

      sudo -i -u ${sid}adm -- hdbnsutil -sr_takeover --suspendPrimary
      
    3. NODE1 에서 HANA 시스템이 기본으로 실행되는지 확인합니다.

      sudo -i -u ${sid}adm -- hdbnsutil -sr_state
      
    4. NODE3 에서 다음 명령을 실행하여 시스템 복제 상태를 확인합니다.

      sudo -i -u ${sid}adm -- hdbnsutil -sr_state
      

      샘플 출력:

      # sudo -i -u ${sid}adm -- hdbnsutil -sr_state
      
      System Replication State
      ~~~~~~~~~~~~~~~~~~~~~~~~
      
      online: true
      
      SUSPEND PRIMARY ACTIVE
      mode: primary
      operation mode: primary
      site id: 3
      site name: SiteC
      
      is source system: true
      is secondary/consumer system: false
      has secondaries/consumers attached: true
      is a takeover active: false
      is primary suspended: true
      
      Host Mappings:
      ~~~~~~~~~~~~~~
      
      cl-hdb-3 -> [SiteC] cl-hdb-3
      cl-hdb-3 -> [SiteB] cl-hdb-2
      cl-hdb-3 -> [SiteA] cl-hdb-1
      
      
      Site Mappings:
      ~~~~~~~~~~~~~~
      SiteC (primary/primary)
          |---SiteA (async/logreplay)
      
      Tier of SiteC: 1
      Tier of SiteA: 2
      
      Replication mode of SiteC: primary
      Replication mode of SiteA: async
      
      Operation mode of SiteC: primary
      Operation mode of SiteA: logreplay
      
      Mapping: SiteC -> SiteA
      
      Hint based routing site:
      done.
      

    다음 요약은 이러한 단계 이후의 상태를 보여줍니다.

    • NODE1 가 기본으로 실행되지만 연결된 애플리케이션이 없습니다.
    • NODE2 가 시작되었지만 SAP HANA 이 시작되지 않았습니다.
    • NODE3 이 켜져 있고 SAP HANA 이 차단된 suspendPrimary 모드에서 차단되었습니다.
    • Red Hat HA 애드온 클러스터 서비스가 NODE1 및 NODE2 에서 중지됩니다.
  4. NODE2 에 SAP HANA 시스템을 보조로 등록하세요.

    1. NODE2 에서 다음 명령을 실행하여 SAP HANA 인스턴스를 NODE1 의 기본 인스턴스에 등록합니다.

      sudo -i -u ${sid}adm -- \
          hdbnsutil -sr_register \
            --name=${DC2} \
            --remoteHost=${NODE1} \
            --remoteInstance=${INSTNO} \
            --replicationMode=syncmem \
            --operationMode=logreplay \
            --online
      
    2. NODE2 에서 SAP HANA 을 시작하여 복제를 시작합니다.

      sudo -i -u ${sid}adm -- HDB start
      
    3. NODE1 에서 시스템 복제 상태를 확인하고 NODE2 의 보조 서버가 완전히 동기화될 때까지 기다립니다.

      sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
      

      샘플 출력:

      # sudo -i -u hdbadm -- HDBSettings.sh systemReplicationStatus.py
      |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
      |         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
      |-------- |-------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
      |SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-2  |    30001 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
      |HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-2  |    30007 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
      |HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-2  |    30003 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
      
      status system replication site "2": ACTIVE
      overall system replication status: ACTIVE
      
      Local System Replication State
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      mode: PRIMARY
      site id: 1
      site name: SiteA
      

    다음 요약은 이러한 단계 이후의 상태를 보여줍니다.

    • NODE1 가 기본으로 실행되지만 연결된 애플리케이션이 없습니다.
    • NODE2 가 보조로 실행됩니다.
    • NODE3 이 켜져 있고 SAP HANA 이 차단된 suspendPrimary 모드에서 차단되었습니다.
    • Red Hat HA 애드온 클러스터 서비스가 NODE1 및 NODE2 에서 중지됩니다.
  5. NODE1 및 NODE2 에서 클러스터를 다시 시작합니다.

    1. NODE1 및 NODE2 에서 SAP HANA 시스템을 중지합니다.

      NODE1 에서 다음을 실행합니다

      sudo -i -u ${sid}adm -- HDB stop
      

      NODE2 에서 다음을 실행합니다

      sudo -i -u ${sid}adm -- HDB stop
      
    2. 클러스터 노드에서 다음 명령을 실행하여 클러스터를 시작합니다.

      pcs cluster start --all
      
    3. 클러스터 상태를 확인하고 클러스터가 완전히 작동하는지 다시 확인합니다.

      pcs status --full
      
    4. NODE1 에서 시스템 복제 상태를 확인합니다.

      sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
      

      샘플 출력:

      # sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
      |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
      |         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
      |-------- |-------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
      |SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-2  |    30001 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
      |HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-2  |    30007 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
      |HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-2  |    30003 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
      
      status system replication site "2": ACTIVE
      overall system replication status: ACTIVE
      
      Local System Replication State
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      mode: PRIMARY
      site id: 1
      site name: SiteA
      

    다음 요약은 이러한 단계 이후의 상태를 보여줍니다.

    • NODE1 기본값으로 실행됩니다.
    • NODE2 가 보조로 실행됩니다.
    • Red Hat HA 애드온 클러스터 서비스가 시작되고 클러스터는 NODE1 및 NODE2 에서 SAP HANA 시스템 복제를 관리합니다.
    • NODE3 이 켜져 있고 SAP HANA 이 차단된 suspendPrimary 모드에서 차단되었습니다.
  6. NODE3 에 SAP HANA 시스템을 보조로 등록하세요.

    1. NODE3 에서 다음 명령을 실행하여 NODE1 에 시스템을 등록합니다.

      sudo -i -u ${sid}adm -- \
          hdbnsutil -sr_register \
            --name=${DC3} \
            --remoteHost=${NODE1} \
            --remoteInstance=${INSTNO} \
            --replicationMode=async \
            --operationMode=logreplay \
            --online
      
    2. NODE1 에서 다음 명령을 실행하여 새 SAP HANA 시스템 복제 토폴로지를 확인합니다.

      sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
      

      이전 hdbnsutil -sr_register 명령은 SAP HANA 시스템을 다시 시작하도록 트리거합니다. 이 재시작 중에 출력에 CONNECTION TIMEOUT 상태가 표시될 수 있습니다.

      샘플 출력:

      # sudo -i -u hdbadm -- HDBSettings.sh systemReplicationStatus.py
      |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary|Secondary |Secondary |Secondary |Secondary          |Replication |Replication |Replication    |Secondary    |
      |         |         |      |             |          |        |          |Host     |Port      |Site ID   |Site Name |Active Status      |Mode        |Status      |Status Details |Fully Synced |
      |-------- |-------- |----- |------------ |--------- |------- |--------- |-------- |--------- |--------- |--------- |------------------ |----------- |----------- |-------------- |------------ |
      |SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-2 |    30001 |        2 |SiteB     |YES                |SYNCMEM     |ACTIVE      |               |        True |
      |HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-2 |    30007 |        2 |SiteB     |YES                |SYNCMEM     |ACTIVE      |               |        True |
      |HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-2 |    30003 |        2 |SiteB     |YES                |SYNCMEM     |ACTIVE      |               |        True |
      |SYSTEMDB |cl-hdb-2 |30001 |nameserver   |        1 |      2 |SiteB     |cl-hdb-3 |    30001 |        3 |SiteC     |CONNECTION TIMEOUT |ASYNC       |UNKNOWN     |               |       False |
      |HDB      |cl-hdb-2 |30007 |xsengine     |        2 |      2 |SiteB     |cl-hdb-3 |    30007 |        3 |SiteC     |CONNECTION TIMEOUT |ASYNC       |UNKNOWN     |               |       False |
      |HDB      |cl-hdb-2 |30003 |indexserver  |        3 |      2 |SiteB     |cl-hdb-3 |    30003 |        3 |SiteC     |CONNECTION TIMEOUT |ASYNC       |UNKNOWN     |               |       False |
      
      status system replication site "2": ACTIVE
      status system replication site "3": UNKNOWN
      overall system replication status: UNKNOWN
      
      Local System Replication State
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      mode: PRIMARY
      site id: 1
      site name: SiteA
      

      hdbnsutil -sr_register 명령 후 시스템이 자동으로 다시 시작되지 않는 경우 시스템을 수동으로 중지했다가 다시 시작해야 합니다.

      다음은 이러한 상황의 예시 출력입니다. NODE3 의 복제 상태는 IS PRIMARY (e.g. after takeover) 로 표시되며 상태를 여러 번 확인해도 변경되지 않습니다.

      # sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
      |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary|Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication                      |Secondary    |
      |         |         |      |             |          |        |          |Host     |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details                   |Fully Synced |
      |-------- |-------- |----- |------------ |--------- |------- |--------- |-------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------------------------- |------------ |
      |SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-3 |    30001 |        3 |          |PRIMARY       |            |            |IS PRIMARY (e.g. after takeover) |       False |
      |HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-3 |    30007 |        3 |          |PRIMARY       |            |            |IS PRIMARY (e.g. after takeover) |       False |
      |HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-3 |    30003 |        3 |          |PRIMARY       |            |            |IS PRIMARY (e.g. after takeover) |       False |
      |SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-2 |    30001 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |                                 |        True |
      |HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-2 |    30007 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |                                 |        True |
      |HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-2 |    30003 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |                                 |        True |
      
      status system replication site "3": ERROR
      status system replication site "2": ACTIVE
      overall system replication status: ERROR
      
      Local System Replication State
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      mode: PRIMARY
      site id: 1
      site name: SiteA
      

      NODE3 에서 다음 명령을 실행하여 보조 HANA 시스템을 다시 시작합니다.

      sudo -i -u ${sid}adm -- HDB restart
      

    다음 요약은 이러한 단계를 거친 후의 최종 상태를 보여줍니다.

    • NODE1 기본값으로 실행됩니다.
    • NODE2 가 보조로 실행됩니다.
    • NODE3 dR 사이트에서 또 다른 보조로 실행됩니다.
    • NODE2 와 NODE3 는 모두 NODE1 에 등록되어 있습니다.
    • Red Hat HA 애드온 클러스터 서비스가 시작되고 클러스터는 NODE1 및 NODE2 에서 SAP HANA 시스템 복제를 관리합니다.

    NODE1 에서 다음 명령을 실행하여 SAP HANA 시스템 복제 토폴로지를 확인합니다.

    sudo -i -u ${sid}adm -- HDBSettings.sh systemReplicationStatus.py
    

    샘플 출력:

    # sudo -i -u hdbadm -- HDBSettings.sh systemReplicationStatus.py
    |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
    |         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
    |-------- |---------|----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
    |SYSTEMDB |cl-hdb-1 |30001 |nameserver   |        1 |      1 |SiteA     |cl-hdb-2  |    30001 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
    |HDB      |cl-hdb-1 |30007 |xsengine     |        2 |      1 |SiteA     |cl-hdb-2  |    30007 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
    |HDB      |cl-hdb-1 |30003 |indexserver  |        3 |      1 |SiteA     |cl-hdb-2  |    30003 |        2 |SiteB     |YES           |SYNCMEM     |ACTIVE      |               |        True |
    |SYSTEMDB |cl-hdb-2 |30001 |nameserver   |        1 |      2 |SiteB     |cl-hdb-3  |    30001 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
    |HDB      |cl-hdb-2 |30007 |xsengine     |        2 |      2 |SiteB     |cl-hdb-3  |    30007 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
    |HDB      |cl-hdb-2 |30003 |indexserver  |        3 |      2 |SiteB     |cl-hdb-3  |    30003 |        3 |SiteC     |YES           |ASYNC       |ACTIVE      |               |        True |
    
    status system replication site "2": ACTIVE
    status system replication site "3": ACTIVE
    overall system replication status: ACTIVE
    
    Local System Replication State
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    mode: PRIMARY
    site id: 1
    site name: SiteA