Решил обобщить немного информации о том, какие действия чаще-всего требуется выполнять при перенесении базы данных Terrasoft для СУБД MS SQL.
Также хотелось бы ответить на часто задаваемый пользователями вопрос: переносить базу данных без проблем можно либо на SQL сервер той-же версии, либо версии старше (т.е. с MS SQL 2005 на MS SQL 2008 база данных может быть перенесена, наоборот же, с более новой версии на более старую, перенос базы данных не подразумевается).
Итак, при переносе базы данных с сервера на сервер выполняется следующая последовательность действий:
Необходимо сделать бэкап базы данных на одном сервере и восстановите его на втором.
Если использовались конкурентные лицензии, то в первую очередь очистите значение сервера сессий для базы данных. Сделать это можно с помощью следующего запроса к базе данных:
update tbl_DataBaseInfo set ServerSessionsInfo = NULL
Для выполнения запроса сделайте следующее:
Вызовите контекстное меню, нажав правой кнопкой мыши на названии базы данных, и выбрать New Query.
Далее ввести запрос и нажать Execute для его выполнения.
После этого Вам необходимо будет перезаказать конкурентные лицензии.
Также при переносе базы данных на другой сервер необходимо производить сопоставление пользователей базы данных Terrasoft с именами входа в MS SQL.
Предварительно необходимо создать соответствующие имена входа на SQL сервере.
Для этого на сервере необходимо перейти во вкладку [Security]>[Logins] и там создать соответствующие имена входа.
Обязательно при создании имени входа для пользователя указать тип авторизации – «SQL аторизация»:
Также обязательным условием является установка серверной роли «сисадмин» для имени входа системного администратора Terrasoft.
Далее необходимо провести, собственно, сопоставление. Сделать это можно выполнив запрос к базе данных следующего рода:
sp_change_users_login 'update_one', 'fkeys', 'fkeys'
Данный запрос необходимо выполнить для каждого пользователя Terrasoft заменив в запросе слово “fkeys” на соответственное (например для supervisor’a данный запрос примет вид sp_change_users_login 'update_one', 'supervisor', 'supervisor').
Далее, если предполагается перенос базы данных в другой домен (следовательно, и пользователи с домена изменятся) для изменения пользователей Вам необходимо выполнить следующий порядок действий:
1. В таблице tbl_AdminUnit базы данных Terrasoft в полях .Name и .SQLObjectName заменить соответствующие записи пользователей из старого домена на новые. Например если пользователь раньше имел имя tm/Yakovenko (домен tm), а стал tcrm/Yakovenko (домен tscrm), то записи в указанных полях Вы должны заменить на tcrm/Yakovenko.
2. Создать login (подтянуть из Active Directory).
3. Добавить пользователя в БД с новым логином.
4. Если пользователь имел роль системного администратора в Terrasoft, то его логину необходимо дать роль sysadmin.
5. Если пользователь имел роль обычного администратора в Terrasoft, то его логину необходимо дать роль dbowner.
6. После этого в Terrasoft в разделе [Администрирование] каждому пользователю на детали [Группы] необходимо удалить и добавить все группы (таким образом пользователю перераздадутся права доступа).