У меня есть сервер издателя и сервер подписчика, которые синхронизируются с помощью репликации слиянием. Когда я использую мастер для удаления репликации, в окне входа в систему меня просят войти на сервер подписчика и удалить его подписку, но когда я использую сгенерированный скрипт для удаления репликации, подписка на подписчике не удаляется. Как я могу это сделать с помощью TSQL? Другими словами: я хочу подключиться к подписчику и также удалить запись о подписке на подписчике с помощью T-SQL
Удаление принудительной подписки от подписчика с помощью T-SQL в репликации слиянием
Ответы (2)
Чтобы отказаться от принудительной подписки слиянием, вы должны подключиться как к издателю, так и к подписчику. Согласно Как удалить принудительную подписку (программирование на Transact-SQL репликации) - выполнить sp_dropmergesubscription на Издателе и sp_mergesubscription_cleanup на подписчике.
person
Brandon Williams
schedule
21.04.2012
Это точные ответы, но я сказал, что хочу подключиться к подписчику с помощью TSQL, а затем выполнить процедуру sp_mergesubscription_cleanup. На самом деле я хочу выполнить команду удаленно. Как мне это сделать?
- person Mohammad Sheykholeslam; 22.04.2012
Если вы можете подключиться к издателю с подписчика, вы можете выполнить sp_dropmergesubscription, а затем выполнить sp_mergesubscription_cleanup на подписчике. У меня обычно есть соединение, открытое как для издателей, так и для подписчиков в SSMS при выполнении такого обслуживания репликации.
- person Brandon Williams; 22.04.2012
Наконец-то я нашел решение своей проблемы:
Я использовал Linked Server для создания подключения к удаленному серверу:
exec sp_addlinkedserver 'RemoteServer\PeerInstance', N'SQL Server'
exec sp_addlinkedsrvlogin 'RemoteServer\PeerInstant', 'true', 'sa', 'password'
exec ReplicatedDBOnMainServer.sys.sp_dropmergesubscription
@publication = N'PublicationName',
@subscriber = N'RemoteServer\PeerInstant'
exec [RemoteServer\PeerInstant].ReplicatedDBOnRemote.sys.sp_mergesubscription_cleanup
@publisher = N'MainServer\MainInstant',
@publisher_db = N'ReplicatedDBOnMainServer'
@publication = N'PublicationName'
person
Mohammad Sheykholeslam
schedule
22.04.2012