Я работаю над созданием рабочей копии рабочей базы данных на SQL Server 2008 R2 SP1. Активная база данных в настоящее время легко используется двумя разработчиками для запросов только для чтения, но для новой базы данных также будут выполняться обновления.
Поскольку размер базы данных составляет 2,1 ТБ, а на восстановление и обновление до последней сборки, необходимой для тестирования, потребовалось всего 3 дня, я изначально планировал создать новый набор файлов резервных копий, а затем выполнить восстановление из этих файлов. Это позволило бы мне создать разрабатываемую копию базы данных на одном и том же экземпляре SQL и компьютере без необходимости переводить текущую базу данных в автономный режим.
Однако, чтобы сэкономить пару дней, я подумал, что было бы неплохо просто скопировать физические файлы базы данных и прикрепить новую копию базы данных. К сожалению, когда я пытаюсь скопировать, я получаю сообщение об ошибке, связанную с блокировкой этих файлов SQL Server.
Поскольку я не могу перевести базу данных в автономный режим ни для чего, кроме как перенести файлы журнала (я могу закончить это до того, как люди зайдут утром), есть ли способ скопировать файлы базы данных в реальном времени, не переводя базу данных в автономное состояние? Или я должен ждать, пока люди не пойдут домой, чтобы сделать это?
источник
Нет, вам придется отключить его, чтобы скопировать файлы. Если ваша база данных разделена на более мелкие файлы / файловые группы, это может помочь ускорить восстановление резервной копии после того, как вы сделали это один раз (в зависимости от того, какие данные изменяются и какие данные необходимы для копии для разработки).
источник
Я видел другие ответы, и они имеют смысл. Однако, просто чтобы ответить на ваш вопрос, вы, безусловно, можете копировать файлы базы данных, не переводя БД в автономный режим. Для этого вам нужно будет использовать программирование SMO. Проверьте это: http://technet.microsoft.com/en-us/library/ms162175(v=sql.100).aspx
Обратите внимание, что приведенная ссылка предназначена для общих объектов программирования SMO, а не для конкретного ответа на этот вопрос. Я еще этого не сделал, но скоро собираюсь попробовать это и сообщу всем (если я помню), что я узнаю.
источник
Да.
Все, что вам нужно сделать, это установить базу данных только для чтения:
Запустить:
Скопируйте файлы базы данных - MDF, LDF и т. Д. В новое место назначения.
После завершения копирования вы можете отсоединить и повторно прикрепить на новом месте. Просто убедитесь, что вы сбросили опцию «только для чтения», и вы используете ту же учетную запись пользователя при манипулировании этими файлами. Кроме того, вы можете удалить старые файлы после перемещения.
Другой метод
После того, как файлы успешно скопированы (шаг 2 выше):
Вы можете установить базу данных в
Single_User
режим: затем:Запустить:
D:\
быть новым местомУбедитесь, что файлы данных в новом расположении (
D:\
) имеют полный доступ к учетной записи службы под управлением SQL Server.Перезапустите службы SQL
Запустить:
Выполнено!
источник