設定監聽器和 SQLNet.ora

Oracle Database Exadata Cloud Service 和內部部署 Oracle Exadata Database Machine 的所有節點上設定監聽器。

新增靜態監聽器至待命執行處理

新增靜態監聽器至 Oracle Database Exadata Cloud Service 執行處理的 Grid 本位目錄。

  1. Oracle Database Exadata Cloud Service 執行處理的節點 1 上建立監聽器檔案。
    下列為範例檔案。變更您環境的 GLOBAL_DBNAMESID_NAME
    [grid@exacs82-vm3sv1 admin]$ cat listener.ora
    LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))))
    # line added by Agent
    LISTENER_SCAN3=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN3))
    ))
    # line added by Agent
    LISTENER_SCAN2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2))
    ))
    # line added by Agent
    LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1))
    ))
    # line added by Agent
    ASMNET1LSNR_ASM=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=ASMNET1LSNR_ASM
    ))))
    # line added by Agent
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_ASMNET1LSNR_ASM=ON
    # line added by Agent
    VALID_NODE_CHECKING_REGISTRATION_ASMNET1LSNR_ASM=SUBNET
    # line added by Agent
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON
    # line added by Agent
    VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN1=OFF
    # line added by Agent - 
    Disabled by Agent because REMOTE_REGISTRATION_ADDRESS is set
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2=ON
    # line added by Agent
    VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN2=OFF
    # line added by Agent - 
    Disabled by Agent because REMOTE_REGISTRATION_ADDRESS is set
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3=ON
    # line added by Agent
    VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN3=OFF
    # line added by Agent - 
    Disabled by Agent because REMOTE_REGISTRATION_ADDRESS is set
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON
    # line added by Agent
    VALID_NODE_CHECKING_REGISTRATION_LISTENER=SUBNET
    # line added by Agent
    SSL_CLIENT_AUTHENTICATION = FALSE
    WALLET_LOCATION=(SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = 
    /var/opt/oracle/dbaas_acfs/grid/tcps_wallets)))
    SID_LIST_LISTENER =
    (SID_LIST =
      (SID_DESC =
       (GLOBAL_DBNAME = DB1_phx3g7)
       (ORACLE_HOME = /u02/app/oracle/product/19.0.0.0/dbhome_5)
       (SID_NAME = DB11)
      )
    )
  2. opc 使用者身分登入節點。
    ssh -i cluster.key opc@10.255.195.131
  3. Sudo 至 grid 使用者。
    sudo su - grid
  4. 更新環境。
    $ . oraenv
    ORACLE_SID = [DB11] ? +ASM1
    輸出看起來會像下面這樣:
    The Oracle base has been changed from /u02/app/oracle to /u01/app/grid
  5. 確認監聽器檔案位於$ORACLE_HOME/network/admin 目錄中。
    cd $ORACLE_HOME/network/admin
    ls -lrt
  6. 重新載入監聽器。
    [grid@exacs82-vm3sv1 admin]$ lsnrctl reload
  7. 檢查監聽器的狀態。
    [grid@exacs82-vm3sv1 admin]$ lsnrctl status
    輸出看起來會像下面這樣:
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    Start Date                18-JAN-2021 03:42:09
    Uptime                    10 days 8 hr. 47 min. 53 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/19.0.0.0/grid/network/admin/listener.ora
    Listener Log File         /u01/app/grid/diag/tnslsnr/exacs82-
    vm3sv1/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
    Services Summary...
    Service "DB1_phx3g7" has 1 instance(s).
      Instance "DB11", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
  8. 搜尋節點以驗證監聽器。
    lsnrctl services | grep DB1
    輸出與下列類似:
    Service "DB1_phx3g7" has 1 instance(s).
      Instance "DB11", status UNKNOWN, has 1 handler(s) for this service...
    Service "DB1_phx3g7.datasubnetactiv.oscphevcn.oraclevcn.com" has 1 instance(s).
      Instance "DB11", status BLOCKED, has 1 handler(s) for this service...
    [oracle@exacs82-vm3sv1 DB1]$ Connection to 10.255.195.131 closed by remote host.
     
  9. 啟動 Oracle Database Exadata Cloud Service 執行處理。
    [oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
    SQL> startup mount;

設定 SQL Net。Ora

設定 sqlnet.ora 檔案,並將其複製到主要和待命 Exadata 執行處理的所有節點,包括 Grid 本位目錄。SQLNET.ora 組態必須存在於內部部署 Oracle Exadata Database MachineOracle Database Exadata Cloud Service 上。

下列是節點間值的快照。

公事包檔案位置必須存在於主要和待命 Exadata 執行處理的 SQLNet.ora 檔案中。確定 SQLNET.ora 檔案中沒有分行符號或空格。

  1. 登入主要、內部部署 Exadata 的 Oracle 本位目錄節點 1,然後設定您的 sqlnet.ora
    [oracle@exa11db01 admin]$ cat sqlnet.ora 
    以下是輸出範例。
    # sqlnet.ora.exa11db01 Network Configuration File: 
    /u01/app/19.0.0.0/grid/network/admin/sqlnet.ora.exa11db01
    # Generated by Oracle configuration tools.
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    SQLNET.EXPIRE_TIME=10
    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)
    ENCRYPTION_WALLET_LOCATION = 
     (SOURCE=
      (METHOD=FILE)
       (METHOD_DATA=
        (DIRECTORY=/u01/app/oracle/admin/db1/wallet/)))
  2. 登入主要、內部部署 Exadata 的 Oracle 本位目錄節點 2,然後設定您的 sqlnet.ora
    [oracle@exa11db02 admin]$ cat sqlnet.ora 
    以下是輸出範例。
    # sqlnet.ora.exa11db01 Network Configuration File: 
    /u01/app/19.0.0.0/grid/network/admin/sqlnet.ora.exa11db01
    # Generated by Oracle configuration tools.
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    SQLNET.EXPIRE_TIME=10
    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)
    ENCRYPTION_WALLET_LOCATION = 
     (SOURCE=
      (METHOD=FILE)
       (METHOD_DATA=
        (DIRECTORY=/u01/app/oracle/admin/db1/wallet/)))
  3. 登入主要、內部部署 Exadata 的 Grid Home Node 1,然後設定您的 sqlnet.ora
    [oracle@exa11db01 admin]$ cat sqlnet.ora
    以下是輸出範例。
    # sqlnet.ora.exa11db02 Network Configuration File: 
    /u01/app/19.0.0.0/grid/network/admin/sqlnet.ora.exa11db01
    # Generated by Oracle configuration tools.
    #(Default Values)
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    SQLNET.EXPIRE_TIME=10
  4. 登入主要、內部部署 Exadata 的 Grid Home Node 2,然後設定您的 sqlnet.ora
    [oracle@exa11db02 admin]$ cat sqlnet.ora
    以下是輸出範例。
    # sqlnet.ora.exa11db02 Network Configuration File: 
    /u01/app/19.0.0.0/grid/network/admin/sqlnet.ora.exa11db02
    # Generated by Oracle configuration tools.
    #(Default Values)
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    SQLNET.EXPIRE_TIME=10
  5. 登入待命 Oracle Database Exadata Cloud Service 的「節點 1」,然後設定您的 sqlnet.ora
    [oracle@exacs82-vm3sv1 DB1]$ cat sqlnet.ora
    以下是輸出範例。
    # sqlnet.ora.exa11db01 Network Configuration File: 
    /u01/app/19.0.0.0/grid/network/admin/sqlnet.ora.exa11db01
    # Generated by Oracle configuration tools.
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    SQLNET.EXPIRE_TIME=10
    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)
    ENCRYPTION_WALLET_LOCATION = 
     (SOURCE=
      (METHOD=FILE)
       (METHOD_DATA=
        (DIRECTORY=/var/opt/oracle/dbaas_acfs/DB1/wallet_root/tde)))
  6. 登入待命 Oracle Database Exadata Cloud Service 的節點 2,然後設定您的 sqlnet.ora
    [oracle@exacs82-vm3sv2 DB1]$ cat sqlnet.ora
    以下是輸出範例。
    SQLNET.ENCRYPTION_TYPES_CLIENT = (AES256, AES192, AES128)
    SQLNET.ENCRYPTION_SERVER = requested
    SSL_CLIENT_AUTHENTICATION = FALSE
    SQLNET.ENCRYPTION_CLIENT = requested
    SSL_CIPHER_SUITES = (SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 
    SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 
    SSL_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
    SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = (SHA256, SHA384, SHA512, SHA1)
    HTTPS_SSL_VERSION = 1.2
    SQLNET.WALLET_OVERRIDE = FALSE
    SQLNET.EXPIRE_TIME = 10
    WALLET_LOCATION = 
    (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/var/opt/oracle/dbaas_acfs/grid/tcps_wall
    ets)))
    SQLNET.CRYPTO_CHECKSUM_CLIENT = accepted
    SQLNET.CRYPTO_CHECKSUM_SERVER = accepted
    SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (SHA256, SHA384, SHA512)
    ENCRYPTION_WALLET_LOCATION = 
     (SOURCE=
      (METHOD=FILE)
       (METHOD_DATA=
        (DIRECTORY=/var/opt/oracle/dbaas_acfs/DB1/wallet_root/tde)))
    SQLNET.ENCRYPTION_TYPES_SERVER = (AES256, AES192, AES128)
    SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS = TRUE
    SSL_VERSION = 1.2
  7. 登入待命 Oracle Database Exadata Cloud Service 的 Grid Home Node 1,然後設定您的 sqlnet.ora
    [grid@exacs82-vm3sv1 admin]$ cat sqlnet.ora
    以下是輸出範例。
    #SQLNET.ENCRYPTION_SERVER = requested
    #SQLNET.ENCRYPTION_TYPES_CLIENT = (AES256, AES192, AES128)
    #SSL_CLIENT_AUTHENTICATION = FALSE
    #SQLNET.ENCRYPTION_CLIENT = requested
    #SSL_CIPHER_SUITES = (SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 
    SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 
    SSL_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
    #SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = (SHA256, SHA384, SHA512, SHA1)
    #HTTPS_SSL_VERSION = 1.2
    #NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
    #SQLNET.EXPIRE_TIME = 10
    #SQLNET.WALLET_OVERRIDE = FALSE
    WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = 
    /u02/app/oracle/admin/grid/grid_wallet)))
    #SQLNET.CRYPTO_CHECKSUM_CLIENT = accepted
    #SQLNET.CRYPTO_CHECKSUM_SERVER = accepted
    #SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (SHA256, SHA384, SHA512, SHA1)
    #SQLNET.ENCRYPTION_TYPES_SERVER = (AES256, AES192, AES128)
    #SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS = TRUE
    #SSL_VERSION = 1.2
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    SQLNET.EXPIRE_TIME=10
    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)
  8. 登入待命 Oracle Database Exadata Cloud Service 的 Grid Home Node 2,然後設定您的 sqlnet.ora
    [grid@exacs82-vm3sv2 admin]$ cat sqlnet.ora
    以下是輸出範例。
    SQLNET.ENCRYPTION_SERVER = requested
    SQLNET.ENCRYPTION_TYPES_CLIENT = (AES256, AES192, AES128)
    SSL_CLIENT_AUTHENTICATION = FALSE
    SQLNET.ENCRYPTION_CLIENT = requested
    SSL_CIPHER_SUITES = (SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 
    SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 
    SSL_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
    SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = (SHA256, SHA384, SHA512, SHA1)
    HTTPS_SSL_VERSION = 1.2
    NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
    SQLNET.EXPIRE_TIME = 10
    SQLNET.WALLET_OVERRIDE = FALSE
    WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = 
    /u02/app/oracle/admin/grid/grid_wallet)))
    SQLNET.CRYPTO_CHECKSUM_CLIENT = accepted
    SQLNET.CRYPTO_CHECKSUM_SERVER = accepted
    SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (SHA256, SHA384, SHA512, SHA1)
    SQLNET.ENCRYPTION_TYPES_SERVER = (AES256, AES192, AES128)
    SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS = TRUE
    SSL_VERSION = 1.2

更新所有節點上的執行處理和資料庫名稱

變更主要內部部署 Exadata 和待命 Oracle Database Exadata Cloud Service 之所有節點上 tnsnames.ora 檔案中的執行處理和資料庫名稱。主要和待命 tnsnames.ora 檔案中需要每個資料庫的項目,才能正確傳輸 redo

在此範例中。

  • DB1:主要內部部署 Oracle Exadata Database Machine 資料庫名稱
  • db11:節點 1 上的資料庫執行處理名稱
  • db12:節點 2 上的資料庫執行處理名稱
  • DB1_phx3g7:唯一的 Oracle Database Exadata Cloud Service 執行處理名稱。
  • DB11:節點 1 上的 Oracle Database Exadata Cloud Service 執行處理名稱 1
  • DB12:節點 2 上的 Oracle Database Exadata Cloud Service 執行處理名稱 2

如果主要資料庫在內部部署 tnsnames.ora 檔案中具有 TNS 項目且 HOST 的伺服器名稱,請改為變更該項目中的伺服器名稱以使用主機的 IP 位址。由於內部部署與雲端環境之間沒有 DNS 可將伺服器名稱解析為 IP 位址,因此會使用 IP 位址。

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

請使用下列範例來取代與組態相關的值。

  1. 在主要內部部署 Exadata 的節點 1 上,更新您 tnsnames.ora 檔案中的服務名稱和例項名稱。
    [oracle@exa11db01 admin]$ cat tnsnames.ora
    以下是輸出範例。
    # tnsnames.ora Network Configuration File: 
    /u01/app/oracle/product/19.0.0.0/dbhome_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    DB1 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 10.136.74.2)(PORT = 1522))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
         #(SERVICE_NAME = db1.service_name)
         (SERVICE_NAME = DB1)
          (INSTANCE_NAME = db11)
        )
      )
    DB1_phx3g7 =
      (DESCRIPTION =
        (SDU = 65536)
        (RECV_BUF_SIZE = 134217728)
        (SEND_BUF_SIZE = 134217728)
        (ADDRESS_LIST =
          (CONNECT_TIMEOUT = 3)
          (RETRY_COUNT = 3)
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.255.195.136)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = DB1_phx3g7.service_name)
          (UR = A)
        )
      )
  2. 在主要內部部署 Exadata 的節點 2 上,更新您 tnsnames.ora 檔案中的服務名稱和例項名稱。
    [oracle@exa11db02 admin]$ cat tnsnames.ora
    以下是輸出範例。
    # tnsnames.ora.exa11db02 Network Configuration File: 
    /u01/app/oracle/product/19.0.0.0/dbhome_1/network/admin/tnsnames.ora.exa11db02
    # Generated by Oracle configuration tools.
    DB1 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = exa11-scan1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = db1.service_name)
          (INSTANCE_NAME = db12)
        )
      )
    DB1_phx3g7 =
      (DESCRIPTION =
        (SDU = 65536)
        (RECV_BUF_SIZE = 134217728)
        (SEND_BUF_SIZE = 134217728)
        (ADDRESS_LIST =
          (CONNECT_TIMEOUT = 3)
          (RETRY_COUNT = 3)
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.255.195.136)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = DB1_phx3g7.service_name)
          (UR = A)
        )
      )
  3. 在主要內部部署 Exadata 的 Grid Home Node 1 上,更新您 tnsnames.ora 檔案中的服務名稱和執行處理名稱。
    [oracle@exa11db01 admin]$ cat tnsnames.ora
    以下是輸出範例。
    DB1_phx3g7 = 
    (DESCRIPTION = 
    (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) 
    (ADDRESS_LIST = 
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS = (PROTOCOL = TCP)(HOST =10.255.195.131)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = DB1_phx3g7)
    (INSTANCE_NAME=DB11) 
    (UR=A) 
    )) 
    db1 = 
    (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 = 10.136.74.18)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = db1) 
    (UR=A) 
    ))
  4. 登入待命 Oracle Database Exadata Cloud Service 的節點 1,然後更新您 tnsnames.ora 檔案中的服務名稱和執行處理名稱。
    [oracle@exacs82-vm3sv1 DB1]$ cat tnsnames.ora
    以下是輸出範例。
    DB1_phx3g7 =
      (DESCRIPTION =
        (SDU = 65536)
        (RECV_BUF_SIZE = 134217728)
        (SEND_BUF_SIZE = 134217728)
        (ADDRESS_LIST =
          (CONNECT_TIMEOUT = 3)
          (RETRY_COUNT = 3)
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.255.195.136)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = DB1_phx3g7.service_name)
          (INSTANCE_NAME = DB11)
          (UR = A)
        )
      )
    db1 = 
    (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 = 10.136.74.18)(PORT = 1521))  
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = db1.service_name)
          (INSTANCE_NAME = DB11)
          (UR = A)
        )
      )
  5. 在待命 Oracle Database Exadata Cloud Service 的節點 2 中,更新您 tnsnames.ora 檔案中的服務名稱和執行處理名稱。
    [oracle@exacs82-vm3sv2 DB1]$ cat tnsnames.ora
    以下是輸出範例。
    db1 = 
    (DESCRIPTION = 
    (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) 
    (ADDRESS_LIST = 
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.136.74.18)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = db1.service_name) 
    (UR=A) 
    )
             ) 
    DB1_phx3g7 =
      (DESCRIPTION =
        (SDU = 65536)
        (RECV_BUF_SIZE = 134217728)
        (SEND_BUF_SIZE = 134217728)
        (ADDRESS_LIST =
          (CONNECT_TIMEOUT = 3)
          (RETRY_COUNT = 3)
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.255.195.136)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = DB1_phx3g7.service_name)
          (INSTANCE_NAME = DB12)
          (UR = A)
        )
      )
  6. 登入待命 Oracle Database Exadata Cloud Service 的 Grid Home Node 1,然後設定您的 sqlnet.ora
    [grid@exacs82-vm3sv1 admin]$ cat tnsnames.ora
    以下是輸出範例。
    DB1_phx3g7 = 
    (DESCRIPTION = 
    (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) 
    (ADDRESS_LIST = 
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS = (PROTOCOL = TCP)(HOST =10.255.195.131)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = DB1_phx3g7)
    (INSTANCE_NAME=DB11) 
    (UR=A) 
    )) 
    db1 = 
    (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 = 10.136.74.18)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = db1.service_name) 
    (UR=A) 
    ))

設定 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 = 2097152
  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 通訊埠大小不是 128MB 或 134217728,請編輯 net.core.wmem_maxnet.core.rmem_max 到 134217728 的/etc/sysctl.conf 檔案設定值。