Копирование баз данных путем создания и восстановления резервных копий

Применимо к: SQL Server (все поддерживаемые версии)

В SQL Serverможно создать новую базу данных, восстановив резервную копию пользовательской базы данных, созданной в SQL Server 2005 (9.x) или более поздней версии. Однако резервные копии баз данных master, model и msdb , созданных в более ранней версии SQL Server , восстановить на SQL Serverневозможно. Кроме того, резервные копии, созданные в SQL Server , невозможно восстановить в более ранних версиях SQL Server.

Важно!

SQL Server 2016 использует путь по умолчанию, отличный от пути, использованного в предыдущих версиях. Поэтому для восстановления резервной копии базы данных, созданной в месте расположения по умолчанию для ранних версий, необходимо использовать параметр MOVE. Сведения о новом пути по умолчанию см. в разделе Расположение файлов для экземпляра по умолчанию и именованных экземпляров SQL Server. Дополнительные сведения о перемещении файлов баз данных см. в статье «Перемещение файлов баз данных» далее в этом подразделе.

Основные этапы копирования базы данных, используя функции резервного копирования и восстановления

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

Основные этапы.

  1. Создайте резервную копию базы данных-источника, которая может находиться на экземпляре SQL Server 2005 (9.x) или более поздней версии. Компьютер, на котором запущен этот экземпляр SQL Server , называется компьютером-источником.

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

  3. Восстановите резервную копию базы данных- источника на целевом компьютере. При восстановлении базы данных автоматически создаются все ее файлы.

Рассматриваются дополнительные вопросы, которые могут повлиять на процесс.

Перед восстановлением файлов базы данных

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

Также при восстановлении базы данных, если это необходимо, можно указать сопоставление дисков, имена файлов или путь для восстановления.

Это может быть необходимо в следующих ситуациях.

  • Нужная структура каталогов или сопоставление дисков, используемые на исходном компьютере, могут отсутствовать на другом компьютере. Например, возможно, резервная копия содержит файл, который нужно восстановить на диск E, но на целевом компьютере диска E — нет.

  • на целевом диске может быть недостаточно свободного места;

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

    • Если существующий файл базы данных может быть перезаписан, он будет перезаписан (это не затронет файл, относящийся к базе данных с другим именем).

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

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

Перемещение файлов баз данных

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

  • Нужно восстановить базу данных из резервных копий, созданных в месте расположения по умолчанию для предыдущей версии.

  • Может оказаться необходимым восстановить некоторые файлы базы данных из резервной копии на другой диск из-за нехватки места на диске по умолчанию. Такое случается довольно часто, потому что у большинства компьютеров в организациях разное число и параметры дисковых накопителей и различные конфигурации программного обеспечения.

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

Дополнительные сведения см. в подразделе «Восстановление файлов и файловых групп в новое место назначения» далее в этом разделе.

Изменение имени базы данных

Можно изменить имя базы данных при восстановлении на целевом компьютере без восстановления файлов с последующим изменением имени базы вручную. Например, нужно изменить имя базы данных с Sales на SalesCopy , чтобы указать на то, что это копия базы данных.

Имя базы данных, явно задаваемое при ее восстановлении, автоматически используется в качестве нового имени базы данных. Так как такой базы данных еще не существует, новая база данных создается из файлов резервной копии.

Обновление базы данных с помощью восстановления

При восстановлении резервных копий из предыдущей версии желательно заранее знать, существует ли на целевом компьютере путь (диск и каталог) для каждого полнотекстового каталога резервной копии. Чтобы получить список логических имен и физических имен, пути и имени файла) каждого файла в резервной копии, включая файлы каталога, используйте инструкцию RESTORE FILELISTONLY FROM <backup_device> . Дополнительные сведения см. в разделе Инструкция RESTORE FILELISTONLY (Transact-SQL).

Если нужный путь на целевом компьютере не существует, есть два варианта.

  • Создать нужное сопоставление дисков или структуру каталогов на целевом компьютере.

  • Переместить файлы каталогов на новое место назначения во время операции восстановления с помощью предложения WITH MOVE инструкции RESTORE DATABASE. Дополнительные сведения см. в статье Инструкция RESTORE (Transact-SQL).

Дополнительные сведения об альтернативных параметров обновления полнотекстовых индексов см. в разделе Обновление полнотекстового поиска.

Владелец базы данных

При восстановлении базы данных на другом компьютере имя входа пользователя SQL Server или Microsoft Windows, начавшего процесс восстановления, автоматически становится именем владельца базы данных. При восстановлении базы данных системный администратор или владелец новой базы данных могут сменить ее владельца. Для предотвращения несанкционированного восстановления базы данных устанавливайте пароли на носители или сами резервные копии.

Управление метаданными при восстановлении базы данных на другой экземпляр сервера

Чтобы обеспечить целостность работы пользователей и приложений при восстановлении базы данных на другой экземпляр сервера, на новом экземпляре необходимо повторно создать некоторые или все метаданные, например имена входа и задания. Дополнительные сведения см. в статье Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server).

Просмотр файлов данных и журналов в резервном наборе данных

Восстановление файлов и файловых групп в новом расположении

Восстановление файлов и файловых групп поверх существующих файлов

Восстановление базы данных с новым именем

Перезапуск прерванной операции восстановления

Изменение владельца базы данных

Копирование базы данных с помощью управляющих объектов SQL Server (SMO)

См. также раздел

Копирование баз данных на другие серверы
Расположение файлов для экземпляра по умолчанию и именованных экземпляров SQL Server
RESTORE FILELISTONLY (Transact-SQL)
RESTORE (Transact-SQL)