Amazon RDS for SQL Server 中支援連結的伺服器搭配 Oracle OLEDB - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon RDS for SQL Server 中支援連結的伺服器搭配 Oracle OLEDB

連結的伺服器搭配 RDS for SQL Server 上的 Oracle Provider for OLEDB 可讓您存取 Oracle 資料庫上的外部資料來源。您可以從遠端 Oracle 資料來源讀取資料,並針對 RDS for SQL Server 資料庫執行個體之外的遠端 Oracle 資料庫伺服器執行命令。搭配 Oracle OLEDB 使用連結的伺服器,您可以

  • 直接存取 SQL Server 以外的資料來源

  • 在沒有移動資料的情況下,使用相同查詢針對各種 Oracle 資料進行查詢

  • 跨企業生態系統對資料來源發出分散式查詢、更新、命令和交易

  • 從 Microsoft Business Intelligence 套件 (SSIS、SSRS、SSAS) 內整合與 Oracle 資料庫的連線

  • 從 Oracle 資料庫遷移到 RDS for SQL Server

在現有或新的 RDS for SQL Server 資料庫執行個體上,您可以針對 Oracle 啟動一或多個連結的伺服器。然後,您可以整合外部 Oracle 資料來源與資料庫執行個體。

支援的版本和區域

對於下列版本上的 SQL Server 標準版和企業版,RDS for SQL Server 在所有區域都支援連結的伺服器搭配 Oracle OLEDB:

  • SQL 伺服器,所有版本

  • SQL Server 2019,所有版本

  • SQL Server 2017,所有版本

下列 Oracle Database 版本支援連結的伺服器搭配 Oracle OLEDB:

  • Oracle Database 21c,所有版本

  • Oracle Database 19c,所有版本

  • Oracle Database 18c,所有版本

限制與建議

請記住,連結的伺服器搭配 Oracle OLEDB 時適用下列限制和建議:

  • 針對每個 RDS for SQL Server 資料庫執行個體,透過在安全群組中新增適用的 TCP 連接埠,以允許網路流量。例如,如果您要在 EC2 Oracle 資料庫執行個體與 RDS for SQL Server 資料庫執行個體之間設定連結的伺服器,則必須允許來自 EC2 Oracle 資料庫執行個體 IP 地址的流量。您也必須在 SQL Server 用來接聽資料庫通訊的連接埠上允許流量。如需安全群組的詳細資訊,請參閱 使用安全群組控制存取

  • 在開啟、關閉或修改選項群組中的 OLEDB_ORACLE 選項之後,執行 RDS for SQL Server 資料庫執行個體的重新啟動。選項群組狀態會針對這些事件顯示 pending_reboot,且為必要項目。

  • 僅支援使用 Oracle 資料來源的使用者名稱和密碼進行簡易身分驗證。

  • 不支援開放式資料庫連線 (ODBC) 驅動程式。僅支援最新版本的 OLEDB 驅動程式。

  • 支援分散式交易 (XA)。若要啟用分散式交易,請在資料庫執行個體的選項群組中開啟 MSDTC 選項,並確定 XA 交易已開啟。如需詳細資訊,請參閱RDS for SQL Server 中的 Microsoft Distributed Transaction Coordinator 支援

  • 不支援建立用作連接字串捷徑的資料來源名稱 (DSN)。

  • 不支援 OLEDB 驅動程式追蹤。您可以使用 SQL Server 擴充事件來追蹤 OLEDB 事件。如需詳細資訊,請參閱設定 RDS for SQL Server 中的擴充事件

  • 使用 SQL Server Management Studio (SSMS) 時,不支援存取 Oracle 連結伺服器的目錄資料夾。

啟用連結的伺服器搭配 Oracle

OLEDB_ORACLE 選項新增至 RDS for SQL Server 資料庫執行個體,來啟用連結的伺服器搭配 Oracle。請使用下列程序:

  1. 建立新的選項群組或選擇現有的選項群組。

  2. OLEDB_ORACLE 選項新增至選項群組。

  3. 選擇要使用的 OLEDB 驅動程式版本。

  4. 將選項群組與資料庫執行個體建立關聯。

  5. 重新啟動資料庫執行個體。

建立 OLEDB_ORACLE 的選項群組

若要搭配 Oracle 使用連結的伺服器,請建立選項群組,或修改對應至 SQL Server 版本和您計劃使用的資料庫執行個體版本的選項群組。若要完成此程序,請使用 AWS Management Console或 AWS CLI。

下列程序會建立 SQL Server Standard Edition 2019 的選項群組。

建立選項群組
  1. 登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/rds/ 的 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇 Option groups (選項群組)。

  3. 選擇 Create group (建立群組)。

  4. Create option group (建立選項群組) 視窗中,執行下列動作:

    1. Name (名稱) 中,輸入您 AWS 帳戶中的唯一選項群組名稱,例如 oracle-oledb-se-2019。名稱僅可包含字母、數字與連字號。

    2. 對於 Description (描述),請輸入選項群組的簡短描述,例如 OLEDB_ORACLE option group for SQL Server SE 2019。用於顯示用途的說明。

    3. 對於 Engine (引擎),請選擇 sqlserver-se

    4. 對於 Major engine version (主要引擎版本),請選擇 15.00

  5. 選擇建立

下列程序會建立 SQL Server Standard Edition 2019 的選項群組。

建立選項群組
  • 請執行下列其中一個命令:

    對於LinuxmacOS、或Unix:

    aws rds create-option-group \ --option-group-name oracle-oledb-se-2019 \ --engine-name sqlserver-se \ --major-engine-version 15.00 \ --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"

    在Windows中:

    aws rds create-option-group ^ --option-group-name oracle-oledb-se-2019 ^ --engine-name sqlserver-se ^ --major-engine-version 15.00 ^ --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"

OLEDB_ORACLE 選項新增至選項群組

接下來,使用AWS Management Console或 AWS CLI 將 OLEDB_ORACLE 選項新增至選項群組。

新增 OLEDB_ORACLE 選項
  1. 登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/rds/ 的 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇 Option groups (選項群組)。

  3. 選擇您剛建立的選項群組 (在此範例中為 oracle-oledb-se2019 年)。

  4. 選擇 Add option (新增選項)

  5. Option details (選項詳細資訊) 下,選擇 OLEDB_ORACLE 作為 Option name (選項名稱)。

  6. Scheduling (排程) 下,選擇要立即新增選項或是在下一個維護時段新增選項。

  7. 選擇 Add option (新增選項)

新增 OLEDB_ORACLE 選項
  • OLEDB_ORACLE 選項新增至選項群組。

    對於LinuxmacOS、或Unix:

    aws rds add-option-to-option-group \ --option-group-name oracle-oledb-se-2019 \ --options OptionName=OLEDB_ORACLE \ --apply-immediately

    在Windows中:

    aws rds add-option-to-option-group ^ --option-group-name oracle-oledb-se-2019 ^ --options OptionName=OLEDB_ORACLE ^ --apply-immediately

將選項群組關聯至您的資料庫執行個體

若要將 OLEDB_ORACLE 選項群組和參數群組與資料庫執行個體建立關聯,請使用 AWS Management Console 或 AWS CLI

若要完成啟用 Oracle 連結伺服器,請將您的 OLEDB_ORACLE 選項群組與新的或現有的資料庫執行個體建立關聯

您可以將 OLEDB_ORACLE 選項群組和參數群組與新的或現有的資料庫執行個體產生關聯。

使用 OLEDB_ORACLE 選項群組和參數群組建立執行個體
  • 指定建立選項群組時所使用的相同資料庫引擎類型和主要版本。

    對於LinuxmacOS、或Unix:

    aws rds create-db-instance \ --db-instance-identifier mytestsqlserveroracleoledbinstance \ --db-instance-class db.m5.2xlarge \ --engine sqlserver-se \ --engine-version 15.0.4236.7.v1 \ --allocated-storage 100 \ --manage-master-user-password \ --master-username admin \ --storage-type gp2 \ --license-model li \ --domain-iam-role-name my-directory-iam-role \ --domain my-domain-id \ --option-group-name oracle-oledb-se-2019 \ --db-parameter-group-name my-parameter-group-name

    在Windows中:

    aws rds create-db-instance ^ --db-instance-identifier mytestsqlserveroracleoledbinstance ^ --db-instance-class db.m5.2xlarge ^ --engine sqlserver-se ^ --engine-version 15.0.4236.7.v1 ^ --allocated-storage 100 ^ --manage-master-user-password ^ --master-username admin ^ --storage-type gp2 ^ --license-model li ^ --domain-iam-role-name my-directory-iam-role ^ --domain my-domain-id ^ --option-group-name oracle-oledb-se-2019 ^ --db-parameter-group-name my-parameter-group-name
修改執行個體並關聯 OLEDB_ORACLE 選項群組
  • 請執行下列其中一個命令:

    對於LinuxmacOS、或Unix:

    aws rds modify-db-instance \ --db-instance-identifier mytestsqlserveroracleoledbinstance \ --option-group-name oracle-oledb-se-2019 \ --db-parameter-group-name my-parameter-group-name \ --apply-immediately

    在Windows中:

    aws rds modify-db-instance ^ --db-instance-identifier mytestsqlserveroracleoledbinstance ^ --option-group-name oracle-oledb-se-2019 ^ --db-parameter-group-name my-parameter-group-name ^ --apply-immediately

修改 OLEDB 提供者屬性

您可以檢視和變更 OLEDB 提供者的屬性。只有 master 使用者可以執行此任務。在資料庫執行個體上建立的所有 Oracle 連結伺服器,都會使用與該 OLEDB 提供者的相同屬性。呼叫 sp_MSset_oledb_prop 預存程序來變更 OLEDB 提供者的屬性。

變更 OLEDB 提供者屬性

USE [master] GO EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1 EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'DynamicParameters', 0 GO

您可以修改下列屬性:

屬性名稱 建議值 (1 = 開啟、0 = 關閉) 描述

Dynamic parameter

1

允許參數化查詢中的 SQL 預留位置 (由 '?' 表示)。

Nested queries

1

允許 SELECT 子句中的巢狀 FROM 陳述式,例如子查詢。

Level zero only

0

只會針對提供者呼叫基礎層級 OLEDB 界面。

Allow inprocess

1

如果已開啟,Microsoft SQL Server 允許將提供者具體化為處理中伺服器。將此屬性設為 1 以使用 Oracle 連結伺服器。

Non transacted updates

0

若是非零,SQL Server 允許更新。

Index as access path

False

若是非零,SQL Server 會嘗試使用提供者的索引來擷取資料。

Disallow adhoc access

False

如果已設定,SQL Server 不允許針對 OLEDB 提供者執行傳遞查詢。雖然可以核取此選項,但有時候執行傳遞查詢是更好的選擇。

Supports LIKE operator

1

指出提供者支援使用 LIKE 關鍵字進行查詢。

修改 OLEDB 驅動程式屬性

建立 Oracle 連結伺服器時,您可以檢視和變更 OLEDB 驅動程式的屬性。只有 master 使用者可以執行此任務。驅動程式屬性定義 OLEDB 驅動程式在使用遠端 Oracle 資料來源時處理資料的方式。驅動程式屬性專用於在資料庫執行個體上建立的每個 Oracle 連結伺服器。呼叫 master.dbo.sp_addlinkedserver 預存程序來變更 OLEDB 驅動程式的屬性。

範例:建立連結的伺服器並變更 OLEDB 驅動程式 FetchSize 屬性

EXEC master.dbo.sp_addlinkedserver @server = N'Oracle_link2', @srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'my-oracle-test.cnetsipka.us-west-2.rds.amazonaws.com:1521/ORCL, @provstr='FetchSize=200' GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Oracle_link2', @useself=N'False', @locallogin=NULL, @rmtuser=N'master', @rmtpassword='Test#1234' GO
注意

指定此處所顯示提示以外的密碼,作為安全最佳實務。

停用連結的伺服器搭配 Oracle

若要停用連結的伺服器搭配 Oracle,請將 OLEDB_ORACLE 選項從其選項群組中移除。

重要

移除選項並不會刪除資料庫執行個體上現有的連結伺服器組態。您必須手動捨棄它們,才能將它們從資料庫執行個體中移除。

您可以在移除後重新啟用 OLEDB_ORACLE 選項,以重複使用先前在資料庫執行個體上設定的連結伺服器組態。

下列程序會移除 OLEDB_ORACLE 選項。

從選項群組中移除 OLEDB_ORACLE 選項
  1. 登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/rds/ 的 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇 Option groups (選項群組)。

  3. 選擇具有 OLEDB_ORACLE 選項的選項群組 (上述範例中的 oracle-oledb-se-2019)。

  4. 選擇 Delete option (刪除選項)

  5. Deletion options (刪除選項) 下,為 Options to delete (要刪除的選項) 選擇 OLEDB_ORACLE

  6. Apply immediately (立即套用) 下,選擇 Yes (是) 立即刪除選項,或選擇 No (否) 在下一個維護時段將其刪除。

  7. 選擇刪除

下列程序會移除 OLEDB_ORACLE 選項。

從選項群組中移除 OLEDB_ORACLE 選項
  • 請執行下列其中一個命令:

    對於LinuxmacOS、或Unix:

    aws rds remove-option-from-option-group \ --option-group-name oracle-oledb-se-2019 \ --options OLEDB_ORACLE \ --apply-immediately

    在Windows中:

    aws rds remove-option-from-option-group ^ --option-group-name oracle-oledb-se-2019 ^ --options OLEDB_ORACLE ^ --apply-immediately