온-프레미스 및 OCI 구성 설정

온-프레미스에서 클라우드로의 복구를 위해 온-프레미스 및 OCI(Oracle Cloud Infrastructure) 인스턴스를 구성합니다.

기본 데이터베이스 구성 확인

OCI(Oracle Cloud Infrastructure) 에서 대기 데이터베이스를 인스턴스화하기 전에 다음 필요 조건을 충족해야 합니다.

  1. OCI VM DB 시스템에 대한 이름 분석을 구성합니다.
    정적 파일(예: /etc/hosts) 을 사용하거나 OCI 인스턴스의 공용 IP 주소를 올바르게 분석하도록 온-프레미스 DNS을 구성합니다.
  2. 온-프레미스 시스템에서 VM DB 시스템으로의 SSH 및 Oracle Net 액세스를 허용하도록 온-프레미스 방화벽을 구성합니다.
  3. 네트워크 보안 정책에 따라 iptables와 같은 기능을 사용하여 클라우드 IP 주소에서 제한된 액세스로 열리도록 기본 데이터베이스 리스너 포트를 구성합니다.
    DR 상황에서 Oracle Data Guard는 클라우드 인스턴스에서 온-프레미스 데이터베이스로 액세스해야 하므로 클라우드 IP 주소에서 제한된 액세스로 기본 데이터베이스 리스너 포트를 열어야 합니다. 네트워크 관리자는 클라우드측 네트워크 구성과 유사한 작업을 수행해야 합니다.
  4. 대기 데이터베이스에서 온-프레미스 시스템으로 프롬프트 없는 SSH가 구성되어 있는지 확인합니다.
    이는 프로비저닝 프로세스 중에 온-프레미스에서 클라우드에 대해 구성되고 클라우드에서 온-프레미스로 구성됩니다.
  5. VM DB에서 온-프레미스 시스템으로 인바운드 SSH 접속을 허용하도록 온-프레미스 방화벽을 구성합니다.
  6. 온-프레미스 데이터베이스에 대한 Oracle 홈은 대기 데이터베이스와 동일한 Oracle 패치 집합이어야 합니다.
    OCI 환경이 다른 번들 패치 레벨에 있고 온-프레미스 데이터베이스가 다른 번들 패치 또는 PSU에 있는 경우 소스 환경을 클라우드 환경의 데이터베이스 홈과 동일한 데이터베이스 번들 패치 레벨에 패치하는 것이 좋습니다.
    $ORACLE_HOME/OPatch/opatch lspatches 명령을 사용하여 온-프레미스 환경과 OCI 환경 모두에 설치된 일회용 패치를 확인합니다.
  7. 온-프레미스 기본 데이터베이스가 아직 기존 Oracle Data Guard Broker 구성의 일부가 아닙니다.
    온-프레미스 데이터베이스에 대한 기존 중개자 구성이 있는 경우 기존 중개자 구성에 새 대기 데이터베이스를 추가합니다.
    SQL> select decode(count(1),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
    NOCONFIG 이외의 값을 가진 출력은 기존 중개자 구성이 있음을 의미합니다.

온프레미스와 OCI 간의 접속 테스트

OCI(Oracle Cloud Infrastructure) 에서 온-프레미스 데이터베이스와 VM DB 시스템 간의 접속을 테스트합니다.

  1. 온-프레미스 인스턴스에서 열려 있는 포트를 나열합니다. 포트 1521이 열려 있지 않으면 포트를 목록에 추가합니다.
    # firewall-cmd --list-ports
    포트가 추가되면 다음과 같이 출력됩니다:
    1521/tcp
  2. 포트 1521이 목록에 없으면 루트로 로그인하고 포트 1521을 추가합니다. 방화벽을 다시 시작하고 상태를 확인한 다음 포트를 다시 나열합니다.
    [root@bastion tmp]# firewall-cmd --add-port=1521/tcp --permanent
    
    [root@bastion tmp]# systemctl restart firewalld
    [root@bastion tmp]# systemctl status firewalld
    
    [root@bastion tmp]# firewall-cmd --list-ports --permanent
  3. 온-프레미스 시스템에서 리스너가 LISTENER라는 기본 리스너인지 확인합니다.
    $lsnrctl show current_listener | grep Current Listener
    출력은 Output: Current Listener is LISTENER와 유사해야 합니다.
  4. 온-프레미스 시스템에서 리스너 포트가 1521인지 확인합니다.
    $lsnrctl status| grep 'Connecting to'  
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=(1521)))
  5. 온-프레미스 시스템에서 포트 1521을 사용하여 텔넷에서 대기 데이터베이스 인스턴스로 연결합니다.
    [root@onpremise1 ~]# telnet standby_database_IP_address 1521
  6. 온-프레미스 시스템에서 TNS 핑 유틸리티를 사용하여 대기 데이터베이스 인스턴스에 핑을 수행합니다.
    [oracle@bastion dbhome_1]$ tnsping standby_database_host_IP_address
    
  7. 온-프레미스 시스템에서 대기 데이터베이스 인스턴스에 대해 Ping을 실행합니다.
    [oracle@bastion dbhome_1]$ ping standby_database_host_IP_address
  8. VM DB 시스템에서 포트 1521을 사용하여 텔넷에서 온프레미스 데이터베이스 인스턴스로 연결합니다.
    [root@onpremise1 ~]# telnet on-premises_database_IP_address 1521
  9. 클라우드의 VM DB 시스템에서 TNS 핑 유틸리티를 사용하여 온-프레미스 데이터베이스 인스턴스를 핑합니다.
    [oracle@drdb opc]$ tnsping on-premises database host IP address
  10. VM DB 시스템에서 온-프레미스 데이터베이스 인스턴스에 대해 핑을 수행합니다.
    [oracle@drdb opc]$ ping on-premises database host IP address
세 가지 연결 방법은 모두 클라우드의 온프레미스 및 VM DB 시스템 간에 작동해야 합니다.