MSSQL_ENG014117

訊息詳細資料

產品名稱

SQL Server

產品版本

10.50

產品組建編號

 

事件識別碼

14117

事件來源

MSSQLSERVER

元件

SQL Server Database Engine

符號名稱

訊息文字

'%s' 並未設定為散發資料庫。

說明

如果下列條件中的一或兩條成立,則會發生此錯誤:

  • msdb..MSdistributiondbs 中遺失指定散發資料庫的項目。

  • master 資料庫中沒有本機伺服器的項目,或者該項目不正確。

    針對拓撲中所有伺服器,複寫預計應使用電腦名稱與選擇性的執行個體名稱註冊 (叢集執行個體則為 SQL Server 虛擬伺服器名稱加上選擇性的執行個體名稱)。要讓複寫正常運作,SELECT @@SERVERNAME 針對拓撲中每部伺服器傳回的值,都應該符合電腦名稱或虛擬伺服器名稱加上選擇性執行個體名稱。

    若您已透過 IP 位址或完整格式的網域名稱 (FQDN) 註冊任一 SQL Server 執行個體,就不支援複寫。如果您設定複寫時,依 IP 位址或依 SQL Server Management Studio 中的 FQDN 註冊了任何 SQL Server 執行個體,就可能會引發這個錯誤。

使用者動作

請確認「散發者」執行個體註冊正確。若電腦網路名稱和 SQL Server 執行個體名稱不符,則:

  • 加入 SQL Server 執行個體名稱做為有效網路名稱。設定另一可用網路名稱的方法之一,是將它加入本機主機檔案。本機主機檔案預設位於 WINDOWS\system32\drivers\etc 或 WINNT\system32\drivers\etc。如需詳細資訊,請參閱 Windows 文件集。

    例如,若電腦名稱為 comp1,電腦 IP 位址是 10.193.17.129,且執行個體名稱為 inst1/instname,請將下列項目加入主機檔案:

    10.193.17.129 inst1

  • 停用散發,註冊執行個體,然後重新建立散發。如需有關停用散發的資訊,請參閱<停用發行與散發>。如果 @@SERVERNAME 的值不是非叢集執行個體正確的值,請依循下列步驟:

    sp_dropserver '<old_name>', 'droplogins'
    go
    sp_addserver '<new_name>', 'local'
    go
    

    執行 sp_addserver (Transact-SQL) 預存程序之後,您必須重新啟動 SQL Server 服務,@@SERVERNAME 的變更才能生效。

    如果 @@SERVERNAME 的值不是正確的非叢集執行個體值,則必須使用叢集管理員變更名稱。如需詳細資訊,請參閱<SQL Server 2008 R2 容錯移轉叢集使用者入門>。

在確認「散發者」執行個體已正確註冊之後,請確認散發資料庫是否列在 msdb..MSdistributiondbs 中。如果其沒有列在其中:

  1. 為散發組態編寫指令碼。如需詳細資訊,請參閱<編寫複寫指令碼>。

  2. 停用散發,然後再重新啟用它。如需詳細資訊,請參閱<設定散發>。