Обновление базы данных при помощи отсоединения и присоединения (Transact-SQL)
В этой теме описывается использование операции отсоединения и присоединения для обновления базы данных в SQL Server. После присоединения к SQL Serverбаза данных сразу становится доступной, после чего автоматически обновляется. Это исключает возможность использования базы данных с более старой версией Компонент Database Engine. Тем не менее обновление метаданных не влияет на режим совместимости базы данных. Дополнительные сведения см. в разделе уровень базы данных совместимости после обновления далее в этой статье.
Содержание раздела
Перед началом работы
Обновление базы данных SDL 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 для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Обновление базы данных при помощи функций отсоединения и присоединения
Отсоединение базы данных. Дополнительные сведения см. в разделе Отсоединение базы данных.
При необходимости переместите отсоединенные файлы баз данных и файлы журналов.
Файлы журнала и файлы данных следует переместить, даже если планируется создать новые файлы журнала. В некоторых случаях для повторного присоединения базы данных требуются файлы ее существующих журналов. Поэтому всегда храните все файлы отсоединенных журналов, пока база данных не будет успешно присоединена без них.
При попытке присоединить базу данных, не указывая файл журнала, операцией присоединения будет произведен поиск файла журнала в его исходном месте. Если первоначальная копия журнала существует в этом расположении, она будет присоединена. Чтобы избежать применения исходного файла журнала, либо укажите путь к новому файлу журнала, либо удалите исходную его копию (после его копирования в новое место).
Присоедините скопированные файлы к экземпляру SQL Server. Дополнительные сведения см. в статье Attach a Database.
Пример
В следующем примере выполняется обновление копии базы данных предыдущей версии SQL Server. Инструкции Transact-SQL выполняются в окне редактора запросов, подключенном к экземпляру сервера, к которому выполнено присоединение.
Отсоедините базу данных, выполнив следующие инструкции Transact-SQL .
Скопируйте любым способом данные и файлы журнала в новое местоположение.
При работе с производственными базами данных рекомендуется помещать базу данных и журналы транзакций на отдельные диски. Эти диски имеют разные требования к операциям ввода-вывода и росту файлов, и лучше разделить их.
При копировании файлов по сети на диск удаленного компьютера укажите имя удаленного места в формате UNC. UNC-имя принимает форму \\Servername\Sharename\Path\Filename . Как и при записи файлов на жесткий диск локального компьютера, для записи (или считывания) файла на диск удаленного компьютера учетной запись пользователя, которая используется экземпляром SQL Server, должны быть предоставлены соответствующие разрешения.
Присоедините перемещенную базу данных и, если потребуется, ее журнал, выполнив следующую инструкцию Transact-SQL .
В среде SQL Server Management Studioтолько что присоединенная база данных отображается в обозревателе объектов не сразу. Чтобы отобразить базу данных, щелкните в обозревателе объектов пункт Вид , а затем Обновить. Теперь, раскрыв в обозревателе объектов узел Базы данных , можно увидеть в списке присоединенную базу данных.
Дальнейшие действия. После обновления базы данных SQL Server
Если база данных содержит полнотекстовые индексы, то в процессе обновления будет произведен их импорт, сброс или перестроение в зависимости от установленного значения свойства сервера upgrade_option . Если при обновлении выбран режим импорта (upgrade_option = 2) или перестроения (upgrade_option = 0), полнотекстовые индексы во время обновления будут недоступны. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — в несколько (до десяти) раз больше. Обратите внимание, что если для обновления выбран режим «Импортировать», а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены. Чтобы изменить значение свойства сервера upgrade_option , следует использовать процедуру sp_fulltext_service.
Уровень совместимости баз данных после обновления
После обновления уровень совместимости базы данных останется неизменным, если только он не является в новой версии неподдерживаемым. В последнем случае обновленный уровень совместимости базы данных устанавливается как самый низкий из поддерживаемых.
Например, если подключить к экземпляру SQL Server 2019 (15.x) базу данных, имеющую уровень совместимости 90, то после обновления он будет изменен на 100, что является наименьшим поддерживаемым уровнем для SQL Server 2019 (15.x). Дополнительные сведения см. в разделе Уровень совместимости инструкции ALTER DATABASE (Transact-SQL).
Управление метаданными в экземпляре обновленного сервера
Чтобы обеспечить согласованное функционирование базы данных для пользователей и приложений, когда она присоединяется к другому экземпляру сервера, на другом экземпляре сервера, возможно, понадобится повторно создать некоторые или все метаданные базы данных, например имена входа, задания и разрешения. Дополнительные сведения см. в статье Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server).
Алгоритм шифрования главного ключа службы и главного ключа базы данных изменяется с 3DES на AES
SQL Server 2012 (11.x) и более поздних версиях для защиты главного ключа службы и главного ключа базы данных используется алгоритм шифрования AES. AES — это новый алгоритм шифрования, отличный от алгоритма 3DES, используемого в более ранних версиях. При первом присоединении базы данных к новому экземпляру SQL Server или ее восстановлении копия главного ключа базы данных (зашифрованная главным ключом службы) еще не хранится на сервере. Необходимо расшифровать главный ключ базы данных с помощью инструкции OPEN MASTER KEY . Как только главный ключ базы данных будет расшифрован, появится возможность разрешить автоматическую расшифровку в будущем с помощью инструкции ALTER MASTER KEY REGENERATE , чтобы оставить на сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа службы. После обновления базы данных с переходом от более ранней версии главный ключ базы данных должен быть создан повторно для использования нового алгоритма шифрования AES. Дополнительные сведения о повторном создании главного ключа базы данных см. в статье ALTER MASTER KEY (Transact-SQL). Время, необходимое для повторного создания главного ключа базы данных с обновлением до алгоритма шифрования AES, зависит от числа объектов, защищаемых главным ключом базы данных. Повторное создание главного ключа базы данных с обновлением до алгоритма шифрования AES необходимо произвести только один раз. Это никак не повлияет на последующие операции повторного создания, выполняемые в соответствии со стратегией смены ключей.
Обновление баз данных Microsoft SQL Server
Наша компания занимается разработкой программного обеспечения и в большинстве случаев в качестве СУБД мы используем Microsoft SQL Server. Для определенности будем называть компанию-разработчика «исполнителем», а компанию-клиента – «заказчиком».
В процессе внесения изменений в базу данных программистами исполнителя формируется набор скриптов, созданных вручную или в специализированном П/О.
- на стороне исполнителя проверить выполнение набора скриптов в тестовой базе данных;
- на стороне заказчика выполнить скрипты в рабочей базе данных клиента;
- у него вообще может быть не установлен SSMS;
- заказчик может не обладать знаниями работы с БД. И не должен по большому счету;
- в случае возникновения ошибок при выполнении скриптов, заказчику будет затруднительно собрать их для отправки разработчикам;
Как мы решаем указанную задачу
- программа для подготовки пакета обновления;
- программа для выполнения пакета обновления;
Программа для подготовки обновления
Программа используется у исполнителя. Программисты с её помощью формируют набор скриптов в один файл.
- в формируемый пакет обновления может быть добавлена информация о структуре эталонной базы данных. Если такая информация присутствует в пакете, то заказчик после выполнения обновления может сравнить структуру своей базы с эталонной;
- для заказчика программа выполнения обновления передается в виде одного EXE файла, внутри которого зашиты скрипты и структура эталонной базы.
Программа для выполнения обновления
Как уже упоминалось, запуск программы осуществляется с помощью одного EXE файла. Пользователю в большинстве случаев достаточно ввести регистрационную информацию (кстати, эти значения можно зашить в пакет обновления) и везде нажать «Далее».
На втором экране производится обновление. После этого можно провести сравнение зашитой в пакет структуры эталонной базы и текущей (на которой было выполнено обновление).
Анализ расхождения в структуре производится в графическом интерфейсе программы обновления.
К сожалению, просмотр расхождений программистами исполнителя осуществляется в текстовом файле журнала, который впоследствии высылает заказчик. Интересный подход решения этой проблемы предложен в статье Контроль изменения структуры БД. Данная задача не столь критична; программисты могут сами написать скрипт для приведения структуры к целевой.
Программный комплекс распространяется по лицензионному соглашению Freeware, скачать инсталлятор можно по ссылке Менеджер обновлений баз данных
Совет: Как обновить программу 1С 8.3 самостоятельно?
Своевременное обновление программы 1С 8.3 позволяет поддерживать ее актуальность, следовать всем изменениям законодательства при ведении учета, а также пользоваться всеми нововведениями и улучшениями функционала программы. Программа 1С может обновляться как в автоматическом режиме, так и вручную через конфигуратор. Обратите внимание на следующие моменты:
- Обновлять описанными способами можно только типовые программные продукты 1С – доработанные конфигурации обновляются только с привлечением специалистов компании «Первый Бит».
- Любые действия по обновлению должны осуществляться только после выхода из базы 1С всех пользователей
Автоматическое обновление 1С:Предприятие 8
Если у вас заключен договор информационно-технологического сопровождения 1С:ИТС, вы можете воспользоваться возможностью автоматического обновления. Благодаря этой функции программа сама контролирует актуальность своей версии, скачивает и устанавливает новейшие обновления. Для настройки функции автоматического раздела, необходимо открыть в главном меню раздел «Администрирование», пункт «Интернет-поддержка и сервисы»

В окне «Интернет-поддержка и сервисы» есть 3 подпункта, которые связаны с обновлением программного продукта 1С.

В подпункте «Настройки интернет-поддержки» необходимо ввести свои реквизиты для входа на портал ИТС. В результате вы подключите свой аккаунт 1С:ИТС к программе и сможете использовать функционал автоматического обновления. В дальнейшем здесь же можно будет отвязать аккаунт от программы.
Подпункт «Обновление версии программы» позволяет включить и настроить расписание автоматической проверки обновлений.
Подпункт «Монитор Портала 1С:ИТС» позволит контролировать наличие актуальных обновлений и запускать их установку. При включенной автоматической проверке обновлений «Монитор Портала 1С:ИТС» будет открываться при запуске программы. Здесь вы сможете увидеть актуальную версию программы 1С, текущую версию, и запустить установку обновления.

Через функционал интернет-поддержки можно обновить и конфигурацию, и платформу. В данном случае нам необходимо лишь обновление конфигурации 1С:Бухгалтерия 3.0.

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

Самостоятельное обновление 1С:Предприятие 8 через конфигуратор
Обратите внимание, что если программа 1С давно не обновлялась, вы не сможете сразу установить последний релиз. Для каждого обновления существует перечень версий, на которые его можно установить. Как правило, это несколько версий программы, предшествующих актуальной. Таким образом может потребоваться последовательная установка нескольких обновлений один за одним.
Чтобы выбрать нужные релизы для скачивания, проверьте свою версию программы, нажав на восклицательный знак в правом верхнем углу. Откроется окно «О программе», где указана версия платформы, а также название и версия конфигурации. Проверьте совместимость релизов и скачайте те, которые нужны для обновления до актуальной версии.

Когда нужный релиз скачан и установлен на компьютере, можно запустить программу 1С в режиме конфигуратора (выбрать соответствующий режим можно в окне запуска программы). Откройте конфигурацию по команде «Открыть конфигурацию» в меню «Конфигурация». Еще раз проверьте, что у вас установлена типовая версия программы 1С 8.3 – понять это можно по иконке замка рядом с названием конфигурации.

Внимание! Прежде чем осуществлять дальнейшие действия по обновлению программы, рекомендуем выгрузить действующую базу 1С с целью создания резервной копии. С инструкцией по выгрузке информационной базы ознакомьтесь в нашем материале. После создания резервной копии вы можете приступить к процессу обновления, для этого зайдите в раздел «Конфигурация», «Поддержка», «Обновить конифгурацию.»

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

Далее последовательно появится два окна для подтверждения обновления. Третье окно – с информацией об изменениях в структуре базы данных. Нажмите кнопку «Принять».

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


Глубокие знания в области установки программы 1С 8.3, обновления, настройки и поддержки базы данных можно получить на курсах «Администрирование системы 1С:Предприятие 8»