本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 RDS Custom for SQL Server 變更資料擷取 (CDC) 支援
概觀
RDS Custom for SQL Server 提供變更資料擷取 (CDC) 的原生支援,可讓您追蹤和擷取 SQL Server 資料表中的資料修改。CDC 會存放這些變更的詳細中繼資料,以供後續擷取和分析。如需 CDC 功能的詳細資訊,請參閱 Microsoft 文件中的變更資料擷取
SQL Server 中的 CDC 操作需要 中的本機伺服器 (其 server_id
= 0) sys.servers
與SERVERPROPERTY('ServerName')
識別符之間的相符值。RDS Custom for SQL Server 會在執行個體的整個生命週期中自動維持此同步,以確保 CDC 持續運作,即使主機在維護或復原操作期間遭到取代。
重要
在多可用區域執行個體容錯移轉之後,SERVERPROPERTY('Servername')
函數會自動反映網路/電腦名稱的變更。不過,@@SERVERNAME
函數會保留舊伺服器名稱,直到MSSQLSERVER
服務重新啟動為止。查詢 @@SERVERNAME 會在容錯移轉後傳回先前的伺服器名稱。若要在容錯移轉後取得準確的伺服器名稱,請使用下列 SQL 查詢:
SELECT name FROM sys.servers WHERE server_id=0
此查詢提供up-to-date伺服器名稱資訊,而不需要重新啟動服務。
區域和版本可用性
對於 AWS 區域 RDS Custom 支援的所有 SQL Server 版本,提供 RDS Custom for SQL Server 的所有 都支援 CDC 功能。如需 RDS Custom for SQL Server 支援版本和區域可用性的詳細資訊,請參閱 RDS Custom for SQL Server 支援的 區域和資料庫引擎。
要求與限制
在 RDS Custom for SQL Server 上實作 CDC 時,請注意下列重要考量:
-
如果您在 中手動設定
@@SERVERNAME
和/或本機伺服器sys.servers
以使用 MS 複寫等功能,如果 中的本機伺服器 (具有server_id = 0
) 的值sys.servers
設定為符合*.rds.amazonaws.com
或 的格式*.awsrds.*.com
,RDS Custom for SQL Server 不會嘗試修改它以符合SERVERPROPERTY('ServerName')
。 -
當遠端登入或連結伺服器正在使用舊的主機名稱時,RDS 無法將 中的本機伺服器 (具有
server_id = 0
) 修改sys.servers
為新的主機名稱。此限制適用於兩種情況:-
當連結的伺服器使用與舊主機名稱相關聯的遠端登入建立與本機伺服器的連線時
-
當 RDS Custom for SQL Server 執行個體做為發佈者或經銷商,且已將與舊主機名稱相關聯的登入連結至其訂閱者執行個體時。
-
疑難排解
若要識別與舊伺服器名稱相關聯的遠端登入或連結的登入,請使用下列查詢。驗證結果並移除這些登入,以確保適當的 CDC 功能。
SELECT * FROM sys.remote_logins WHERE server_id=0
或
select sss.srvname,ssp.name,srl.remote_name from sys.server_principals ssp inner join sys.remote_logins srl on srl.local_principal_id=ssp.principal_id inner join sys.sysservers sss on srl.server_id = sss.srvid where sss.srvname = @@SERVERNAME