本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 Server 2022,所有版本
-
SQL Server 2019,所有版本
-
SQL Server 2017,所有版本
下列 Oracle Database 版本支援連結的伺服器搭配 Oracle OLEDB:
-
Oracle Database 21c,所有版本
-
Oracle Database 19c,所有版本
-
Oracle Database 18c,所有版本
下列 OLEDB Oracle 驅動程式版本支援具有 Oracle OLEDB 的連結伺服器:
-
21.7
-
21.16
限制與建議
請記住,連結的伺服器搭配 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
,且為必要項目。對於已啟用 AlwaysOn 或鏡像選項的 RDS for SQL Server 多可用區執行個體,當執行個體在新執行個體建立或還原之後重新啟動時,預期會發生容錯移轉。 -
僅支援使用 Oracle 資料來源的使用者名稱和密碼進行簡易身分驗證。
-
不支援開放式資料庫連線 (ODBC) 驅動程式。僅支援上述 OLEDB 驅動程式版本。
-
支援分散式交易 (XA)。若要啟用分散式交易,請在資料庫執行個體的選項群組中開啟
MSDTC
選項,並確定 XA 交易已開啟。如需詳細資訊,請參閱在 RDS for SQL Server 中支援 Microsoft 分散式交易協調器。 -
不支援建立用作連接字串捷徑的資料來源名稱 (DSN)。
-
不支援 OLEDB 驅動程式追蹤。您可以使用 SQL Server 擴充事件來追蹤 OLEDB 事件。如需詳細資訊,請參閱設定 RDS for SQL Server 中的擴充事件
。 -
使用 SQL Server Management Studio (SSMS) 時,不支援存取 Oracle 連結伺服器的目錄資料夾。
啟用連結的伺服器搭配 Oracle
將 OLEDB_ORACLE
選項新增至 RDS for SQL Server 資料庫執行個體,來啟用連結的伺服器搭配 Oracle。請使用下列程序:
-
建立新的選項群組或選擇現有的選項群組。
-
將
OLEDB_ORACLE
選項新增至選項群組。 -
選擇要使用的 OLEDB 驅動程式版本。
-
將選項群組與資料庫執行個體建立關聯。
-
重新啟動資料庫執行個體。
建立 OLEDB_ORACLE 的選項群組
若要搭配 Oracle 使用連結的伺服器,請建立選項群組,或修改對應至 SQL Server 版本和您計劃使用的資料庫執行個體版本的選項群組。若要完成此程序,請使用 AWS Management Console 或 AWS CLI。
下列程序會建立 SQL Server Standard Edition 2019 的選項群組。
建立選項群組
登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/
:// 開啟 Amazon RDS 主控台。 -
在導覽窗格中,選擇 Option groups (選項群組)。
-
選擇建立群組。
-
在 Create option group (建立選項群組) 視窗中,執行下列動作:
-
針對名稱,輸入您 AWS 帳戶中唯一的選項群組名稱,例如
oracle-oledb-se-2019
。名稱僅可包含字母、數字與連字號。 -
對於 Description (描述),請輸入選項群組的簡短描述,例如
OLEDB_ORACLE option group for SQL Server SE 2019
。用於顯示用途的說明。 -
對於 Engine (引擎),請選擇 sqlserver-se。
-
對於 Major engine version (主要引擎版本),請選擇 15.00。
-
-
選擇建立。
下列程序會建立 SQL Server Standard Edition 2019 的選項群組。
建立選項群組
-
請執行下列其中一個命令:
對於 Linux、 macOS或 Unix:
aws rds create-option-group \ --option-group-name
oracle-oledb-se-2019
\ --engine-namesqlserver-se
\ --major-engine-version15.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-namesqlserver-se
^ --major-engine-version15.00
^ --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019
"
將 OLEDB_ORACLE
選項新增至選項群組
接著,使用 AWS Management Console 或 AWS CLI 將 OLEDB_ORACLE
選項新增至您的選項群組。
新增 OLEDB_ORACLE 選項
登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/
:// 開啟 Amazon RDS 主控台。 -
在導覽窗格中,選擇 Option groups (選項群組)。
-
選擇您剛剛建立的選項群組,亦即這個範例中的 oracle-oledb-se-2019。
-
選擇 Add option (新增選項)。
-
在 Option details (選項詳細資訊) 下,選擇 OLEDB_ORACLE 作為 Option name (選項名稱)。
-
在版本下,選擇您要安裝的 OLEDB Oracle 驅動程式版本。
-
在 Scheduling (排程) 下,選擇要立即新增選項或是在下一個維護時段新增選項。
-
選擇 Add option (新增選項)。
新增 OLEDB_ORACLE 選項
-
將
OLEDB_ORACLE
選項新增至選項群組。對於 Linux、 macOS或 Unix:
aws rds add-option-to-option-group \ --option-group-name
oracle-oledb-se-2019
\ --options OptionName=OLEDB_ORACLE, OptionVersion=21.16 \ --apply-immediately在 Windows 中:
aws rds add-option-to-option-group ^ --option-group-name
oracle-oledb-se-2019
^ --options OptionName=OLEDB_ORACLE, OptionVersion=21.16 ^ --apply-immediately
將OLEDB_ORACLE
版本選項修改為另一個版本
若要將OLEDB_ORACLE
選項版本修改為另一個版本,請使用 AWS Management Console 或 AWS CLI。
修改 OLEDB_ORACLE 選項
登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/
:// 開啟 Amazon RDS 主控台。 -
在導覽窗格中,選擇 Option groups (選項群組)。
-
使用
OLEDB_ORACLE
選項選擇選項群組 (上一個範例中的oracle-oledb-se-2019)。 -
選擇 Modify option (修改選項)。
-
在 Option details (選項詳細資訊) 下,選擇 OLEDB_ORACLE 作為 Option name (選項名稱)。
-
在版本下,選擇您要使用的 OLEDB Oracle 驅動程式版本。
-
在排程下,選擇是否立即修改選項,或在下一個維護時段修改選項。
-
選擇 Modify option (修改選項)。
若要修改OLEDB_ORACLE
選項版本,請使用 rds add-option-to-option-group
AWS CLI 命令搭配您要使用的選項群組和選項版本。
修改 OLEDB_ORACLE 選項
-
對於 Linux、 macOS或 Unix:
aws rds add-option-to-option-group \ --option-group-name
oracle-oledb-se-2019
\ --options OptionName=OLEDB_ORACLE, OptionVersion=21.7 \ --apply-immediately在 Windows 中:
aws rds add-option-to-option-group ^ --option-group-name
oracle-oledb-se-2019
^ --options OptionName=OLEDB_ORACLE, OptionVersion=21.7 ^ --apply-immediately
將選項群組關聯至您的資料庫執行個體
若要將OLEDB_ORACLE
選項群組和參數群組與您的資料庫執行個體建立關聯,請使用 AWS Management Console 或 AWS CLI
若要完成啟用 Oracle 連結伺服器,請將您的 OLEDB_ORACLE
選項群組與新的或現有的資料庫執行個體建立關聯
-
對於新的資料庫執行個體,請在啟動執行個體時將它們相關聯。如需更多詳細資訊,請參閱 建立 Amazon RDS 資料庫執行個體。
-
對於現有的資料庫執行個體,請透過修改執行個體來建立關聯。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
您可以將 OLEDB_ORACLE
選項群組和參數群組與新的或現有的資料庫執行個體產生關聯。
使用 OLEDB_ORACLE
選項群組和參數群組建立執行個體
-
指定建立選項群組時所使用的相同資料庫引擎類型和主要版本。
對於 Linux、 macOS或 Unix:
aws rds create-db-instance \ --db-instance-identifier
mytestsqlserveroracleoledbinstance
\ --db-instance-classdb.m5.2xlarge
\ --enginesqlserver-se
\ --engine-version15.0.4236.7.v1
\ --allocated-storage100
\ --manage-master-user-password \ --master-usernameadmin
\ --storage-typegp2
\ --license-modelli
\ --domain-iam-role-namemy-directory-iam-role
\ --domainmy-domain-id
\ --option-group-nameoracle-oledb-se-2019
\ --db-parameter-group-namemy-parameter-group-name
在 Windows 中:
aws rds create-db-instance ^ --db-instance-identifier
mytestsqlserveroracleoledbinstance
^ --db-instance-classdb.m5.2xlarge
^ --enginesqlserver-se
^ --engine-version15.0.4236.7.v1
^ --allocated-storage100
^ --manage-master-user-password ^ --master-usernameadmin
^ --storage-typegp2
^ --license-modelli
^ --domain-iam-role-namemy-directory-iam-role
^ --domainmy-domain-id
^ --option-group-nameoracle-oledb-se-2019
^ --db-parameter-group-namemy-parameter-group-name
修改執行個體並關聯 OLEDB_ORACLE
選項群組
-
請執行下列其中一個命令:
對於 Linux、 macOS或 Unix:
aws rds modify-db-instance \ --db-instance-identifier
mytestsqlserveroracleoledbinstance
\ --option-group-nameoracle-oledb-se-2019
\ --db-parameter-group-namemy-parameter-group-name
\ --apply-immediately在 Windows 中:
aws rds modify-db-instance ^ --db-instance-identifier
mytestsqlserveroracleoledbinstance
^ --option-group-nameoracle-oledb-se-2019
^ --db-parameter-group-namemy-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 = 關閉) | 描述 |
---|---|---|
|
1 |
允許參數化查詢中的 SQL 預留位置 (由 '?' 表示)。 |
|
1 |
允許 |
|
0 |
只會針對提供者呼叫基礎層級 OLEDB 界面。 |
|
1 |
如果已開啟,Microsoft SQL Server 允許將提供者具體化為處理中伺服器。將此屬性設為 1 以使用 Oracle 連結伺服器。 |
|
0 |
若是非零,SQL Server 允許更新。 |
|
False |
若是非零,SQL Server 會嘗試使用提供者的索引來擷取資料。 |
|
False |
如果已設定,SQL Server 不允許針對 OLEDB 提供者執行傳遞查詢。雖然可以核取此選項,但有時候執行傳遞查詢是更好的選擇。 |
|
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 選項
登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/
:// 開啟 Amazon RDS 主控台。 -
在導覽窗格中,選擇 Option groups (選項群組)。
-
選擇具有
OLEDB_ORACLE
選項的選項群組 (上述範例中的oracle-oledb-se-2019
)。 -
選擇 Delete option (刪除選項)。
-
在 Deletion options (刪除選項) 下,為 Options to delete (要刪除的選項) 選擇 OLEDB_ORACLE。
-
在 Apply immediately (立即套用) 下,選擇 Yes (是) 立即刪除選項,或選擇 No (否) 在下一個維護時段將其刪除。
-
選擇 刪除。
下列程序會移除 OLEDB_ORACLE
選項。
從選項群組中移除 OLEDB_ORACLE 選項
-
請執行下列其中一個命令:
對於 Linux、 macOS或 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