接続の構成

オンプレミスおよびOracle Cloud Infrastructure (OCI)インスタンスの静的リスナー、REDO転送およびTCPソケット・サイズ接続を構成します。

静的リスナーの構成

オンプレミスおよびOracle Cloud Infrastructure (OCI)インスタンスで静的リスナー・ファイルを構成します。スタンバイ・データベースの初期インスタンス化には静的リスナーが必要です。データベースが停止すると、静的リスナーによってインスタンスへのリモート接続が可能になり、Oracle Data Guardを使用してインスタンスを起動できます。

listener.oraファイルには改行や空白を含めないでください。
  1. プライマリ・オンプレミス・データベースにデフォルトのリスナーが存在する必要があります。デフォルトのリスナーは変更しないでください。
  2. プライマリ・データベースで、SID_LIST_LISTENERファイルを追加して、プライマリ・データベースの一意のデータベース名、OracleホームおよびOracleシステム識別子(SID)を含めます。
    SID_LIST_LISTENER = 
    		(SID_LIST = (SID_DESC = 
    (GLOBAL_DBNAME = DB_UNIQUE_NAME of the primary database) (ORACLE_HOME = Local Oracle Home of the primary database) 
    				(SID_NAME = ORACLE SID of the primary database) 
    		))
  3. OCIのスタンバイ・データベースにデフォルトのリスナーが存在する必要があります。デフォルトのリスナーは変更しないでください。
  4. OCIのスタンバイ・データベースで、SID_LIST_LISTENERファイルを追加して、プライマリ・データベースの一意のデータベース名、OCIのOracleホームおよびOracleシステム識別子(SID)を含めます。
    SID_LIST_LISTENER = 
    		(SID_LIST = (SID_DESC = 
    (GLOBAL_DBNAME = DB_UNIQUE_NAME of the primary database) (ORACLE_HOME = Local Oracle Home of OCI) 
    				(SID_NAME = ORACLE SID of the primary database) 
    		))

REDOトランスポートの構成

暗号化されていない表領域がネットワーク上で表示されないように保護するには、REDO転送用のOracle Net EncryptionおよびTNSエントリを構成します。適切なREDO転送を行うには、プライマリとスタンバイの両方のtnsnames.oraファイルに各データベースのエントリが必要です。

サーバー名をIPアドレスに解決するためのDNSがオンプレミス環境とクラウド環境の間にないため、IPアドレスが使用されます。次の例を使用して、構成に関連する値を置き換えます。

Oracle Real Application Clusters (Oracle RAC)構成ではスキャン・リスナー名を解決できないため、アドレス・リストを使用してすべてのノードを定義する必要があります。これらは後で追加されます。Oracle Recovery Manager (RMAN)が常に同じノードに接続するように、初期インスタンスではtnsエントリにIPアドレスを1つのみリストする必要があります。

  1. Oracle Cloud Infrastructure (OCI)インスタンスの場合、$ORACLE_HOME/network/adminディレクトリにあるすべてのクラウド・マシンのsqlnet.oraファイルに次のエントリを配置します。
    SQLNET.ENCRYPTION_SERVER=REQUIRED 
    SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 
    SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128) 
    SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1) 
    SQLNET.ENCRYPTION_CLIENT=REQUIRED 
    SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED 
    SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128) 
    SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1)
  2. OCIインスタンスの場合は、tnsnames.oraファイルを変更します。
    tnsnames.oraファイルに改行や空白が含まれていないことを確認します。
    Standby_db_unique_name = (DESCRIPTION = 
    (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) 
    (ADDRESS_LIST = 
    		   (FAILOVER=on)
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS = (PROTOCOL = TCP)(HOST = StandbyDB_IP_address)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = Primary_db_SID) 
    (UR=A) 
    )) 
    
    Primary_db_unique_name = (DESCRIPTION = 
    (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) 
    (ADDRESS_LIST = 
    		   (FAILOVER=on)
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS = (PROTOCOL = TCP)(HOST = Primary_DB_IP_ address)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = Primary_db_SID) 
    (UR=A) 
    ))
  3. オンプレミスの場合、$ORACLE_HOME/network/adminディレクトリにあるすべてのオンプレミス・マシンのsqlnet.oraファイルに次のエントリを配置します。
    SQLNET.ENCRYPTION_SERVER=REQUIRED 
    SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 
    SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128) 
    SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1) 
    SQLNET.ENCRYPTION_CLIENT=REQUIRED 
    SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED 
    SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128) 
    SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1) 
    
  4. プライマリ・オンプレミス・データベース・ホストの場合、tnsnames.oraファイルを変更します。
    プライマリ・データベースのオンプレミスtnsnames.oraには、HOSTのサーバー名を持つTNSエントリがすでに存在する場合があります。この場合は、ホストのIPアドレスを使用するようにエントリ内のサーバー名を変更します。
    tnsnames.oraファイルに改行や空白が含まれていないことを確認します。
    Primary_db_unique_name = (DESCRIPTION = 
    (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) 
    (ADDRESS_LIST = 
    (FAILOVER=on)
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS = (PROTOCOL = TCP)(HOST = PrimaryDB_IP_address)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = Primary_db_SID ) 
    (UR=A) 
    )) 
    
    Standby_db_unique_name = (DESCRIPTION = 
    (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) 
    (ADDRESS_LIST = 
    (FAILOVER=on)
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS = (PROTOCOL = TCP)(HOST = StandbyDB_IP_address)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = Primary_db_SID ) 
    (UR=A) 
    ))

リスナーの起動

Oracle Cloud Infrastructure (OCI)のスタンバイ・データベースおよびプライマリのオンプレミス・データベースでSID_LIST_LISTENERを起動します。

  1. プライマリ・データベースでリスナーを起動します。
    $ORACLE_HOME/bin/lsnrctl reload
  2. プライマリ・データベースでリスナーのステータスを確認します。
    [oracle@primary_host admin]$ lsnrctl status
  3. OCIデータベース・インスタンスでリスナーを起動します。
    $ORACLE_HOME/bin/lsnrctl reload
  4. OCIデータベース・インスタンスのリスナーのステータスを確認します。
    [oracle@OCI_database_instance admin]$ lsnrctl status

スタンバイ・データベースの起動

Oracle Cloud Infrastructureでスタンバイ・データベースを起動します。

サーバー制御ユーティリティまたはSQL*Plusを使用して、スタンバイ・データベースを起動します。
  • サーバー制御(srvctl)ユーティリティを使用して、データベースを起動します。
    srvctl start instance -d standby DB_UNIQUE_NAME -i standby instance name -o mount
  • SQL*Plusを使用してデータベースを起動します。
    $ ./sqlplus / as sysdba
    SQL> startup mount;

TCPソケット・サイズの設定

最適なトランスポート・パフォーマンスを得るには、オンプレミス・システムおよびクラウド・インスタンスのTCPソケット・サイズを最大128 MBに設定します。オンプレミス・インスタンスとクラウド・インスタンスの間の値が一致しない場合、ネットワーク・プロトコルは2つの値のうち低い方をネゴシエートします。

  1. rootユーザーとして、オンプレミス・システムのTCPソケット・サイズを確認します。
    /sbin/sysctl -a | egrep net.core.[w,r]mem_max
    次のように出力されます。
    net.core.rmem_max = 4194304 net.core.wmem_max = 1048576
  2. rootユーザーとして、クラウド・インスタンスのTCPソケット・サイズを確認します。
    /sbin/sysctl -a | egrep net.core.[w,r]mem_max
    次のように出力されます。
    net.core.rmem_max = 134217728
    net.core.wmem_max = 134217728
  3. クラウド・インスタンスのTCPソケット・サイズが134217728でない場合、net.core.wmem_maxおよびnet.core.rmem_max/etc/sysctl.confファイル設定を134217728に編集します。