Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Pull merge replication между SQL2008 & SQL2000  [new]
uncle_max
Member

Откуда:
Сообщений: 70
Добрый день,

Есть два компьютера.
Первый (DEV7):
ОС – Windows Server 2008 Enterprise SP1
SQL 2008 (Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) Mar 29 2009 10:27:29 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition on Windows NT 6.0 <X86> (Build 6002: Service Pack 2))

Второй (DEV6):
ОС - Windows Server 2003 Standard SP2
SQL 2000 (Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Первый комп - Publisher/Distributor (не в домене), второй – Subscriber (в домене).
Когда создаю Merge Replication с push subscription – все работает на ура. А вот когда с pull subscription – job на втором компе падает с ошибкой – “ The schema script 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\ReplData\unc\DEV7_CRD_DEV6 TEST MERGE\20090525112728\test_tbl_2.sch' could not be propagated to the subscriber. The step failed.”

Я понимаю, что что-то не то с правами и/или логинами. Подскажите, пожалуйста, где покрутить, а то уже третий день ковыряюсь безрезультатно.

Спасибо,
Max
25 май 09, 07:03    [7220865]     Ответить | Цитировать Сообщить модератору
 Re: Pull merge replication между SQL2008 & SQL2000  [new]
Moriarti
Member

Откуда: Ultima Thule
Сообщений: 744
uncle_max
Я понимаю, что что-то не то с правами и/или логинами. Подскажите, пожалуйста, где покрутить, а то уже третий день ковыряюсь безрезультатно


А учетные записи из под которых службы SQL работают имеют доступ к сетевым папкам?
Тут репликация pull, значит надо проверить аккаунт Subscriber'a - имеет ли он доступ к расшаренной ReplData издателя?
25 май 09, 09:12    [7221054]     Ответить | Цитировать Сообщить модератору
 Re: Pull merge replication между SQL2008 & SQL2000  [new]
uncle_max
Member

Откуда:
Сообщений: 70
Moriarti

А учетные записи из под которых службы SQL работают имеют доступ к сетевым папкам?
Тут репликация pull, значит надо проверить аккаунт Subscriber'a - имеет ли он доступ к расшаренной ReplData издателя?

Так в том то и проблемма, что аккаунт Subscriber'a - доменый аккаунт, а Publisher - stand-alone server.
Вот нашел статью - http://support.microsoft.com/default.aspx?scid=kb;en-us;321822
Похоже, что придется FTP городить на Publisher.
25 май 09, 09:36    [7221153]     Ответить | Цитировать Сообщить модератору
 Re: Pull merge replication между SQL2008 & SQL2000  [new]
Moriarti
Member

Откуда: Ultima Thule
Сообщений: 744
uncle_max
Так в том то и проблемма, что аккаунт Subscriber'a - доменый аккаунт, а Publisher - stand-alone server.
Вот нашел статью - http://support.microsoft.com/default.aspx?scid=kb;en-us;321822
Похоже, что придется FTP городить на Publisher.


А доменность аккаунта службы Subscriber'a - это принципиально?
Я настраивал как раз пулл репликацию для холдинга (куча доменов, куча служб).
Что я сделал. Для всех служб SQL на всех серверах завел локальный аккаунт "mssql" с одинаковым паролем. Это решило кучу проблем.
25 май 09, 09:46    [7221186]     Ответить | Цитировать Сообщить модератору
 Re: Pull merge replication между SQL2008 & SQL2000  [new]
uncle_max
Member

Откуда:
Сообщений: 70
Moriarti

Что я сделал. Для всех служб SQL на всех серверах завел локальный аккаунт "mssql" с одинаковым паролем. Это решило кучу проблем.

Я пробовал сделать похожее с локальным администратором (.\Administrator) - не помогло. Сейчас попробую по Вашему совету создать отдельный аккаунт. А если не секрет, какие права Вы дали "mssql" или в какую группу/ы включили?
25 май 09, 09:56    [7221223]     Ответить | Цитировать Сообщить модератору
 Re: Pull merge replication между SQL2008 & SQL2000  [new]
Moriarti
Member

Откуда: Ultima Thule
Сообщений: 744
uncle_max
Я пробовал сделать похожее с локальным администратором (.\Administrator) - не помогло.


Просто локальный администратор не решить проблему.
Требуются права доступа к сетевым ресурсам.
25 май 09, 10:03    [7221260]     Ответить | Цитировать Сообщить модератору
 Re: Pull merge replication между SQL2008 & SQL2000  [new]
uncle_max
Member

Откуда:
Сообщений: 70
Moriarti
Просто локальный администратор не решить проблему.
Требуются права доступа к сетевым ресурсам.


Так, по моему мнению, локальный администратор имеет доступ ко всему на этом компе. Или, для примера, если добавить Ваш аккаунт "mssql" в локальную группу "Administrators" то все проблеммы с доступом к этому компу будут решены. Вот, только, не хочется давать лишних прав, поэтому я и спросил, в какую группу вы добавили своего "mssql" ;-)
25 май 09, 10:15    [7221325]     Ответить | Цитировать Сообщить модератору
 Re: Pull merge replication между SQL2008 & SQL2000  [new]
Moriarti
Member

Откуда: Ultima Thule
Сообщений: 744
uncle_max
Так, по моему мнению, локальный администратор имеет доступ ко всему на этом компе. Или, для примера, если добавить Ваш аккаунт "mssql" в локальную группу "Administrators" то все проблеммы с доступом к этому компу будут решены. Вот, только, не хочется давать лишних прав, поэтому я и спросил, в какую группу вы добавили своего "mssql" ;-)


Cогласен, но дело в том, что при старте репликации, служба SQL подписчика по аккаунтом mssql лезет в сеть на сервер издателя и инициирует обмен данными. Если на сервере издателя есть аккаунт mssql - то проблем с доступом быть не должно. В этом смысл аккаунтов с одинаковыми именами - чтобы прошла аутентификация.

Можно, конечно, обойтись без админских прав аккаунта, в базе знаний Microsoft статья была, на какие папки и ветки реестра надо дать права учетной записи при репликации слиянием, к сожалению, сейчас найти не смог.
25 май 09, 11:45    [7221922]     Ответить | Цитировать Сообщить модератору
 Re: Pull merge replication между SQL2008 & SQL2000  [new]
uncle_max
Member

Откуда:
Сообщений: 70
Ура! Все получилось. Большое спасибо профессору ;-) Moriarti за ценные советы.
Итак, о граблях и о том, как их удалось обойти:

1. На обоих серверах создал один и тот же локальный Windows аккаунт (в нашем случае "mssql") и добавил его в локальную группу "Administrators"

2. Разрешил Mapping to \\Hostname\C$ Share on Windows 2008

в RegEdit
ветка - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
добавить 32-bit DWORD value named LocalAccountTokenFilterPolicy and set the value to 1

источник: http://www.howtogeek.com/howto/windows-vista/enable-mapping-to-hostnamec-share-on-windows-vista/

3. В SQL 2008 (который на Win 2008) когда делал “Configure Distribution” и дошел до “Snapshot folder” – поменял локальный путь к папку на UNC path
т.е. SQLник предлагал C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\ReplData
а я заменил на \\DEV7\c$\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\ReplData

4. Потом создал публикацию для SQL 2008 & SQL 2000 и запустил ее под SQL Server Agent service account и создал pull Subscriber.

Примечания:
Шаг N1 – добавление в группу "Administrators" необязательно. Но см. прим. ниже.
Шаг N2 – необязательный, но тогда вам нужно давать конкретные права вашему логину на конкретные ресурсы. Мне было некогда исследовать этот вопрос из-за недостатка времени
26 май 09, 06:40    [7226045]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить