Поделиться через


Восстановление базы данных master (Transact-SQL)

Область применения:SQL Server

В этой статье объясняется, как восстановить master базу данных из полной резервной копии базы данных.

Предупреждение

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

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

  1. Запустите экземпляр сервера в однопользовательском режиме.

    Вы можете запустить SQL Server, используя параметры -m или -f запуска. Дополнительные сведения о параметрах запуска см. в разделе "Параметры запуска службы ядра СУБД".

    В командной строке выполните следующие команды и убедитесь, что вы замените MSSQLXX.instance на соответствующее имя папки:

    cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn
    sqlservr -c -f -s <instance> -mSQLCMD
    
    • Параметр -mSQLCMD гарантирует, что только sqlcmd может подключаться к SQL Server.
    • Для имени экземпляра по умолчанию используйте -s MSSQLSERVER
    • -c запускает SQL Server как приложение для обхода диспетчера управления службами, чтобы сократить время запуска

    Если экземпляр SQL Server не может запуститься из-за поврежденной master базы данных, сначала необходимо перестроить системные базы данных. Дополнительные сведения см. в разделе "Перестроение системных баз данных".

  2. Подключитесь к SQL Server с помощью sqlcmd из другого окна командной строки:

    sqlcmd -S <instance> -E -d master
    
  3. Чтобы восстановить полную резервную копию masterбазы данных, используйте следующие инструкции RESTORETransact-SQL:

    RESTORE DATABASE master FROM <backup_device> WITH REPLACE;
    

    Параметр REPLACE указывает SQL Server восстановить указанную базу данных, даже если база данных с тем же именем уже существует. Существующая база данных в таком случае будет удалена. В однопользовательском режиме рекомендуется ввести инструкцию RESTORE DATABASE в служебной программе sqlcmd. Дополнительные сведения см. в разделе "Использование sqlcmd".

    Внимание

    После восстановления master, экземпляр SQL Server выключается и завершает процесс sqlcmd. Перед перезапуском экземпляра сервера удалите параметр запуска однопользовательского режима. Дополнительные сведения см. в разделе SQL Server Configuration Manager: настройка параметров запуска сервера.

  4. Перезапуск экземпляра сервера обычно в качестве службы без использования параметров запуска.

  5. Продолжайте другие действия по восстановлению, например восстановление других баз данных, присоединение баз данных и исправление несоответствий пользователей.

Примеры

Следующий пример восстанавливает базу данных master в определенном по умолчанию экземпляре сервера. В этом примере предполагается, что экземпляр сервера уже работает в однопользовательском режиме. В примере запускается sqlcmd и выполняется RESTORE DATABASE инструкция, которая восстанавливает полную резервную копию master базы данных с диска: Z:\SQLServerBackups\master.bak

Для именованного экземпляра команда sqlcmd должна указать -S<computer-name>\<instance-name> параметр.

C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
2> GO