обновить базу данных при помощи отсоединения и присоединения (Transact-SQL)

В этой теме описывается использование операции отсоединения и присоединения для обновления базы данных SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2 в SQL Server 2012. После присоединения базы данных к SQL Server 2012, она сразу становится доступной, после чего автоматически обновляется.

В этом разделе

  • Перед началом работы выполните следующие действия.

    Ограничения

    Рекомендации

  • Обновление базы данных SDL Server

    Использование операций отсоединения и присоединения

  • Дальнейшие действия.  После обновления базы данных SQL Server

Перед началом

Ограничения

  • Системные базы данных не могут быть присоединены.

  • Присоединение и отсоединение приводят к отмене межбазовых цепочек владения для базы данных с присваиванием параметру cross db ownership chaining значения 0. Сведения о включении цепочек владения см. в разделе Параметр конфигурации сервера «cross db ownership chaining».

  • Присоединение скопированной, а не отсоединенной реплицируемой базы данных:

    • если база данных присоединяется к обновленной версии того же экземпляра сервера, необходимо обновить репликацию после завершения присоединения с помощью хранимой процедуры sp_vupgrade_replication. Дополнительные сведения см. в разделе sp_vupgrade_replication (Transact-SQL).

    • если база данных присоединяется к другому экземпляру сервера (независимо от версии), необходимо удалить репликацию после завершения присоединения с помощью хранимой процедуры sp_removedbreplication. Дополнительные сведения см. в разделе Хранимая процедура sp_removedbreplication (Transact-SQL).

Рекомендации

Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.

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

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

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

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

    ПримечаниеПримечание

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

  3. Присоедините скопированные файлы к экземпляру SQL Server 2012. Дополнительные сведения см. в разделе Присоединение базы данных.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Пример

В следующем примере выполняется обновление копии базы данных предыдущей версии SQL Server. Инструкции Transact-SQL выполняются в окне редактора запросов, подключенном к экземпляру сервера, к которому выполнено присоединение.

  1. Отсоедините базу данных, выполнив следующие инструкции Transact-SQL.

    USE master;
    GO
    EXEC sp_detach_db @dbname = N'MyDatabase';
    GO
    
  2. Скопируйте любым способом данные и файлы журнала в новое местоположение.

    Важное примечаниеВажно!

    При работе с производственными базами данных помещайте базу данных и журналы транзакций на отдельные диски.

    При копировании файлов по сети на диск удаленного компьютера укажите имя удаленного места в формате UNC. UNC-имя принимает форму **\\Servername\Sharename\Path\**Filename. Как и при записи файлов на жесткий диск локального компьютера, для записи (или считывания) файла на диск удаленного компьютера учетной запись пользователя, которая используется экземпляром SQL Server, должны быть предоставлены соответствующие разрешения.

  3. Присоедините перемещенную базу данных и, если потребуется, ее журнал, выполнив следующую инструкцию Transact-SQL.

    USE master;
    GO
    CREATE DATABASE MyDatabase 
        ON (FILENAME = 'C:\MySQLServer\MyDatabase.mdf'),
        (FILENAME = 'C:\MySQLServer\Database.ldf')
        FOR ATTACH;
    GO
    

    В среде Среда SQL Server Management Studio только что присоединенная база данных отображается в обозревателе объектов не сразу. Чтобы отобразить базу данных, щелкните в обозревателе объектов пункт Вид, а затем Обновить. Теперь, раскрыв в обозревателе объектов узел Базы данных, можно увидеть в списке присоединенную базу данных.

Дальнейшие действия. После обновления базы данных SQL Server

Если база данных содержит полнотекстовые индексы, то в процессе обновления будут произведены их импорт, сброс или перестроение в зависимости от установленного значения свойства сервера upgrade_option. Если при обновлении выбран импорт (upgrade_option = 2) или перестроение (upgrade_option = 0), то полнотекстовые индексы во время обновления будут недоступны. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — в несколько (до десяти) раз больше. Обратите внимание, что если для обновления выбран режим «Импортировать», а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены. Чтобы изменить значение свойства сервера upgrade_option, следует использовать процедуру sp_fulltext_service.

Уровень совместимости баз данных после обновления

Если уровень совместимости пользовательской базы данных до обновления был 90 или 100, он остается неизменным. Если уровень совместимости до обновления был 80 или меньше, в обновленной базе данных он устанавливается в 90, что является минимально поддерживаемым уровнем совместимости в SQL Server 2012. Дополнительные сведения см. в разделе Уровень совместимости инструкции ALTER DATABASE (Transact-SQL).

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

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

Алгоритм шифрования главного ключа службы и главного ключа базы данных изменяется с 3DES на AES

В SQL Server 2012 для защиты главного ключа службы и главного ключа базы данных используется алгоритм шифрования AES. AES - это новый алгоритм шифрования, отличный от алгоритма 3DES, используемого в более ранних версиях. При первом присоединении базы данных к новому экземпляру SQL Server или ее восстановлении копия главного ключа базы данных (зашифрованная главным ключом службы) еще не хранится на сервере. Необходимо расшифровать главный ключ базы данных с помощью инструкции OPEN MASTER KEY. Как только главный ключ базы данных будет расшифрован, появится возможность разрешить автоматическую расшифровку в будущем с помощью инструкции ALTER MASTER KEY REGENERATE, чтобы оставить на сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа службы. После обновления базы данных с переходом от более ранней версии главный ключ базы данных должен быть создан повторно для использования нового алгоритма шифрования AES. Дополнительные сведения о повторном создании главного ключа базы данных см. в разделе ALTER MASTER KEY (Transact-SQL). Время, необходимое для повторного создания главного ключа базы данных с обновлением до алгоритма шифрования AES, зависит от числа объектов, защищаемых главным ключом базы данных. Повторное создание главного ключа базы данных с обновлением до алгоритма шифрования AES необходимо произвести только один раз. Это никак не повлияет на последующие операции повторного создания, выполняемые в соответствии со стратегией смены ключей.

Значок стрелки, используемый со ссылкой «В начало»[Top]