У меня есть 3 экземпляра Sql (2008 R2) на 3 разных серверах. Версии: (10.50.2550.0 SP1 Standard Edition (64-разрядная), 10.50.2550.0 SP1 Standard Edition (64-разрядная)). Цель - мигрировать все базы данных и логины на новый сервер мы просто покупаем с Sql server 2012.
Не знаю, как подойти, попробовал воспользоваться мастером копирования базы данных, но все не получается. Если я решу сделать резервную копию каждой базы данных и восстановить их на новых серверах, я не знаю, как перенести логины.
Как лучше всего справиться с ситуацией?
Извините за недоразумение: (Подробнее о проблеме)
Строка 60:
OnError, DUPFAIDS, NT AUTHORITY \ SYSTEM, DUAPPSRV1_EXAPPSVR1_DUPFAIDS_PFAIDS_Transfer Objects Task, {8F0C82BB-4C5D-4796-BE75-BAB033C59039}, {3818CD1B-9685-62B03-AFE9685-46B03-AFE9
03.12.2014 12:10:15 PM, 03.12.2014 12:10:15 PM, 0,0x, ОШИБКА: errorCode = -1073548784
description = Выполнение запроса "-------------------------------------------- ------... "со следующей ошибкой:" Неверное имя объекта 'xwd_window_disabled_objects'. ".
Возможные причины сбоя: проблемы с запросом, свойство ResultSet неправильно настроено, параметры установлены неправильно или соединение не установлено правильно. **
Есть много разных способов переноса баз данных. Чаще всего рекомендуется резервное копирование и восстановление, но если у вас более 100 баз данных, вы можете создать сценарий для отсоединения и присоединения баз данных. Я успешно использовал это для переноса очень большого количества (сотен) баз данных на новый сервер:
@ECHO ON
set controlfile=control.txt
set newipmdf=\\newserver\g$
set newipldf=\\newserver\e$
set oldserver=oldserver\Prod1
set oldmdfpath=d:\prod1
set newmdfpath=g:\data
set copymdfpath=m:\data
set newserver=newserver
set oldlogpath=e:\prod1
set newlogpath=e:\log
set copylogpath=l:\log
set movedmdfpath=%oldmdfpath%\moved
set movedldfpath=%oldlogpath%\moved
mkdir %movedmdfpath%
mkdir %movedldfpath%
net use m: %newipmdf%
net use l: %newipldf%
SETLOCAL DISABLEDELAYEDEXPANSION
FOR /F %%L IN (%controlfile%%) DO (
SET "line=%%L"
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO !line!
sqlcmd -E -S!oldserver! -Q"EXEC master.dbo.sp_detach_db @dbname = N'!line!'"
copy "!oldmdfpath!\!line!.mdf" !copymdfpath!
copy "!oldlogpath!\!line!_log.ldf" !copylogpath!
sqlcmd -E -S!newserver! -Q"CREATE DATABASE [!line!] ON ( FILENAME = N'!newmdfpath!\!line!.mdf' ),( FILENAME = N'!newlogpath!\!line!_log.ldf' ) FOR ATTACH"
move "!oldmdfpath!\!line!.mdf" !movedmdfpath!
move "!oldlogpath!\!line!_log.ldf" !movedldfpath!
ENDLOCAL
)
ENDLOCAL
net use m: /z
net use l: /z
Что касается логинов, я не могу помочь вам с паролями, но вы сможете получить список имен пользователей с помощью:
SELECT [name], type, type_desc
FROM [master].[sys].[server_principals]
where is_disabled=0 and type in ('S','U')
Резервное копирование и восстановление баз данных, как предлагается. Затем запустите этот скрипт microsoft (https://support.microsoft.com/kb/918992) на старых серверах, чтобы сгенерировать сценарий для создания учетных записей на новом сервере. Поскольку у вас есть два исходных сервера, обязательно внимательно просмотрите свой сценарий, чтобы убедиться, что нет повторяющихся записей или других проблем.
Скрипт Кэтрин Вильярд для отсоединения / присоединения хорош.
Если вы хотите сделать резервную копию и восстановить, это также хороший вариант, который часто используется. Но сначала выполните логины.
Скопируйте код для sp_hexadecimal
и sp_help_revlogin
из эта статья Technet и использовать sp_help_revlogin
для генерации операторов TSQL, которые можно использовать для копирования ваших учетных записей. Процесс такой:
EXEC sp_help_revlogin
на вашем старом сервереsp_help_revlogin
и вставьте их в новое окно запроса, подключенное к вашему новому экземпляру SQL Server.Если все сделано правильно, ваш новый экземпляр будет иметь соответствующие логины (с соответствующими идентификаторами безопасности и паролями, это ключ). Затем вы можете создавать резервные копии и восстанавливать базы данных на новом экземпляре, не беспокоясь о потерянных учетных записях базы данных.
(ПРИМЕЧАНИЕ для будущих посетителей: если по какой-то причине ссылка не работает, просто выполните поиск sp_help_revlogin
найти новую страницу).