本文將告訴您,如何從正在執行 Microsoft SQL Server 2000 或 Microsoft SQL Server 2005 的電腦移除複寫。您必須將一個複寫卸除訂閱、 發行集和已設定為 「 複寫散發者。您可以藉由執行 Transact-SQL 指令碼所產生的 SQL Server 企業管理員] 或 [SQL Server 管理 Studio 移除複寫。不過,如果您不能產生 [Transact-SQL 指令碼以移除複寫,您可以使用系統預存程序和其他 Transact-SQL 陳述式,以手動移除複寫。本文包含可在此處理程序中使用的系統預存程序的相關資訊。
附註如需詳細資訊,有關系統這篇文章所述的預存程序請參閱 SQL Server 線上叢書 》。
手動移除複寫
藉由使用系統預存程序和其他 Transact-SQL 陳述式,可以手動移除複寫。若要完全移除複寫,請依照下列步驟執行:
- 卸除所有的訂閱設定為複寫。
- 卸除所有的出版物設定為複寫]。
- 卸除散發者已設定為複寫]。
附註系統預存程序,為每個複寫類型會列在本文稍後。使用適當的預存程序,您想要移除的複寫類型而定。
卸除訂閱
若要從 SQL Server 的執行個體,卸除訂閱,您可以使用下列的預存程序和適當的參數:
- sp_dropsubscription: 您可以使用 sp_dropsubscription 系統預存程序來卸除 「 發行者 」 上的一個特定的發行項、 發行物或一組的訂閱的訂閱。您必須在發行集資料庫上,在 「 發行者 」 伺服器執行預存程序。
- sp_droppullsubscription: 您可以使用 sp_droppullsubscription 系統預存程序來則卸除目前的資料庫,「 訂閱者 」 的訂閱。您必須在提取訂閱資料庫上,在 「 訂閱者 」 執行預存程序。
- sp_dropmergesubscription: 您可以使用 sp_dropmergesubscription 系統預存程序來卸除訂閱合併式發行集,並與合併式發行集相關聯的 「 合併代理程式 」。您必須在發行集資料庫上,在 「 發行者 」 伺服器執行預存程序。
- sp_dropmergepullsubscription: 您可以使用 sp_dropmergepullsubscription 系統預存程序來卸除合併提取訂閱。您必須在提取訂閱資料庫上,在 「 訂閱者 」 執行預存程序。
卸除快照式訂閱
若要卸除快照式發行集的所有發行項的發送訂閱,在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'
要卸除快照式發行集的所有發行項的快照式提取訂閱,請依照下列步驟執行:
- 在 「 訂閱者 」 執行下列 SQLb 指令碼:
USE <Subscription database name>
GO
EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
- 在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_dropsubscription @publication=N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'all'
卸除交易式訂閱
若要卸除交易式發行集的所有發行項的發送訂閱,在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'
要卸除交易式發行集的所有發行項的提取訂閱,請依照下列步驟執行:
- 在 「 訂閱者 」 執行下列指令碼:
USE <Subscription database name>
GO
EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
- 在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_dropsubscription @publication =N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'<Destination database name>'
卸除合併訂閱
若要卸除發送訂閱,在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_dropmergesubscription @publication = N'<Publication name>', @subscriber = N'<Publisher server name>', @subscriber_db = N'<Subscription database name>', @subscription_type = N'push'
要卸除提取訂閱,請依照下列步驟執行:
- 在 「 訂閱者 」 執行下列指令碼:
USE <Subscription database name>
GO
EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
- 在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_dropmergesubscription @subscription_type = N'pull', @publication = N'<Publication name>', @subscriber = N'<Subscriber server name>', @subscriber_db = N'<Subscription database name>'
卸除發行集
移除訂閱發行集的所有訂閱之後,您可以都移除發行集。移除在發行集資料庫的發行集之後必須將發行集資料庫的 [複寫] 資料庫選項設為 false。若要將出版物中,您可以使用下列系統預存程序:
- sp_droppublication: 您可以使用 sp_droppublication 系統預存程序來卸除發行集與發行集相關聯的文件。 您必須在發行集資料庫上,在 「 發行者 」 執行預存程序。
- sp_dropmergepublication: 您可以使用 sp_dropmergepublication 系統預存程序來卸除合併式發行集與快照集代理程式與合併式發行集相關聯。亦同時卸除發行集相關聯的文件。您必須在發行集資料庫上,在 「 發行者 」 執行預存程序。
- sp_replicationdboption: 您可以使用 sp_replicationdboption 系統預存程序來設定目前的資料庫是複寫資料庫選項。您必須在 「 發行者 」 伺服器執行預存程序。
若要卸除快照式發行集,在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_droppublication @publication = N'<Publication name>'
USE master
GO
exec sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'
卸除交易式發行集,在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_droppublication @publication = N'<Publication name>'
USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'
卸除合併式發行集,在發行者端執行下列指令碼:
USE <Publication database name>
GO
EXEC sp_dropmergepublication @publication = N'<Publication name>'
USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'merge publish', @value = N'false'
卸除散發者
您卸除所有訂閱和發行集之後您可以卸除相關的 「 散發者 」。但是,您卸除散發者之前您必須訂閱者指定從卸除 「 發行者 」。如果要執行這項操作,使用下列預存程序:
- sp_dropsubscriber: 您可以使用 sp_dropsubscriber 系統預存程序來從已註冊的伺服器卸除訂閱者指定。預存程序可移除登錄項目為訂閱者。預存程序是在 「 發行者 」 執行發行集資料庫上。
- sp_dropdistributor: 您可以使用 sp_dropdistributor 系統預存程序來移除散發者。在散發者執行預存程序。
若要從 「 發行者 」,卸除訂閱者指定,在發行者端執行下列指令碼:
USE master
GO
EXEC sp_dropsubscriber @subscriber = N'<Subscriber server name>', @reserved = N'drop_subscriptions'
將散發者執行下列指令碼在散發者:
USE master
GO
EXEC sp_dropdistributor @no_checks = 1
使用預存程序
當您移除複寫時,您也可以使用下列預存程序:
- sp_removedbreplication: 您可以使用 sp_removedbreplication 系統預存程序來移除資料庫中的所有複寫物件,而不更新資料在散發者。在發行集資料庫上 「 發行者 」 或者訂閱資料庫上 「 訂閱者 」,您必須執行預存程序。下列是這個預存程序的語法:
sp_removedbreplication '<Database name>'
- sp_droparticle: 您可以使用 sp_droparticle 系統預存程序,從快照式發行集或交易式發行集卸除發行項。如果發行的發行項的一或多個訂閱仍存在,您無法移除發行項。您必須在發行集資料庫上,在 「 發行者 」 執行預存程序。下列是這個預存程序的語法:
sp_droparticle @publication = N'<Publication name>', @article = N'<Article name>', @force_invalidate_snapshot = 1
如需詳細資訊請參閱下列 SQL Server 線上叢書 》 主題]:
- 如何停用發行和分配 (Transact-SQL)
- 如何刪除發行集及發行項 (Transact-SQL)
- 如何刪除發送訂閱 (Transact-SQL)
- 如何刪除提取訂閱 (Transact-SQL)
- 如何刪除匿名訂閱 (Transact-SQL)
- 如何刪除發行集及發行項 (企業管理員)
- 如何刪除發送訂閱 (企業管理員)
- 如何刪除提取或匿名訂閱 (企業管理員)