Назад | Перейти на главную страницу

Как переместить весь экземпляр SQL для SQL Server 2012 на другой сервер?

Я пробовал это с SQL Server 2012, без радости:

Как я могу скопировать экземпляр SQL Server 2008 на другой сервер?

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

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

Исходный сервер - Windows 2008 R2, целевой сервер - Windows 2012 R2, если это имеет значение.

Да, я знаю, как это сделать "sp_help_revlogin", но у нас много пользователей, и я не хочу бегать ко всем и получать их пароль

Это ПРОСТАЯ операция с MSql, почему, черт возьми, MS должна вставлять всевозможные скрытые права и мусор в свою файловую систему? Когда SQL-сервер выключен, база данных должна быть просто другим файлом ИМХО.

Кроме того, если SQL-сервер когда-либо делает дамп, мне бы очень хотелось, чтобы мне не приходилось восстанавливать все 600 ГБ из резервной копии, если я могу просто восстановить 80 ГБ в файлах базы данных SQL, понимаете?

SQL DBA здесь. Я думаю, вы не понимаете, как sp_help_revlogin работает: http://support.microsoft.com/kb/918992

Это набор сценариев, которые вы запускаете на исходном сервере, на выходе будет большой длинный сценарий для воссоздания всех логинов, включая (зашифрованные) пароли.

Возьмите этот сценарий и запустите его на целевом сервере, он воссоздает все логины, и ваши восстановленные (или подключенные) базы данных должны их легко распознать.

5-минутный процесс, максимум, если вы не хотите просмотреть список вывода и включить / исключить отдельные логины.

Я не знаю, что вы увязли с копированием всей папки, полной файлов SQL, вам, возможно, придется перемотать там шаг или два, если вы не просто перезаписали файлы из только что установленного экземпляра.

Мой предпочтительный метод:

  1. Запуск нового экземпляра SQL из чистой установки
  2. Копирование MASTER возможно, но очень сложно. Честно говоря, единственная системная база данных, которую я бы скопировал, - это MSDB (для сохранения запланированных заданий) или просто сценарий их из старого ящика и воссоздание их.
  3. Для пользовательских баз данных либо сделайте резервную копию / восстановление из старого ящика, либо скопируйте только данные (mdf, ndf) и файлы журнала (ldf) в новую коробку и прикрепите их.

Удачи. Вы также можете найти более подробную справку на dba.Stackexchange.com.

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

Почему вы просто не сделали резервную копию и не восстановили базы данных?

почему, черт возьми, MS должна втыкать всевозможные скрытые права и мусор в свою файловую систему? Когда SQL-сервер выключен, база данных должна быть просто другим файлом ИМХО.

Винить Microsoft в вашем непонимании - это не круто. Это не их вина, что вы выбрали неподдерживаемый метод передачи баз данных. Базы данных - это просто файлы. Вы можете легко сделать резервную копию и восстановить их или отсоединить их, скопировать на новый сервер и присоединить.

Кроме того, если SQL-сервер когда-либо делает дамп, мне бы очень хотелось, чтобы мне не приходилось восстанавливать все 600 ГБ из резервной копии, если я могу просто восстановить 80 ГБ в файлах базы данных SQL, понимаете?

Конечно, это легко сделать, но сначала вы должны знать, что делаете.

Ни SQL Server, ни Microsoft в этом не виноваты.

Ваши базы данных ЯВЛЯЮТСЯ «просто» файлами. Если вы щелкните правой кнопкой мыши базу данных в SSMS и выберите свойства, вы сможете найти эту информацию. Обычно это файл базы данных (.mdf) и журнал транзакций (.ldf).

Я думаю, что вы ошиблись в том, что вам не следует копировать все содержимое пути установки. Вместо этого вы должны скопировать только файлы .mdf и .ldf обратно в то же место, где они были на исходном сервере.

Обычно я просто перемещаю отдельные файлы базы данных, которые мне нужны, и повторно добавляю их вручную в SQL. Однако я считаю, что если вы скопируете системные базы данных, вы перенесете всю конфигурацию SQL. Самым важным здесь является то, что все базы данных находятся на том же пути, что и изначально на исходном сервере, поскольку эта информация будет содержаться в системных базах данных.

Что касается резервного копирования и восстановления - ДА, вы можете просто восстановить файлы .mdf и .ldf. Но различные методы резервного копирования и восстановления SQL - это уже другая тема.

Конечно, при всем этом вам нужно убедиться, что служба SQL-сервера остановлена ​​или база данных отключена.