Резервное копирование / восстановление SQL Server против отсоединения / присоединения

StackOverflow https://stackoverflow.com/questions/610113

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Теперь у меня есть два решения, и я хочу узнать плюсы и минусы каждого решения. Спасибо!

Решение 1. Отключите исходную базу данных, которая содержит самые последние данные, затем скопируйте на серверы назначения, которым требуются самые последние данные, и подключите базу данных на серверах назначения;

Решение 2. Создайте полную резервную копию исходного сервера для всей базы данных, затем скопируйте данные на серверы назначения и выполните полное восстановление на стороне сервера назначения.

заранее спасибо, Джордж

Это было полезно?

Решение

Параметр «Отсоединить / Присоединить» часто выполняется быстрее, чем создание резервной копии, поскольку для этого не требуется создавать новый файл. Следовательно, время от сервера А до сервера Б - это почти просто время копирования файла.

Параметр «Резервное копирование / восстановление» позволяет выполнить полное резервное копирование, восстановить его, а затем выполнить дифференциальное резервное копирование, что означает, что время простоя может быть сокращено между этими двумя.

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

РЕДАКТИРОВАТЬ: просто чтобы уточнить несколько моментов. Под временем простоя я подразумеваю, что если вы переносите базу данных с одного сервера на другой, вы, как правило, будете останавливать людей, использующих ее, пока она находится в пути. Следовательно, от "стопа" указать на сервере A до «запуска» на сервере B это можно считать простоем. В противном случае любые действия, выполняемые с базой данных на сервере A во время передачи, не будут реплицированы на сервер B.

Что касается " создать новый файл " ;. Если вы отключите базу данных, вы можете скопировать файл MDF немедленно. Он уже готов к копированию. Однако, если вы выполняете резервное копирование, вам нужно подождать, пока не будет создан файл .BAK, а затем переместить его в новое место для восстановления. Опять же, все сводится к тому, является ли это моментальной копией или миграцией.

Другие советы

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

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

Кроме того, функциональность COPY_ONLY имеет значение только для дифференциальной базы, а не для LOG. Все резервные копии журналов могут применяться последовательно из любой резервной копии, при условии, что в цепочке журналов не было разрыва. Есть небольшая разница с точкой архива, но я не вижу, где это имеет значение.

Решение 2 будет моим выбором ... Прежде всего потому, что оно не приведет к простоям в исходной базе данных. Единственный недостаток, который я могу видеть, это то, что в зависимости от модели восстановления базы данных журнал транзакций будет усечен, что означает, что если вы хотите восстановить какие-либо данные из журнала транзакций, который вы будете заполнены, вам придется использовать файл резервной копии.

РЕДАКТИРОВАТЬ: нашел хорошую ссылку; http://sql-server-performance.com/Community/ форумы / р / 5838 / 35573.aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top