設定連線

設定內部部署 Oracle Cloud Infrastructure (OCI) 執行處理的靜態監聽器、重做傳輸以及 TCP 通訊埠大小連線。

設定靜態監聽器

在內部部署和 Oracle Cloud Infrastructure (OCI) 執行處理中設定靜態監聽器檔案。起始建立待命資料庫時需要靜態監聽器。當資料庫關閉時,靜態監聽器會啟用與執行處理的遠端連線,讓您可以使用 Oracle Data Guard 來啟動執行處理。

listener.ora 檔案中不含任何分行符號或空格。
  1. 主要內部部署資料庫上應該要有預設監聽器,請勿變更預設監聽器。
  2. 在主要資料庫上,附加 SID_LIST_LISTENER 檔案來包括資料庫唯一名稱、Oracle 本位目錄,以及主要資料庫的 Oracle 系統 ID (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 系統 ID (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) 
    		))

設定重做傳輸

設定重做傳輸的「Oracle Net 加密」和「TNS 項目」,以保護未加密的表格空間無法在網路上看見。主要和待命 tnsnames.ora 檔案中都需要每個資料庫的項目,才能正確重做傳輸。

由於內部部署與雲端環境之間沒有 DNS 可將伺服器名稱解析為 IP 位址,因此會使用 IP 位址。使用下列範例,取代與組態相關的值。

Oracle Real Application Clusters (Oracle RAC) 組態無法解析掃描監聽器名稱;因此,您必須使用位址清單來定義所有節點。這些位址將於稍後新增,起始執行處理應該只在 tns 項目中列出一個 IP 位址,以確保 Oracle Recovery Manager (RMAN) 一律連線至相同的節點。

  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 中可能已經有 TNS 項目,且伺服器名稱為 HOST。在此情況下,請將項目中的伺服器名稱變更為使用主機的 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 通訊埠大小上限設為 128MB,以獲得最佳的傳輸效能。如果內部部署和雲端執行處理之間的值不相符,網路協定將會交涉兩個值中較低的值。

  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_maxnet.core.rmem_max/etc/sysctl.conf 檔案設定值至 134217728。