Sql-Server

是否可以將 Azure 設置為將複製複製到本地數據庫的發布者?

  • July 20, 2018

我正在嘗試設置從 Azure 數據庫到本地數據庫的拉式複制。我已將本地數據庫設置為分銷商,但是當我嘗試建立對 Azure 數據庫的訂閱時出現錯誤,請參見下文。

TITLE: New Subscription Wizard
------------------------------

SQL Server could not retrieve the list of databases for server 'nyrstar-prod-01.database.windows.net'.

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.0.17254.0&EvtSrc=Microsoft.SqlServer.Management.UI.CreateSubWizardErrorSR&EvtID=CantGetDatabaseList&LinkId=20476

------------------------------
ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Could not find stored procedure 'sp_get_distributor'. (Microsoft SQL Server, Error: 2812)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.0600&EvtSrc=MSSQLServer&EvtID=2812&LinkId=20476

-------------------------------
-------------------------------
ALL ADVANCED INFORMATION
-------------------------------
-------------------------------

===================================

SQL Server could not retrieve the list of databases for server 'nyrstar-prod-01.database.windows.net'. (New Subscription Wizard)

------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.0.17254.0&EvtSrc=Microsoft.SqlServer.Management.UI.CreateSubWizardErrorSR&EvtID=CantGetDatabaseList&LinkId=20476

===================================

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------
Program Location:

  at Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(SqlCommand command)
  at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteReader(String sqlCommand, SqlCommand& command)
  at Microsoft.SqlServer.Replication.ReplicationServer.RefreshGetDistributor()
  at Microsoft.SqlServer.Management.UI.PageChoosePublication.EnumDatabases(ReplicationSqlConnection sqlConn)
  at Microsoft.SqlServer.Management.UI.PageChoosePublication.LoadDatabases(ReplicationSqlConnection publisherConn, String selectedDBName, String selectedPubName, Boolean isHeterogeneous)

===================================

Could not find stored procedure 'sp_get_distributor'. (.Net SqlClient Data Provider)

------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.0600&EvtSrc=MSSQLServer&EvtID=2812&LinkId=20476

------------------------------
Server Name: nyrstar-prod-01.database.windows.net
Error Number: 2812
Severity: 16
State: 62
Line Number: 1


------------------------------
Program Location:

  at Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
  at Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(SqlCommand command)

目前僅支持本地SQL 數據庫的複制,並且必須是推送複製。看這裡:

複製到 SQL 數據庫

支持的配置:

  • SQL Server 可以是在本地執行的 SQL Server 實例,也可以是在雲中的 Azure 虛擬機中執行的 SQL Server 實例
  • SQL 數據庫必須是 SQL Server 發布者的推送訂閱者。
  • 分發數據庫和複製代理不能放在 SQL 數據庫上。

您可能需要考慮使用託管實例來解決此問題。有關詳細資訊,請參閱使用 SQL 數據庫託管實例進行複制。

引用自:https://dba.stackexchange.com/questions/212681