連線到資料庫

連線至 VM 之後,或是使用 Oracle Net Services 從遠端連線到資料基礎架構中的資料庫。

當您需要先存取作業系統,再連線至資料庫時,請使用 SSH 連線至 VM。當您需要從從屬端存取遠端資料庫時,請使用 Oracle Net Services。

連線至 VM 後連線至資料庫

連線到 VM 之後,您可以使用作業系統命令來識別資料庫以及連線至該資料庫。

  1. opc 使用者身分連線到 VM。

    如需詳細步驟,請參閱 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. 識別您要存取之資料庫的資料庫執行處理。

    grid-home/bin/srvctl status database -d <dbname>
  5. 設定您要存取之資料庫的環境設定值。

    . oraenv

    出現提示時,輸入資料庫的 Oracle 系統 ID (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 從遠端連線至資料基礎架構中的資料庫。

因為「資料基礎架構」使用 Oracle Grid Infrastructure,所以您可以使用「單一從屬端存取名稱 (SCAN)」連線來建立 Oracle Net Services 連線。SCAN 為從屬端提供一致的機制,以存取在 VM 叢集中執行的資料庫執行處理。

依照預設,SCAN 會與三個虛擬 IP 位址 (VIP) 建立關聯。每個 SCAN VIP 都與一個 SCAN 監聽器相關聯,它為使用 Oracle Net Services 的資料庫連線提供一個連線端點。為了將可用性最大化,Oracle Grid Infrastructure 會將 SCAN VIP 和 SCAN 監聽器分散到可用的 VM 叢集節點。如果節點關閉或失敗,則 SCAN VIP 和 SCAN 監聽器會自動移轉至可用的節點。

透過使用 SCAN 連線,Oracle AI Database 從屬端有一組可靠的連線端點,可以為 VM 叢集中執行的資料庫提供服務。

SCAN 監聽器除了是在 VM 叢集的每個節點上執行的 Oracle Net 監聽器之外,也稱為節點監聽器。當 Oracle Net Services 連線透過 SCAN 連線時,SCAN 監聽器會將連線遞送至其中一個節點監聽器,而且不會在連線中播放其他部分。包括監聽器可用性、資料庫執行處理位置以及工作負載分布在內的因子組合,會決定哪些節點監聽器會接收每個連線。

本文件提供使用 Oracle Net Services 連線至資料基礎架構中資料庫的基本需求。

使用 Oracle Net Services 連線至資料庫的先決條件

使用 SCAN 連線至資料庫

若要使用 SCAN 監聽器建立 Oracle Net Services 連線,您可以選取下列其中一種方法:

使用參照所有 SCAN VIP 的連線描述區連線至資料庫

您可以使用多個 SCAN 監聽器來設定連線描述區。

此方法需要您提供所有 SCAN VIP 位址,並讓 Oracle Net Services 連線至可用的 SCAN 監聽器。

  1. 使用下列範本來定義網路服務別名:

    <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 名稱的「網路服務」別名:

    <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. 或者,您也可以使用「簡易連線」方法,指定下列格式的連線描述區:

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

    舉例而言:

    dbscan.example.com:1521/DBNAME1

    或:

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

使用節點監聽器連線至資料庫

若要使用略過 SCAN 監聽器的連線描述區連線資料庫,請直接將連線遞送至節點監聽器。

透過使用此方法,您可以提供 SCAN 所提供的高可用性和負載平衡。不過,當您想要將連線導向特定節點或網路介面時,此方法可能會很有用。

  1. 使用下列樣板來定義直接參照節點的「網路服務」別名:

    <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. 或者,您也可以使用「簡易連線」方法,指定下列格式的連線描述區:

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

    舉例而言:

    node01.example.com:1521/DBNAME1

    或:

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