Ахмед
Member
Откуда:
Сообщений: 80
|
Всем здравствуйте! Да, проблема уже освещалась, но в существующих темах решения я не нашел.
Ситуация: SQL Server №1 (Издатель) -> IIS7 -> Интернет -> IIS7 -> SQL Server №2 (Подписчик)
Поясню: Есть 2 SQL Server 2008 R2 в разных сетках, которые разделяет интернет. В каждой сети есть свой домен, не связанный с другим. Сервера БД из интернета НЕ видны. В каждой сети есть свой Web-сервер под управлением IIS7, который доступен из инета.
Задача: Настроить синхронизацию определенной БД между двумя SQL Server'ми. Настроить VPN канал между серверами возможности нет.
После поисков выяснилось, что тут может выручить только Web-синхронизация. Делал все по мануалам MSDN'a (как же там все тяжело описано). Но вот ни хочет стартовать она.
Что сделано: Со стороны Издателя настроен IIS7 для работы Web-синхронизации. Допустим адрес: https://webserver1.ru/replisapi.dll. Он работает, по запросу https://webserver1.ru/replisapi.dll?diag выводится отладочная информация.
На Издателе создана "Публикация слиянием" - "testpublish". В ее настройках указан параметр "Разрешить сихронизацию подписчиков с помощью соединения с веб-сервером" и указан адрес https://webserver1.ru/replisapi.dll На Издателе создана задача для SQL Server Agent для этой публикации.
На Подписчике была создана "pull" - подписка. (вроде по требованию). Но она была создана через хранимые процедуры, т.к. мастер создания публикаций не видит издателя. Скрипт брался с MSDN:
+ Скрипт |
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @websyncurl AS sysname;
DECLARE @security_mode AS int;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'testpublish';
SET @publisher = N'PublisherServerName';
SET @publicationDB = N'testdb';
SET @websyncurl = 'https://webserver1.ru/replisapi.dll';
SET @security_mode = 0; -- Basic Authentication for IIS
SET @login = N'DOMAIN1\User';
SET @password = N'PASSWORD';
-- At the subscription database, create a pull subscription
-- to a merge publication.
USE testdb
EXEC sp_addmergepullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addmergepullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = N'DOMAIN2\User',
@job_password = N'PASSWORD',
@use_web_sync = 1,
@internet_security_mode = @security_mode,
@internet_url = @websyncurl,
@internet_login = @login,
@internet_password = @password;
GO
|
Скрипт отрабатывает, все создается. Нахожу на подписчике нужную задачу, правый клик -> Start Job At Step. Задача отрабатывает с ошибкой. Лезу в логи и вижу это:
+ 1 - Успех | Date 28.02.2012 15:55:20 Log Job History (SANDBSRV-testdb-testpublish-EXPDB\DEVELOP-testdb- 0)
Step ID 1 Server EXPDB\DEVELOP Job Name SANDBSRV-testdb-testpublish-EXPDB\DEVELOP-testdb- 0 Step Name Запустить агента. Duration 00:00:01 Sql Severity 0 Sql Message ID 0 Operator Emailed Operator Net sent Operator Paged Retries Attempted 0
Message Агент репликации был успешно запущен. Дополнительные сведения см. в мониторе репликации.
|
+ 2 - Успех (косяк с кодировкой подсказывает что тут что-то не так) | Date 28.02.2012 15:55:20 Log Job History (SANDBSRV-testdb-testpublish-EXPDB\DEVELOP-testdb- 0)
Step ID 1 Server EXPDB\DEVELOP Job Name SANDBSRV-testdb-testpublish-EXPDB\DEVELOP-testdb- 0 Step Name Запустить агента. Duration 00:00:02 Sql Severity 0 Sql Message ID 0 Operator Emailed Operator Net sent Operator Paged Retries Attempted 0
Message 2012-02-28 11:55:21.236 (c) ╩юЁяюЁрЎш ╠рщъЁюёюЇЄ (Microsoft Corporation), 2008 2012-02-28 11:55:21.236 └ухэЄ ЁхяышърЎшш Microsoft SQL Server: replmerg 2012-02-28 11:55:21.236 2012-02-28 11:55:21.236 ╬ЄьхЄъш тЁхьхэш фюсртыхээ√х ъ ёЄЁюърь т√їюфр юЄюсЁрцр■Єё т ЇюЁьрЄх UTC (яю ├Ёшэтшўє). 2012-02-28 11:55:21.237 User-specified agent parameter values: -Publisher SANDBSRV -PublisherDB testdb -Publication testpublish -Subscriber EXPDB\DEVELOP -SubscriberDB testdb -SubscriptionType 1 -SubscriberSecurityMode 1 -Distributor SANDBSRV -XJOBID 0x4E2547AC04CE0C4CA420E823DC7BF629 -XJOBNAME SANDBSRV-testdb-testpublish-EXPDB\DEVELOP-testdb- 0 -XSTEPID 1 -XSUBSYSTEM Merge -XSERVER EXPDB\DEVELOP -XCMDLINE 0 -XCancelEventHandle 0000000000000704 -XParentProcessHandle 0000000000000720 2012-02-28 11:55:21.334 ╤юхфшэхэшх ё ╧юфяшёўшъ "EXPDB\DEVELOP" 2012-02-28 11:55:21.675 ╤юхфшэхэшх ё ╧юфяшёўшъ "EXPDB\DEVELOP" 2012-02-28 11:55:21.851 ╤ючфрхЄё ёююс∙хэшх юс юЄяЁртъх фы шчфрЄхы "SANDBSRV" 2012-02-28 11:55:21.907 ╧ЁюЎхёё ёыш эш шёяюы№чєхЄ шфхэЄшЇшърЄюЁ Exchange "F12FAB70-EC88-4CEB-9F67-EEF866AA58C5" фы ¤Єюую ёхрэёр тхс-ёшэїЁюэшчрЎшш. 2012-02-28 11:55:22.108 ═х єфрхЄё эрщЄш єърчрээ√щ Їрщы.
2012-02-28 11:55:22.159 Category:NULL Source: ╧ЁюЎхёё ёыш эш Number: -2147221502 Message: ═х єфрхЄё эрщЄш єърчрээ√щ Їрщы.
2012-02-28 11:55:22.166 Category:NULL Source: ╧ЁюЎхёё ёыш эш Number: -2147199373 Message: └ухэЄє ёыш эш эх єфрыюё№ ёюхфшэшЄ№ё ё яЁюъёш-ёхЁтхЁюь ╚эЄхЁэхЄр фы яюы№чютрЄхы "User" тю тЁхь тхс-ёшэїЁюэшчрЎшш. ╙схфшЄхё№ т Єюь, ўЄю эрёЄЁющъш яЁюъёш-ёхЁтхЁр т юсючЁхтрЄхых Internet Explorer єърчрэ√ тхЁэю, ышсю єърцшЄх ярЁрьхЄЁ -InternetProxyServer яЁш чряєёъх рухэЄр ёыш эш . 2012-02-28 11:55:22.175 Category:NULL Source: ╧ЁюЎхёё ёыш эш (ъышхэЄ тхс-ёшэїЁюэшчрЎшш) Number: -2147024896 Message: └ухэЄє ёыш эш эх єфрыюё№ ёюхфшэшЄ№ё ё URL-рфЁхёюь "https:/webserver1.ru/replisapi.dll" тю тЁхь тхс-ёшэїЁюэшчрЎшш. ╙схфшЄхё№, ўЄю єърчрэ яЁртшы№э√щ URL-рфЁхё, єўхЄэ√х фрээ√х фы тїюфр т ╚эЄхЁэхЄ ш эрёЄЁющъш яЁюъёш-ёхЁтхЁр, р Єръцх яЁютхЁ№Єх фюёЄєяэюёЄ№ тхс-ёхЁтхЁр.
|
+ 3 - Провал | Date 28.02.2012 15:55:20 Log Job History (SANDBSRV-testdb-testpublish-EXPDB\DEVELOP-testdb- 0)
Step ID 1 Server EXPDB\DEVELOP Job Name SANDBSRV-testdb-testpublish-EXPDB\DEVELOP-testdb- 0 Step Name Запустить агента. Duration 00:00:02 Sql Severity 0 Sql Message ID 0 Operator Emailed Operator Net sent Operator Paged Retries Attempted 0
Message Выполняется от имени пользователя: DOMAIN2\User.Произошел сбой в агенте репликации. Дополнительные сведения см. в журнале в сообщении для предыдущего шага задания или в мониторе репликации. Шаг завершился с ошибкой.
|
Подскажите где накосячил или сделал не правильно.
|