Перенос базы данных с WindowsXP на Windows7

Как правильно перенести базу данных Lers со старого компьютера c WindowsXP на новый с операционной системой Windows7? Описанный в документации способ резервного копирования с последующим восстановлением не сработал. С XP на XP все получается, а с XP на 7 – нет.
Спасибо.

Полный перенос возможен только через резервное копирование базы данных с последующим восстановлением. Восстановление базы данных из резервной копии выполняет SQL-сервер, версия операционной системы на этот процесс никак не влияет. В чем именно у вас проблема?

Опишу свои действия:
1.Установил на новом компьютере с ОС Windows7 Лэрс учет той же версии, что
и на старом с WindowsXP 2.78.59.
2.Сделал резервное копирование базы данных на старом компьютере.
3.Создал папку C:Temp на новом компьютере. Создал в ней файлы Restore.cmd
и Restore.txt.
4.Остановил службу LERSServer.
5.Запустил файл Restore.cmd
6.В окне консоли отобразился следующий текст:

C:Temp>sqlcmd.exe -S (local)LERS -d LERS -i Restore.txt
Контекст базы данных изменен на “master”.
10 обработано.
20 обработано.
30 обработано.
40 обработано.
50 обработано.
60 обработано.
70 обработано.
80 обработано.
90 обработано.
100 обработано.
Обработано 2456 страниц для базы данных “Lers”, файл “LERS” для файла 1.
Обработано 3 страниц для базы данных “Lers”, файл “LERS_log” для файла 1.
RESTORE DATABASE успешно обработал 2459 страниц за 0.831 секунд (24.234 MБ/сек).

Сообщение 916, уровень 14, состояние 1, сервер VPCLERS, строка 4
Серверу-участнику “VPCV” не удалось обратиться к базе данных “Lers” в текущем к
онтексте безопасности.
Сообщение 15247, уровень 16, состояние 1, сервер VPCLERS, строка 1
У пользователя нет разрешений на выполнение данного действия.
Сообщение 15247, уровень 16, состояние 1, сервер VPCLERS, строка 1
У пользователя нет разрешений на выполнение данного действия.
Сообщение 15247, уровень 16, состояние 1, сервер VPCLERS, процедура sp_addrolem
ember, строка 51
У пользователя нет разрешений на выполнение данного действия.


C:Temp>pause
Для продолжения нажмите любую клавишу . . .

7.После этого службу LERSServer запустить не смог. После запуска она сама останавливается.

Сервер ЛЭРС УЧЕТ запускается и работает под выделенной учетной записью (по-умолчанию - LERSService). Эта учетная запись должна иметь доступ к SQL-серверу.

В вашем случае скрипт не смог создать пользователя в базе данных LERS, скорее всего имя учетной записи сервера указано неправильно. Приведите пожалуйста содержимое файла restore.txt и укажите под какой учетной записью запускается сервер ЛЭРС УЧЕТ. Это можно посмотреть в оснастке управления службами (Панель управленияВсе элементы панели управленияАдминистрированиеСлужбы) в колонке “Вход от имени” для службы “ЛЭРС УЧЕТ - Сервер”.

Содержимое файла Restore.txt:
USE master

GO



RESTORE DATABASE Lers

FROM DISK = ‘C:TempLers.bak’

WITH FILE = 1, NOUNLOAD, STATS = 10, REPLACE

GO



USE LERS

GO



DECLARE @login varchar(128)

SET @login = ‘VPCLERSService’



IF EXISTS (SELECT * FROM sys.schemas WHERE [name] = ‘LERSService’)

DROP SCHEMA LERSService



IF EXISTS (SELECT * FROM sys.syslogins WHERE [name] = @login)

EXEC (‘DROP LOGIN [’ + @login + ‘]’)



EXEC (‘CREATE LOGIN [’ + @login + ‘] FROM WINDOWS’)



IF EXISTS (SELECT * FROM sys.database_principals WHERE [name] = ‘LERSService’)

DROP USER LERSService



EXEC (‘CREATE USER LERSService FOR LOGIN [’ + @login + ‘]’)

EXEC sp_addrolemember ‘db_owner’, ‘LERSService’



GO

Запуск службы от имени:
.LERSService

Ошибок в скрипте нет, мы проверили его на тестовой системе - отработал без проблем.

Есть подозрение, что ваша учетная запись, от имени которой выполняется скрипт, не является администратором (роль sysadmin) на SQL-сервере, поэтому при создании в SQL-сервере учетной записи для LERSService происходит ошибка.

Пожалуйста, уточните версию SQL-сервера, были ли он установлен из пакета ЛЭРС УЧЕТ или вручную из другого источника, устанавливался он под вашей учетной записью?

P.S. Мы приняли решение подготовить утилиту для восстановления БД ЛЭРС УЧЕТ раньше намеченного графика. Утилита позволит полностью автоматизировать процесс восстановления БД и предоставит больше информации для устранения ошибок.

Предварительная версия утилиты будет готова в течение 1-2 дней. Впоследствии мы включим ее в состав системы.

Восстановление производилось из-под учетной записи, входящей в группу Администраторы. Установка Лэрс учет производилась из-под этой же учетной записи. SQL сервер установлен из дистрибутива Лэрс учет. Установка производилась на “чистую” ОС.
За помощь спасибо, буду ждать утилиту восстановления.

Предварительная версия будет готова завтра. С ее помощью мы должны будем определить причину проблемы и устранить ее.

Мы подготовили утилиту для восстановления базы данных.

Это предварительная версия утилиты, окончательная будет на следующей неделе. Для работы текущей версии требуется, чтобы сервер ЛЭРС УЧЕТ и SQL-сервер были установлены на один и тот же компьютер (в последующем это ограничение будет снято).

Попробуйте восстановить базу данных при помощи этой утилиты. При ошибке восстановления скопируйте и перешлите нам протокол ее работы.