데이터베이스에 접속

VM에 연결한 후 Data Infrastructure의 데이터베이스에 연결하고 Oracle Net Services를 사용하여 원격으로 연결할 수 있습니다.

데이터베이스에 접속하기 전에 운영체제 액세스가 필요한 경우 SSH를 사용하여 VM에 접속합니다. 클라이언트로부터의 원격 데이터베이스 액세스가 필요한 경우 Oracle Net Services를 사용합니다.

VM에 접속한 후 데이터베이스에 접속

VM에 접속한 후 운영 체제 명령을 사용하여 데이터베이스를 식별하고 VM에 접속할 수 있습니다.

  1. VM에 opc 사용자로 연결합니다.

    자세한 단계는 Connect to a VM with SSH을 참조하십시오.

  2. oracle 사용자로 전환합니다.

    sudo su - oracle
  3. Oracle Grid Infrastructure 홈 디렉토리 아래에 있는 srvctl 유틸리티를 사용하여 VM 클러스터의 데이터베이스를 나열합니다.

    grid-home/bin/srvctl config database -v
  4. 액세스하려는 데이터베이스의 데이터베이스 Instance를 식별합니다.

    grid-home/bin/srvctl status database -d <dbname>
  5. 액세스하려는 데이터베이스에 대한 환경 설정을 구성합니다.

    . oraenv

    프롬프트가 나타나면 데이터베이스의 Oracle SID(시스템 식별자)를 입력합니다.

    ORACLE_SID = [oracle] ? <dbname>
  6. ORACLE_SID 환경 변수를 액세스하려는 데이터베이스 인스턴스로 설정합니다.

    export ORACLE_SID=<dbname1>
  7. 선택적으로 srvctl 명령을 사용하여 데이터베이스에 대한 자세한 정보를 표시합니다.

    srvctl config database -d <dbname>
  8. SQL*Plus를 사용하여 데이터베이스에 연결합니다.

    sqlplus / as sysdba

Oracle Net Services를 사용하여 데이터베이스에 연결

Oracle Net Services를 사용하여 Data Infrastructure의 데이터베이스에 원격으로 연결할 수 있습니다.

Data Infrastructure는 Oracle Grid Infrastructure를 사용하기 때문에 SCAN(단일 클라이언트 액세스 이름) 연결을 사용하여 Oracle Net Services 연결을 설정할 수 있습니다. SCAN은 클라이언트가 VM 클러스터에서 실행되는 데이터베이스 인스턴스에 액세스할 수 있는 일관된 방식을 제공합니다.

기본적으로 SCAN은 세 개의 VIP(가상 IP 주소)와 연관됩니다. 각 SCAN VIP는 Oracle Net Services를 사용하는 데이터베이스 연결에 대한 연결 끝점을 제공하는 SCAN 리스너와 연관됩니다. 가용성을 최대화하기 위해 Oracle Grid Infrastructure는 사용 가능한 VM 클러스터 노드에 SCAN VIP 및 SCAN 리스너를 분산합니다. 노드가 종료되거나 실패하면 SCAN VIP 및 SCAN 리스너가 사용 가능한 노드로 자동으로 이전됩니다.

Oracle AI Database 클라이언트에는 SCAN 연결을 사용하여 VM 클러스터에서 실행되는 데이터베이스를 서비스할 수 있는 안정적인 연결 엔드포인트 세트가 있습니다.

SCAN 리스너는 노드 리스너라고도 하는 VM 클러스터의 모든 노드에서 실행되는 Oracle Net 리스너에 더해집니다. Oracle Net Services 연결이 SCAN 연결을 통해 이루어지면 SCAN 리스너는 노드 리스너 중 하나로 연결을 라우팅하고 연결에서 더 이상 재생하지 않습니다. 리스너 가용성, 데이터베이스 Instance 배치 및 작업 로드 분산을 비롯한 여러 요인의 조합에 따라 각 연결을 수신하는 노드 리스너가 결정됩니다.

이 설명서는 Oracle Net Services를 사용하여 Data Infrastructure의 데이터베이스에 연결하기 위한 기본 요구 사항을 제공합니다.

Oracle Net Services를 사용하여 데이터베이스에 연결하기 위한 필수 조건

SCAN을 사용하여 데이터베이스에 연결

SCAN 리스너를 사용하여 Oracle Net Services 연결을 생성하려면 다음 접근 방법 중 하나를 선택합니다.

모든 SCAN VIP를 참조하는 Connect Descriptor를 사용하여 데이터베이스에 연결

여러 SCAN 리스너를 사용하여 연결 기술자를 설정할 수 있습니다.

이 접근 방식을 사용하려면 모든 SCAN VIP 주소를 제공해야 하며 Oracle Net Services가 사용 가능한 SCAN 리스너에 연결할 수 있습니다.

  1. 다음 템플리트를 사용하여 Net Services alias를 정의합니다.

    <alias-name> = (DESCRIPTION=
      (ADDRESS_LIST=
        (ADDRESS=(PROTOCOL=tcp)(HOST=<SCAN-VIP-1>)(PORT=1521))
        (ADDRESS=(PROTOCOL=tcp)(HOST=<SCAN-VIP-2>)(PORT=1521))
        (ADDRESS=(PROTOCOL=tcp)(HOST=<SCAN-VIP-3>)(PORT=1521)))
      (CONNECT_DATA=(<sid-or-service-entry>)))

    설명:

    • <alias-name>은 별칭을 식별하는 데 사용하는 이름입니다.
    • <SCAN-VIP-1>, <SCAN-VIP-2><SCAN-VIP-3>는 SCAN VIP에 대한 IP 주소입니다.
    • <sid-or-service-entry>은 다음 형식 중 하나를 사용하여 데이터베이스 SID 또는 서비스 이름을 식별합니다.
      • SID=sid-name. 예: SID=DBNAME1.
      • SERVICE_NAME=service-name. 예: SERVICE_NAME=pdb1.example.com.

기본적으로 Oracle Net Services는 SCAN 리스너 간의 로드 균형을 맞추기 위해 주소 리스트의 주소 중 하나를 무작위로 선택합니다.

사용자 정의 SCAN 이름을 참조하는 연결 기술자를 사용하여 데이터베이스에 연결

사용자 정의 SCAN 이름을 사용하여 연결 기술자를 설정할 수 있습니다.

이 접근 방식을 사용하여 DNS(도메인 이름 서버)에서 사용자정의 SCAN 이름을 정의합니다. 사용자 정의 SCAN 이름은 세 개의 SCAN VIP 주소로 분석됩니다.

  1. 다음 템플리트를 사용하여 사용자 정의 SCAN 이름을 참조하는 Net 서비스 Alias를 정의합니다.

    <alias-name> = (DESCRIPTION=
      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=<scan-name>)(PORT=1521)))
      (CONNECT_DATA=(<sid-or-service-entry>)))

    설명:

    • <alias-name>은 별칭을 식별하는 데 사용하는 이름입니다.
    • <scan-name>은 사용자 정의 SCAN 이름입니다.
    • <sid-or-service-entry>은 다음 형식 중 하나를 사용하여 데이터베이스 SID 또는 서비스 이름을 식별합니다.
      • SID=sid-name. 예: SID=DBNAME1.
      • SERVICE_NAME=service-name. 예: SERVICE_NAME=pdb1.example.com.
  2. 또는 간단한 연결(Easy Connect) 방식을 사용하여 다음 형식으로 연결 기술자를 지정합니다.

    <scan-name>:1521/<sid-or-service-entry>

    예:

    dbscan.example.com:1521/DBNAME1

    또는

    dbscan.example.com:1521/pdb1.example.com

노드 리스너를 사용하여 데이터베이스에 연결

SCAN 리스너를 사용하지 않는 연결 기술자를 사용하여 데이터베이스에 연결하려면 연결을 노드 리스너로 직접 경로 지정합니다.

이 방법을 사용하면 SCAN에서 제공하는 고가용성 및 로드 밸런싱을 포기할 수 있습니다. 그러나 특정 노드 또는 네트워크 인터페이스에 대한 연결을 지정하려는 경우 이 방법이 유용할 수 있습니다.

  1. 다음 템플리트를 사용하여 노드를 직접 참조하는 Net Services alias를 정의합니다.

    <alias-name> = (DESCRIPTION=
      (CONNECT_TIMEOUT=<timeout>)
      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=<node>)(PORT=1521)))
      (CONNECT_DATA=(<sid-or-service-entry>)))

    설명:

    • <alias-name>은 별칭을 식별하는 데 사용하는 이름입니다.
    • <timeout>는 TCP 시간 초과를 기다리지 않고 연결 시도를 종료할 수 있는 시간 초과 기간(초)을 지정합니다. (CONNECT_TIMEOUT=timeout) 매개변수는 선택 사항입니다.
    • <node>은 사용할 VM의 호스트 이름 또는 IP 주소입니다.
    • <sid-or-service-entry>은 다음 형식 중 하나를 사용하여 데이터베이스 SID 또는 서비스 이름을 식별합니다.
      • SID=sid-name. 예: SID=DBNAME1.
      • SERVICE_NAME=service-name. 예: SERVICE_NAME=pdb1.example.com.
  2. 또는 간단한 연결(Easy Connect) 방식을 사용하여 다음 형식으로 연결 기술자를 지정합니다.

    <node>:1521/<sid-or-service-entry>

    예:

    node01.example.com:1521/DBNAME1

    또는

    node01.example.com:1521/pdb1.example.com