共用方式為


複寫至 Azure SQL 資料庫

適用於:Azure SQL 資料庫

您可以在來自 SQL Server 或 Azure SQL 受控執行個體的單向異動或快照式複寫拓撲中,將 Azure SQL 資料庫設定為發送訂閱者。

注意

本文說明如何在 Azure SQL Database 中使用異動複寫。 這與作用中異地複寫無關,它是一個 Azure SQL 資料庫功能,可讓您建立個別資料庫的完整可讀取複本。

支援的設定

版本

若要成功複寫至 Azure SQL 資料庫中的資料庫,SQL Server 發行者和散發者必須 (至少) 使用下列其中一個版本:

下列 SQL Server 版本支援從 SQL Server 資料庫,發行至任何 Azure SQL 資料庫:

注意

嘗試使用不支援的版本來設定複寫可能會導致錯誤號碼 MSSQL_REPL20084 (處理序無法連線到訂閱者) 和 MSSQ_REPL40532 (無法開啟登入要求的伺服器<名稱>。登入失敗)。

若要使用 Azure SQL 資料庫的所有功能,您必須使用最新版的 SQL Server Management Studio (SSMS)SQL Server Data Tools

複寫類型

複寫有不同類型

複寫 Azure SQL Database Azure SQL 受控執行個體
標準異動 是 (僅作為訂用帳戶)
快照式 是 (僅作為訂用帳戶)
合併式複寫
對等
雙向
可更新的訂用帳戶 No

備註

  • 僅支援對 Azure SQL 資料庫的發送訂閱。
  • 可透過使用 SQL Server Management Studio 或在發行者上執行 Transact-SQL 陳述式來設定複寫。 您不能使用 Azure 入口網站設定複寫。
  • 複寫只能使用 SQL Server 驗證登入,來連線到 Azure SQL 資料庫。
  • 複寫的資料表必須具有主索引鍵。
  • 您必須擁有現有的 Azure 訂用帳戶。
  • Azure SQL 資料庫訂閱者可位於任何區域。
  • SQL Server 上的單一發行集可以同時支援 Azure SQL 資料庫和 SQL Server (內部部署和 Azure 虛擬機器中的 SQL Server) 訂閱者。
  • 必須從 SQL Server (而不是 Azure SQL 資料庫) 執行複寫管理、監視和疑難排解。
  • SQL Database 的 sp_addsubscription 僅支援 @subscriber_type = 0
  • Azure SQL 資料庫不支援雙向、即時、可更新或點對點複寫。

複寫架構

圖表顯示複寫結構與 Azure SQL 資料庫 (其中包含不同區域中的數個訂閱者叢集),以及內部部署 Azure 虛擬機器 (其中包含連線至遠端叢集的發行者、記錄讀取可執行檔和散發者可執行檔)。

案例

一般複寫案例

  1. 在 SQL Server 資料庫上建立異動複寫發行集。
  2. 在 SQL Server 上使用 [新增訂用帳戶精靈] 或 Transact-SQL 陳述式,建立 Azure SQL 資料庫的發送訂閱。
  3. 對於 Azure SQL 資料庫中的單個和集區資料庫,初始資料集通常為由「快照集代理程式」建立並由「散發代理程式」散發和套用的快照集。 透過 SQL 受控執行個體發行者,也可以使用資料庫備份來植入 Azure SQL 資料庫訂閱者。

資料移轉案例

  1. 可使用異動複寫,將資料從 SQL Server 資料庫複寫到 Azure SQL 資料庫。
  2. 重新導向用戶端或中介層應用程式以更新資料庫複本。
  3. 停止更新資料表的 SQL Server 版本,並移除發行集。

限制

Azure SQL 資料庫不支援具有下列選項的複寫:

  • 複製檔案群組關聯
  • 複製資料表資料分割配置
  • 複製索引資料分割配置
  • 複製使用者定義的統計資料
  • 複製預設繫結
  • 複製規則繫結
  • 複製全文檢索索引
  • 複製 XML XSD
  • 複製 XML 索引
  • 複製權限
  • 複製空間索引
  • 複製篩選的索引
  • 複製資料壓縮屬性
  • 複製疏鬆資料行屬性
  • 將 filestream 轉換為 MAX 資料類型
  • 將 hierarchyid 轉換為 MAX 資料類型
  • 將 spatial 轉換為 MAX 資料類型
  • 複製擴充屬性

待決定的限制

  • 複製定序
  • SP 的序列式交易執行

範例

建立發行集和發送訂閱。 如需詳細資訊,請參閱

  • 建立發行集
  • 建立發送訂閱,方法是使用伺服器名稱作為訂閱者 (例如 N'azuresqldbdns.database.windows.net') 並使用 Azure SQL 資料庫名稱作為目的地資料庫 (例如 AdventureWorks)。

另請參閱