Проблемы с настройкой репликации

Доброго времени суток,
При настройке репликации столкнулся с следующей проблемой:
Утилита репликации (RepOffline.exe) при попытке подключения к БД выдаёт ошибку
"[DBNETLIB][ConnectionOpen(InvalidInstance()).] Недопустимое подключение"
Утилита запускается на том же компьютере где запущен MS SQL5. В настройках для входа на сервер пробовал использовать данные как Windows, так и Террасовтовской БД.
Предварительные операции по переносу *.exe,*.dll и *.sql фаилов, библиотек и регистрации сетевых библиотек согласно "Руководству по репликации" выполнены.

Нравится

29 комментариев

Здравствуйте!
Уточните пожалуйста Вы настраиваете или запускаете уже готовую репликацию? Потому как согласно документации RepOffline.exe - это "утилита репликации", настройка производится RepWizard.exe и SetOffline.exe

Добрый день! Уточните, пожалуйста, настраивали ли Вы строку соединения с помощью утилиты SetOffline.exe?

> Уточните пожалуйста Вы настраиваете или запускаете уже готовую репликацию?
Настраиваю.
> Потому как согласно документации RepOffline.exe - это "утилита репликации", настройка производится RepWizard.exe и SetOffline.exe
При запуске RepWizard.exe выдаёт ошибку
"Connection string is not adjusted.
Run SetOffline.exe to set up connection parameters."

*Утилита которая выдаёт ошибку указанную в стартовом сообщении - SetOffline.exe
Ошибка появляется после "Настроить -> Поставщик данных: "Microsoft OLE DB Provider for SQL Server" -> Выбор сервера -> логин//пароль пользователя -> Выбор БД на сервере"

Влияет ли эта ошибка на дальнейшую работу утилиты SetOffline.exe? Если дальнейшая работа возможна, то необходимо перенастроить строку соединения с базой на правильную.

Так ошибку какая утилита выдает? SetOffline.exe? Опубликуйте скриншот пожалуйста.

> Влияет ли эта ошибка на дальнейшую работу утилиты SetOffline.exe?
Влияет. Дальнейшая работа утилиты невозможна.
> Так ошибку какая утилита выдает? SetOffline.exe?
да, SetOffline.exe.
> Опубликуйте скриншот пожалуйста.
http://img377.imageshack.us/img377/2972/reperrormg0.png

Ошибка появляется при выборе БД (непосредственно при запросе списка). Если подключать БД вручную эта же ошибка возникает при проверке подключения:
http://img152.imageshack.us/img152/9238/reperror2ux1.png

Здравствуйте!
1. Какого поставщика данных Вы выбираете?
2. Это сервер или клиентская машина?
3. Сервер COMP доступен? К нему можно подключиться?
4. Какая версия MSSQL? Опубликуйте результат select @@version

> 1. Какого поставщика данных Вы выбираете?
Microsoft OLE DB Provider for SQL Server
> 2. Это сервер или клиентская машина?
Это сервер.
> 3. Сервер COMP доступен? К нему можно подключиться?
Да, доступен. На нем и запущена утилита.
> 4. Какая версия MSSQL? Опубликуйте результат select @@version
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-20
05 Microsoft Corporation
Express Edition on Windows NT 5.1 (Build 2600: Service Pack 3)

Добрый день!
Существует проблема при подключении к MSSQL2005 через поставщика Microsoft OLE DB Provider for SQL Server. Необходимо использовать SQL Native Client.

Вы уверены, что имя сервера MSSQL именно COMP? А не к примеру COMP\SQLEXPRESS?

> Вы уверены, что имя сервера MSSQL именно COMP? А не к примеру COMP\SQLEXPRESS?

Выбирал из предложенного в списке.

> Существует проблема при подключении к MSSQL2005 через поставщика Microsoft OLE DB Provider for SQL Server. Необходимо использовать SQL Native Client.

Если я правильно понял, то в дальнейших при использовании SQL Native Client поле "Источник данных" должно оставаться пустым (только в этом случае проверка подключения удачна (http://img364.imageshack.us/img364/1773/reperror3eh5.png)).
Однако в дальнейшем при запуске RepWizard.exe -> "Настройка репликации на центральной точке" не удаётся создать бэкап базы:
http://img261.imageshack.us/img261/4797/reperror4ab1.png
На диске C: свободно 32 Gb, размер БД - 350 Mb.

upd: при выборе сервера "COMP\SQLEXPRESS" успешно подключилось и выполнило бэкап. Спасибо.

При дальнейшем использовании утилиты RepWizard.exe на этапе подготовки БД возникла следующая проблема:
http://img233.imageshack.us/img233/9682/reperror5eu7.png

проблема возникает регулярно при каждой новой попытке запуска настройки репликации, в т.ч. после выполнения скрипта сброса метаданных.

* На всех папках (временных БД, \Bin, папки БД и бэкапа БД) на уровне файловой системы стоит полный доступ для всех пользователей, а также непосредственно для пользователя под которым осуществляется запуск утилиты.

С доступом на папки это не связано. Попробуйте при подключении указать не SQL Native Client как поставщика данных, а Microsoft OLE DB Provider for SQL Server.

При указании "SQL Native Client", параметры подключения для SetOffline.exe:
Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TOTAL_NEW;Application name="SetOffline.exe"
При дальнейшей настройке через RepWizard.exe не удаётся создать бэкап:
http://img261.imageshack.us/img261/4797/reperror4ab1.png

Максим, можно сейчас выполнить хранимую процедуру вручную, через MS Management Studio таким образом:

exec rep_PrepareClearDatabase 'cm_Clear'

Выполнять на рабочей базе

>При указании "SQL Native Client", параметры подключения для SetOffline.exe:
>Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TOTAL_NEW;Application name="SetOffline.exe"

В этой строке нет параметра Data_Source. Значит, что в настройках соединения не указан сервер, на котором находится указанная база. Надо указать.

Можно заменить файл в папке скриптов подготовки репликации 001.CandS.sql на тот, что во вложении.

Выполнял операции в обратном порядке, т.е. вначале заменил 001.CandS.sql, потом добавил указание сервера (теперь строка SetOffline.exe:
Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TOTAL_NEW;Data Source=COMP\SQLEXPRESS;Application Name=SetOffline.exe;Application name="SetOffline.exe" ), далее выполнил процедуру exec rep_PrepareClearDatabase 'cm_Clear', теперь выдаёт следующую ошибку:
http://img373.imageshack.us/img373/7797/reperror6en0.png

Во вложении сервис скрипта. Его нужно загрузить через TSAdmin.exe, открыть там же на редактирование и нажать F9 - он запустится на выполнение и для полей, на которых есть внешний ключ, уберет признак "Обязательное". После выполнения нужно снова запустить мастер создания схемы репликации.

Лог работы TSAdmin'a во вложении.
Результат работы RepWizard'a - ошибка идентичная предыдущей (http://img373.imageshack.us/img373/7797/reperror6en0.png).

Доброго дня!
Весьма странный лог в Вашем прикрепленном файле. Вот последние строчки функции, которая реализована в выложенном мною скрипте:

	Log.Write(1, 'Services without license:'); // - вывод списка таблиц, которые не сохранились в следствие отсутствия лицензии на модуль
	WriteArrayToLog(ServicesHasNoLicenseArray);
	Log.Write(1, 'Services with error while saving:');  // - вывод списка таблиц, которые не сохранились в следствие ошибок
	WriteArrayToLog(ServicesHasSaveError);
	Log.Write(1, 'Process finished'); // - последняя строка

Как отсюда видно, в конце лога работы моего скрипта должно быть как минимум три строчки такого содержания:
Services without license:
Services with error while saving:
Process finished'

В логе, который Вы прикрепили последние строчки выглядят так:
[08.12.23 16.31.27.218] (E) tbl_WorkflowItem
[08.12.23 16.31.27.718] (W)
[08.12.23 16.31.27.750] (E) tbl_Account
[08.12.23 16.31.29.578] (W) Process stopped

Как видно, они кардинально отличаются от моего скрипта. Я на всякий случай перепроверил содержимое архива, загрузил себе сервис скрипта, который там лежит и запустил - все выполнилось без проблем. Вероятно, Вы запустили на выполнение не тот скрипт. Проверьте еще раз все. Если проблема не обнаружена - предоставьте скриншоты загруженного и открытого скрипта в TSAdmin, а так же полный исходный текст скрипта.

Действительно запускал не тот скрипт.
Лог загруженного и скрин работы RepWizard'a в прикрепленных.

Судя по ошибке в логе Вы на одном сервере делали бэкап базы и потом поднимали его на другом. При этом пользователи в базе переносятся, а пользователи сервера с пользователями базы не связываются. Для решения проблемы нужно выполнить в SQL Management Studio следующее:

exec sp_change_users_login 'Update_One', 'fkeys', 'fkeys'

после этого запустить скрипт еще раз

Доброго дня!
Еще один вариант решения проблемы - распаковать прикрепленный архив в папку с репликацией(в нем обновленные скрипты подготовки репликации). При использовании этих скриптов проблем не возникает.

> Для решения проблемы нужно выполнить в SQL Management Studio следующее:
> exec sp_change_users_login 'Update_One', 'fkeys', 'fkeys'
> после этого запустить скрипт еще раз
Это помогло. Настройка подготовки репликации на сервере прошла успешно. Спасибо.

Здравствуйте!
У нас та же проблема у пользователя при обычном входе в Terrasoft, хотя с другого компьютера этот пользователь заходит нормально. Иногда помогает перезагрузка компьютера.

Здравствуйте.
Вопросом "пускать или не пускать" пользователя в систему занимается сервер СУБД. Если откуда-то пользователь заходит, то с его учётной записью всё нормально. В этой ситуации нужно смотреть на конечного клиента (рабоче место). Если используются конкурентные лицензии, то параметры подключения должны быть настроены точно так же, как и на той машине, где формировался запрос на лицензии. Например, если на машине, где был сформирован запрос был указан сервер БД через IP-адрес, то и на остальных клиентах точно также должен быть указан IP сервера. Если было указано имя, то и везде тоже должно быть указано имя. Если эти рекомендации не помогут, обратитесь, пожалуйста, в службу технической поддержки для более оперативного решения проблемы. Вероятнее всего понадобится удалённый доступ.
С уважением, Terrasoft Support Team.

Спасибо! Вместо IP-адреса задал имя сервера и помогло.

Показать все комментарии