구성

업무 및 보안 요구 사항에 따라 Oracle Notification Server 프록시를 구성합니다.

Oracle Notification Server 프록시 설정

전자 지갑 및 인증서 없이 또는 SSL 인증서 및 전자 지갑을 사용하여 Oracle Notification Server 프록시를 설정할 수 있습니다.
이 솔루션에서는 다음과 같은 Oracle Notification Server 프록시 구성 파일 매개변수가 사용됩니다.
ExtendedSecurityHeader=<header-name>

이제 게시자가 제공한 액세스 헤더가 통지에 포함될 수 있습니다. CN(공통 이름)이라는 인증서의 필드는 인증서 소유자에게 이름을 제공합니다. 클라이언트의 DN 부분(식별 이름)은 각 클라이언트 연결과 함께 저장됩니다. 알림이 서버에 도착하면 해당 CN이 ExtendedSecurityHeader에 대해 구성된 헤더 이름에 나열된 경우에만 클라이언트가 알림을 받을 수 있습니다.

ExtendedSecurityMode=<mode>

none: 아무것도 확인하지 마십시오. 고객은 항상 모든 알림을 받습니다.

strict: 통지 액세스 헤더(있는 경우)에 대해 클라이언트를 확인합니다. 그렇지 않으면 클라이언트가 통지를 수신하지 않습니다.

allowunsecuresubscriber=false

보안 연결이 정상적으로 구성된 경우 비보안 연결 시도가 거부됩니다. 이 매개변수를 yes로 설정하면 피어가 암호화 없이도 계속 접속할 수 있지만 이 경우 게시가 허용되지 않습니다.

보안 연결이 구성되지 않은 경우 이 매개변수는 무시됩니다.

  1. 옵션 1: SSL 전자 지갑 및 인증서 없이 Oracle Notification Server 프록시를 구성하여 Oracle Notification Server 프록시와 Oracle RAC 노드의 Oracle Notification Server 간에 통신을 설정합니다. 다음 단계에 따라 전자 지갑 및 인증서 없이 Oracle Notification Server 프록시를 구성합니다.
    1. 접속 관리자 호스트에서 Oracle Notification Server 프록시를 설정합니다.
    2. 다음 내용으로 $ORACLE_HOME/opmn/conf/onsproxy.properties 파일을 만듭니다.
      setConfigHome:/u01/app/oracle/product/23ai/client_1
      debug:true
      addConfig: localport=6100
      addConfig: remoteport=6200
      addConfig: allowunsecuresubscriber=true
      addConfig: extendedsecuritymode=partial
      addConfig: extendedsecurityheader=none
      addNetwork: nodes.aaa=10.0.1.13:6200,10.0.1.95:6200
      addSubscription: ("eventType=database/event/service")
      addSubscription: ("eventType=database/event/host")
    3. $ORACLE_HOME/opmn/conf/ons.config에 다음 내용이 있는지 확인합니다.
      # Generated by ONS Proxy
      allowpublish=127.0.0.1,::1
      extendedsecurityheader=none
      allowunsecuresubscriber=true
      localport=6100
      remoteport=6200
      extendedsecuritymode=partial
    4. CMAN 호스트에서 Oracle Notification Server 프록시를 시작하고 상태를 확인합니다.
      [oracle@cman-host ~]$ onsctl proxy start
      Dec 17, 2024 10:35:20 PM oracle.ons.proxy.Proxy$ProxyConfig <init>
      INFO: Loading configuration: /u01/app/oracle/product/23ai/client_1/opmn/conf/onsproxy.properties
      Dec 17, 2024 10:35:21 PM oracle.ons.proxy.Proxy setDefaultConfigHome
      INFO: ORACLE_CONFIG_HOME set to /u01/app/oracle/product/23ai/client_1
      Dec 17, 2024 10:35:21 PM oracle.ons.proxy.Proxy validateProxyConfig
      INFO: Validating configuration
      Dec 17, 2024 10:35:21 PM oracle.ons.proxy.Proxy updateProxyConfig
      INFO: Updating configuration
      Dec 17, 2024 10:35:21 PM oracle.ons.proxy.Proxy initProxy
      INFO: Initializing
      onsctl proxy: ons proxy started
    5. cman-host에서 Oracle Notification Server 프록시를 시작할 때 데이터베이스에 설정된 연결을 확인합니다. 클라이언트 연결 섹션에서 Oracle CMAN 호스트가 Oracle RAC 데이터베이스에 연결되었는지 확인합니다. 다음 예에서는 Oracle Grid Infrastructure에서 실행되는 Oracle Notification Server에 대한 CMAN 연결 후 잘린 출력을 보여줍니다. 두 Oracle RAC 시스템의 10.0.0.90에서 연결을 확인해야 합니다. 이 접속은 SSL 인증서 및 전자 지갑 없이 수행되었으므로 Oracle CMAN 접속에 CN=cman-host 항목이 표시되지 않습니다.
      [grid ~]$ onsctl debug 
      Client connections: (8)     
      ID            CONNECTION ADDRESS              PORT   FLAGS  SNDQ REF PHA SUB
      -------- --------------------------------------- ----- ------- ---- --- --- ---
             0                                internal     0 000044a    0   1  IO   1
             2                               127.0.0.1 62766 000041a    0   1  IO   1
             1                               127.0.0.1 62770 000041a    0   1  IO   1
             3                               127.0.0.1 62768 000041a    0   1  IO   1
             4                               127.0.0.1 62796 000041a    0   1  IO   1
             7                               127.0.0.1 62838 000041a    0   1  IO   0
            26                        ::ffff:10.0.0.90 21876 008042a    0   1  IO   2 
      request                               127.0.0.1 12334 0000e1a    0   1  IO   0
  2. 옵션 2: 보안을 위해 전자 지갑 및 SSL 인증서를 사용하여 Oracle Notification Server 프록시를 설정합니다. SSL에는 클라이언트-서버 연결을 위해 자체 서명된 인증서 또는 신뢰할 수 있는 공급자의 CA(인증 기관)가 필요합니다. SSL은 공개 및 개인 키를 사용하여 자격 증명 및 최종 웹 서버의 자격 증명을 확인하는 디지털 여권 역할을 합니다. 두 ID가 모두 확인되면 SSL에서 HTTPS를 통한 안전한 연결을 허용합니다. 이 프로세스는 SSL 인증서를 사용하여 수행됩니다.

    주:

    Verisign과 같은 인증 기관에서 발급한 사용자 인증서를 사용하는 경우 인증서를 클라이언트에 롤아웃할 필요가 없습니다. 사용자 인증서를 추가하기 전에 체인의 CA 루트 인증서 및 중간 인증서를 전자 지갑에 신뢰할 수 있는 인증서로 추가합니다.
    1. Oracle RAC 노드에서 Oracle wallet 및 자체 서명된 인증서를 생성합니다. root 사용자로 Oracle RAC 노드 중 하나에서 다음 명령을 실행합니다.
      mkdir -p /u01/app/wallet_dir
      chown grid:oinstall /u01/app/wallet_dir
      chmod 750 /u01/app/wallet_dir
    2. grid 사용자로 다음 명령을 실행합니다.
      $ORACLE_HOME/bin/orapki wallet create -wallet /u01/app/wallet_dir -pwd <Replace With Your Password> -auto_login
      $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/wallet_dir
      $ORACLE_HOME/bin/orapki wallet add -wallet /u01/app/wallet_dir -pwd <Replace With Your Password> -dn "CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US"  -keysize 2048 -self_signed -validity 365
      $ORACLE_HOME/bin/orapki wallet add -wallet /u01/app/wallet_dir -pwd <Replace With Your Password> -dn "CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US"  -keysize 2048 -self_signed -validity 365
      $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/wallet_dir
      [grid@racnode1 ~]$ $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/wallet_dir
      Oracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      Requested Certificates:
      User Certificates:
      Subject:        CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:        CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US
      Trusted Certificates:
      Subject:        CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US
      Subject:        CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
    3. Connection Manager 호스트에 전자 지갑 및 자체 서명된 인증서를 생성합니다. CMAN 환경에서 실행되도록 Oracle Notification Server 프록시를 구성하고 CMAN 및 RAC 노드에서 실행되는 Oracle Notification Server 서버와 통신하는 경우 보안 통신을 위해 SSL 인증서가 필요합니다.

      주:

      환경 비밀번호 정책에 따라 비밀번호를 변경합니다.
    4. 다음은 SSL 인증서로 Oracle Notification Server 프록시를 구성하기 위한 단계별 프로세스입니다.
      root 유저로 다음 명령을 실행합니다:
      mkdir -p /u01/app/oracle/wallet_dir
      chown oracle:oinstall /u01/app/oracle/wallet_dir
      chmod 750 /u01/app/oracle/wallet_dir
      oracle 사용자로 다음 명령을 실행합니다.
      $ORACLE_HOME/bin/orapki wallet create -wallet /u01/app/oracle/wallet_dir -pwd <Replace With Your Password> -auto_login
      $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/oracle/wallet_dir
      자체 서명된 인증서를 oracle 사용자로 만듭니다.
      $ORACLE_HOME/bin/orapki wallet add -wallet /u01/app/oracle/wallet_dir -pwd <Replace With Your Password> "CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US"  -keysize 2048 -self_signed -validity 365
      $ORACLE_HOME/bin/orapki wallet add -wallet /u01/app/oracle/wallet_dir -pwd REPLACE WITH YOUR PASSWORD> -dn "CN=cman-host,OU=ST,O=Oracle,ST=California,C=US"  -keysize 2048 -self_signed -validity 365
      전자 지갑이 생성된 후 전자 지갑을 oracle 유저로 표시합니다. 인증서가 생성되지 않았으므로 아직 항목이 표시되지 않습니다.
      [oracle@cman-host ~] $ $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/oracle/wallet_dir
      Oracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      Requested Certificates:
      User Certificates:
      Subject:        CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:        CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Trusted Certificates:
      Subject:        CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Subject:        CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
    5. Google Cloud의 클라이언트 시스템에서 전자 지갑 및 자체 서명된 인증서를 생성합니다. CMAN 호스트의 Oracle Notification Server 프록시가 SSL 전자 지갑으로 구성되었으므로, 보안 연결을 설정하려면 자체 서명된 SSL 인증서로 구성된 전자 지갑도 클라이언트 시스템에 있어야 합니다. 이 경우 Oracle 클라이언트가 클라이언트 호스트에 설치되어 전자 지갑을 생성하고 관리하는 데 필요한 도구를 제공합니다.
      root 유저로 다음 명령 실행:
      mkdir -p /u01/app/client/wallet_dir
      chown oracle:oinstall /u01/app/client/wallet_dir
      chmod 750 /u01/app/client/wallet_dir
      oracle 사용자로 다음 명령을 실행합니다.
      $ORACLE_HOME/bin/orapki wallet create -wallet /u01/app/client/wallet_dir -pwd <Replace With Your Password>-auto_login
      $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/client/wallet_dir
      자체 서명된 인증서를 oracle 사용자로 만듭니다.
      $ORACLE_HOME/bin/orapki wallet add -wallet /u01/app/client/wallet_dir -pwd <Replace With Your Password> -dn "CN=client-host.c.oraoperator-on-gke.internal,OU=ST,O=Oracle,ST=California,C=US" -keysize 2048 -self_signed -validity 365
      $ORACLE_HOME/bin/orapki wallet add -wallet /u01/app/client/wallet_dir -pwd <Replace With Your Password>-dn "CN=client-host,OU=ST,O=Oracle,ST=California,C=US" -keysize 2048 -self_signed -validity 365
      전자 지갑이 생성된 후 전자 지갑을 oracle 유저로 표시합니다. 인증서가 생성되지 않았으므로 아직 항목이 표시되지 않습니다.
      [oracle@client-host ~]$ $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/client/wallet_dir
      Oracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      Requested Certificates:
      User Certificates:
      Subject:       CN=client-host.c.oraoperator-on-gke.internal,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=client-host,OU=ST,O=Oracle,ST=California,C=US
      Trusted Certificates:
      Subject:       CN=client-host.c.oraoperator-on-gke.internal,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=client-host,OU=ST,O=Oracle,ST=California,C=US
    6. Oracle RAC에서 전자 지갑 및 SSL 인증서를 설정하고 CMAN 및 클라이언트 시스템을 구성한 후 다음 절차를 사용하여 Connection Manager 및 Oracle RAC 노드 1에서 자체 서명된 인증서를 내보냅니다.
      Oracle RAC 노드 1에서 grid 사용자로 다음 명령을 실행합니다.
      $ORACLE_HOME/bin/orapki wallet export -wallet /u01/app/wallet_dir -pwd <Replace With Your Password> -dn "CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US" -cert "/tmp/scan_app1.crt"
      $ORACLE_HOME/bin/orapki wallet export -wallet /u01/app/wallet_dir -pwd <Replace With Your Password> -dn "CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US" -cert "/tmp/scan_app2.crt"
      Oracle RAC 노드 1에서 oracle 사용자로 다음 명령을 실행합니다.
      $ORACLE_HOME/bin/orapki wallet export -wallet /u01/app/oracle/wallet_dir -pwd <Replace With Your Password> -dn "CN=cman-host,OU=ST,O=Oracle,ST=California,C=US" -cert "/tmp/cman1.crt"
      $ORACLE_HOME/bin/orapki wallet export -wallet /u01/app/oracle/wallet_dir -pwd <Replace With Your Password> -dn "CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US" -cert "/tmp/cman2.crt"
    7. 인증서를 내보낸 후 CMAN Oracle Notification Server 프록시가 Oracle RAC Oracle Notification Server와 핸드셰이크할 수 있도록 인증서를 가져옵니다.
      Connection Manager 전자 지갑을 Oracle RAC 노드 1에 복사하고 인증서를 임포트합니다.
      scp /tmp/cman* grid@racnode1.sub12161926541.onsproxyvcn.oraclevcn.com:/tmp/
      $ORACLE_HOME/bin/orapki wallet add -wallet  /u01/app/wallet_dir  -pwd <Replace With Your Password> -trusted_cert -cert /tmp/cman1.crt
      $ORACLE_HOME/bin/orapki wallet add -wallet  /u01/app/wallet_dir  -pwd <Replace With Your Password> -trusted_cert -cert /tmp/cman2.crt
      Oracle RAC Node1의 전자 지갑을 CMAN 호스트로 복사하고 인증서를 가져옵니다.
      scp grid@racnode1.sub12161926541.onsproxyvcn.oraclevcn.com:/tmp/scan_app* /tmp/
      $ORACLE_HOME/bin/orapki wallet add -wallet  /u01/app/oracle/wallet_dir  -pwd <Replace With Your Password> -trusted_cert -cert /tmp/scan_app1.crt
      $ORACLE_HOME/bin/orapki wallet add -wallet  /u01/app/oracle/wallet_dir  -pwd <Replace With Your Password> -trusted_cert -cert /tmp/scan_app2.crt
    8. Oracle RAC 노드 1에서 Oracle RAC 노드 2로 전자 지갑 복사:
      Oracle RAC 노드 1에서 root 사용자로 다음 명령을 실행합니다.
      mkdir -p /u01/app/wallet_dir
      chown grid:oinstall /u01/app/wallet_dir
      chmod 750 /u01/app/wallet_dirscp grid@racnode1.sub12161926541.onsproxyvcn.oraclevcn.com:/u01/app/wallet_dir/* /u01/app/wallet_dir
      Oracle RAC 노드 1에서 grid 사용자로 다음 명령을 실행합니다.
      [grid@racnode1 ~]$ $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/wallet_dir
      Oracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      Requested Certificates:
      User Certificates:
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US
      Trusted Certificates:
      Subject:       CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      [grid@racnode2 ~]$ $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/wallet_dir
      Oracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      Requested Certificates:
      User Certificates:
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=USTrusted Certificate
      Subject:       CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
    9. 다음 단계에 따라 Google Cloud의 클라이언트 시스템에서 OCI의 CMAN 시스템으로 전자 지갑을 복사합니다.
      다음 명령을 실행하여 client-host 시스템에서 전자 지갑을 익스포트합니다.
      $ORACLE_HOME/bin/orapki wallet export -wallet /u01/app/client/wallet_dir -pwd <Replace With Your Password> -dn "CN=client-host,OU=ST,O=Oracle,ST=California,C=US" -cert "/tmp/cert_app1.crt"
      $ORACLE_HOME/bin/orapki wallet export -wallet /u01/app/client/wallet_dir -pwd <Replace With Your Password> -dn "CN=client-host.c.oraoperator-on-gke.internal,OU=ST,O=Oracle,ST=California,C=US" -cert "/tmp/cert_app2.crt"
      /tmp 디렉토리 아래의 client-host에서 cman-host로 전자 지갑을 복사합니다.
      scp -i /tmp/gcp  oracle@client-host.c.oraoperator-on-gke.internal:/tmp/cert_app* /tmp/
      CMAN 전자 지갑을 cman-host에서 /tmp 디렉토리 아래의 client-host로 복사합니다.
      scp -i /tmp/gcp  /tmp/cman* oracle@client-host.c.oraoperator-on-gke.internal:/tmp/
    10. 다음 명령을 실행하여 cman-host 시스템에서 client-host의 전자 지갑을 임포트합니다.
      $ORACLE_HOME/bin/orapki wallet add -wallet  /u01/app/oracle/wallet_dir  -pwd <Replace With
              Your Password> -trusted_cert -cert /tmp/cert_app1.crt
      $ORACLE_HOME/bin/orapki wallet add -wallet  /u01/app/oracle/wallet_dir  -pwd <Replace With
              Your Password> -trusted_cert -cert /tmp/cert_app2.crt  [oracle@cman-host ~]$
      $ORACLE_HOME/bin/orapki wallet display -wallet
            /u01/app/oracle/wallet_dirOracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      Requested Certificates:
      User Certificates:
      Subject:       CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Trusted Certificates:
      Subject:       CN=client-host.c.oraoperator-on-gke.internal,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=client-host,OU=ST,O=Oracle,ST=California,C=US
      다음 명령을 실행하여 cman-host의 전자 지갑을 client-host 시스템으로 임포트합니다.
      $ORACLE_HOME/bin/orapki wallet add -wallet  /u01/app/client/wallet_dir  -pwd <Replace With Your Password> -trusted_cert -cert /tmp/cman1.crt
      $ORACLE_HOME/bin/orapki wallet add -wallet  /u01/app/client/wallet_dir  -pwd <Replace With Your Password> -trusted_cert -cert /tmp/cman2.crt
      
      [oracle@client-host ~]$ $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/client/wallet_dir
      Oracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      
      Requested Certificates:
      User Certificates:
      Subject:      CN=client-host.c.oraoperator-on-gke.internal,OU=ST,O=Oracle,ST=California,C=US
      Subject:      CN=client-host,OU=ST,O=Oracle,ST=California,C=USTrusted Certificates:
      Subject:      CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Subject:      CN=client-host.c.oraoperator-on-gke.internal,OU=ST,O=Oracle,ST=California,C=US
      Subject:      CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:      CN=client-host,OU=ST,O=Oracle,ST=California,C=US
    11. Oracle RAC 노드에서 Oracle Notification Server를 설정합니다.
      grid 사용자로 다음 명령을 실행하여 전자 지갑의 CN과 일치하지 않는 접속을 Oracle Notification Server에 허용하지 않고 신뢰할 수 있는 클라이언트에 대한 접속만 허용합니다.
      $ORACLE_HOME/bin/crsctl modify res ora.ons -attr "ALLOW_UNSECURE_SUBSCRIBER=no" -unsupported
      $ORACLE_HOME/bin/srvctl modify nodeapps -clientdata /u01/app/wallet_dir/cwallet.sso
      $ORACLE_HOME/opmn/bin/onsctl reload
      이 명령을 실행하여 Oracle RAC 노드 1 및 Oracle RAC 노드 2에서 grid 사용자로 구성을 확인합니다.
      [grid@racnode1 ~]$ cat /u01/app/23.0.0.0/grid/opmn/conf/ons.config.racnode1
      usesharedinstall=true
      allowgroup=true
      localport=6100                 # line added by Agent
      remoteport=6200                              # line added by Agent
      nodes=racnode1-priv:6200,racnode2-priv:6200                               # line added by Agent
      walletfile=/u01/app/grid/crsdata/racnode1/onswallet/                          # line added by Agent
      allowunsecuresubscriber=no                     # line added by Agent
      
      [grid@racnode2 ~]$ cat /u01/app/23.0.0.0/grid/opmn/conf/ons.config.racnode2
      usesharedinstall=true
      allowgroup=true
      localport=6100                 # line added by Agent
      remoteport=6200                              # line added by Agent
      nodes=racnode1-priv:6200,racnode2-priv:6200                               # line added by Agent
      walletfile=/u01/app/grid/crsdata/racnode2/onswallet/                          # line added by Agent
      allowunsecuresubscriber=no                     # line added by Agent
      이 명령을 실행하여 grid 사용자로 두 Oracle RAC 노드에서 전자 지갑을 확인합니다.
      [grid@racnode1 ~]$ $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/grid/crsdata/racnode1/onswallet
      Oracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      Requested Certificates:
      User Certificates:
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=USTrusted Certificates:
      Subject:       CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      
      [grid@racnode2 ~]$ $ORACLE_HOME/bin/orapki wallet display -wallet /u01/app/grid/crsdata/racnode2/onswallet
      Oracle PKI Tool Release 23.0.0.0.0 - Production
      Version 23.0.0.0.0
      Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
      Requested Certificates:
      User Certificates:
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      ubject:        CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=USTrusted Certificates:
      Subject:       CN=racnode-scan,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
      Subject:       CN=racnode-scan.sub12161926541.onsproxyvcn.oraclevcn.com,OU=ST,O=Oracle,ST=California,C=US
  3. 접속 관리자 호스트에서 Oracle Notification Server 프록시를 설정합니다.
    다음 내용으로 $ORACLE_HOME/opmn/conf/onsproxy.properties 파일을 만듭니다.
    setConfigHome: /u01/app/oracle/product/23ai/client_1
    debug: true
    addConfig: localport=6100
    addConfig: remoteport=6200
    addConfig: walletfile=/u01/app/oracle/wallet_dir
    addNetwork: nodes.aaa=10.0.1.13:6200,10.0.1.95:6200|walletfile=/u01/app/oracle/wallet_dir/cwallet.sso
    addSubscription: ("eventType=database/event/service")
    addSubscription: ("eventType=database/event/host")
    다음 내용으로 $ORACLE_HOME/opmn/conf/ons.config를 생성합니다.
    # Generated by ONS Proxy
    allowpublish=127.0.0.1,::1
    extendedsecurityheader=tenant_id
    allowunsecuresubscriber=false
    walletfile=/u01/app/oracle/wallet_dir
    localport=6100
    remoteport=6400
    =strict
  4. 데이터베이스에 설정된 연결을 확인합니다. Oracle Notification Server 프록시가 cman-host에서 시작될 때 데이터베이스 끝에 설정된 연결을 확인합니다.
  5. 테넌트 ID클라이언트 호스트 시스템 이름으로 업데이트합니다. SYSDBA 권한으로 SQLPLUS에 로그인하고 이 경우 클라이언트 호스트 시스템 client-host의 이름으로 테넌트 ID를 업데이트합니다.
  6. SYSDBA 권한으로 SQLPLUS에 로그인하고 테넌트 ID클라이언트 호스트 시스템 이름(예: 이 경우 client-host)으로 업데이트합니다.

    주:

    클라이언트 전자 지갑 CN에 사용된 이름과 일치하는지 확인합니다.
    SQL> alter session set container=ORCLPDB;                             
    Session altered                                                 
    SQL> alter pluggable database orclpdb tenant_id = 'client-host';
    Pluggable database altered.                                     
    SQL> select con_id, name, tenant_id from v$pdbs where name = 'ORCLPDB';
        CON_ID     NAME              TENANT_ID                           
    ----------     -------------   ------------------------
              3           ORCLPDB                 client-host 

Oracle RAC 데이터베이스 서비스 생성

Oracle RAC 데이터베이스 서비스를 만들고 Oracle RAC 호스트에서 Oracle RAC 데이터베이스로의 연결을 테스트합니다. 클라이언트 시스템에서 응용 프로그램을 시작하여 CMAN 호스트에서 실행되는 Oracle Notification ServerOracle RAC 및 ONS 연결을 사용하여 Oracle RAC 데이터베이스에 SQL로 연결합니다. 데이터베이스 서버에서 서비스 시작 및 중지 이벤트를 시뮬레이트하고 클라이언트에서 수신된 FAN 이벤트를 확인합니다.

다음 단계에 따라 데이터베이스 서비스를 생성하고 시작합니다.
  1. 데이터베이스 서비스를 만들려면 oracle 사용자로서 다음 명령을 실행합니다.
    su - oracle
    srvctl add service -d ORCLCDB_8p7_phx -preferred ORCLCDB1,ORCLCDB2 -s raconssvc2 -pdb ORCLPDB  -notification TRUE
  2. 데이터베이스 서비스를 시작하려면 다음 명령을 실행하십시오.
    [oracle@racnode1 ~]$ srvctl start service -d ORCLCDB_8p7_phx -s raconssvc2
  3. 다음 명령을 실행하여 system 사용자의 비밀번호를 재설정합니다. 환경 정책에 따라 <PASSWORD>를 사용합니다.
    SQL> alter user system identified by <PASSWORD>;User altered.
  4. 다음 단계에 따라 cman-host 시스템에서 데이터베이스에 연결합니다.
    [oracle@cman-host ~]$ $ORACLE_HOME/bin/sqlplus system/<PASSWORD>@//cman-host.sub12161926540.onsproxyvcn.oraclevcn.com:1521/raconssvc2.sub12161926541.onsproxyvcn.oraclevcn.com
    SQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Thu Dec 19 01:49:12 2024
    Version 23.5.0.24.07
    Copyright (c) 1982, 2024, Oracle.  All rights reserved.
    Last Successful login time: Wed Dec 18, 2024, 00:59:27 +00:00
    Connected to:Oracle Database 23ai EE Extreme Perf Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
    Version 23.6.0.24.10
    SQL>
  5. 다음 단계에 따라 client-host 시스템에서 데이터베이스에 연결합니다.
    [oracle@client-host ~]$ $ORACLE_HOME/bin/sqlplus system//<PASSWORD>@//cman-host.sub12161926540.onsproxyvcn.oraclevcn.com:1521/raconssvc2.sub12161926541.onsproxyvcn.oraclevcn.com

    주:

    다음 단계로 진행하기 전에 연결이 성공했는지 확인하십시오.

클라이언트 호스트에서 fanWatcher 구성

다음 단계에 따라 클라이언트 호스트 시스템에서 FANWatcher를 구성합니다.
  1. fanWatcher 코드를 복사하고 /tmp/app 폴더 아래의 client-host 시스템에서 스테이지합니다.
    [oracle@client-host response]$ mkdir /tmp/app
    [oracle@client-host response]$ export CLASSPATH="/tmp/app:$ORACLE_HOME/opmn/lib/ons.jar:$ORACLE_HOME/jlib/oraclepki.jar:$ORACLE_HOME/jlib/osdt_core.jar:$ORACLE_HOME/jlib/osdt_cert.jar:$ORACLE_HOME/jdbc/lib/ojdbc8.jar:."
    [oracle@client-host ~]$ cd /tmp/app/
    [oracle@client-host app]$ ls -rlt
    total 8
    -rw-r--r--. 1 oracle oinstall 6434 Dec 17 21:00 fanWatcher.java
  2. fanWatcher.java 파일을 설정합니다.
    [oracle@client-host app]$ javac fanWatcher.java
    Note: fanWatcher.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    [oracle@client-host app]$[oracle@client-host app]$
    [oracle@client-host app]$ export user=system
    [oracle@client-host app]$ export password=<PASSWORD>
    [oracle@client-host app]$ export url='jdbc:oracle:thin:@cman-host.sub12161926540.onsproxyvcn.oraclevcn.com:1521/raconssvc2' 
    [oracle@client-host app]$ $ORACLE_HOME/jdk/bin/java -Doracle.ons.walletfile=/u01/app/client/wallet_dir -classpath ${CLASSPATH} fanWatcher "nodes=cman-host.sub12161926540.onsproxyvcn.oraclevcn.com:6200"
    Subscribing to events of type:
    Opening FAN Subscriber Window ...