리스너 구성 및 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 to 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 파일을 구성하고 Grid 홈을 포함한 기본 및 대기 Exadata 인스턴스의 모든 노드에 복사합니다. 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 홈 노드 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 홈 노드 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 홈 노드 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 홈 노드 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 파일의 인스턴스 및 데이터베이스 이름을 변경합니다. 적절한 redo 전송을 위해서는 각 데이터베이스에 대한 항목이 기본 및 대기 tnsnames. ora 파일에 모두 필요합니다.

예 설명.

  • DB1: 기본 온프레미스 Oracle Exadata Database Machine DB 이름
  • 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 파일에 HOST에 대한 서버 이름이 있는 TNS 항목이 있는 경우 대신 호스트에 대한 IP 주소를 사용하도록 해당 항목의 서버 이름을 변경합니다. 서버 이름을 IP 주소로 분석할 온-프레미스 환경과 클라우드 환경 간에 DNS가 없으므로 IP 주소가 사용됩니다.

Oracle RAC(Oracle Real Application Clusters) 구성은 스캔 리스너 이름을 분석할 수 없으므로 모든 노드를 나열하는 주소 목록을 사용해야 합니다. 이러한 항목은 나중에 추가됩니다. RMAN(Oracle Recovery Manager) 이 항상 동일한 노드에 접속되도록 초기 인스턴스는 TNS 항목에 하나의 IP만 나열해야 합니다.

다음 예를 사용하여 구성과 관련된 값을 바꿉니다.

  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의 그리드 홈 노드 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 홈 노드 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. 루트 사용자로 온-프레미스 시스템의 TCP 소켓 크기를 확인합니다.
    /sbin/sysctl -a | egrep net.core.[w,r]mem_max
    출력은 다음과 비슷합니다:
    net.core.rmem_max = 4194304 
    net.core.wmem_max = 2097152
  2. 루트 사용자로 클라우드 인스턴스에 대한 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에 대한 /etc/sysctl.conf 파일 설정을 134217728로 편집합니다.