Восстановление базы данных master (Transact-SQL)
Область применения: SQL Server
В этой статье объясняется, как восстановить master
базу данных из полной резервной копии базы данных.
Предупреждение
В случае аварийного восстановления экземпляр, в котором master
восстанавливается база данных, должна быть как можно ближе к точному совпадению с исходным. Как минимум, у этого экземпляра восстановления должны быть те же версия, выпуск и уровень обновления, а также тот же набор возможностей и та же внешняя конфигурация (имя узла, принадлежность к кластеру и т. д.), что и у исходного экземпляра. В противном случае это может привести к произвольному поведению экземпляра SQL Server, разной поддержке возможностей и неприемлемому результату.
Восстановление master
базы данных
Запустите экземпляр сервера в однопользовательском режиме.
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
базы данных, сначала необходимо перестроить системные базы данных. Дополнительные сведения см. в разделе "Перестроение системных баз данных".- Параметр
Подключение к SQL Server с помощью SQLCMD из другого окна командной строки
SQLCMD -S <instance> -E -d master
Чтобы восстановить полную резервную копию базы данных master, используйте следующую инструкцию RESTORE DATABASETransact-SQL:
RESTORE DATABASE master FROM <backup_device> WITH REPLACE
Параметр REPLACE указывает SQL Server восстановить указанную базу данных, даже если база данных с тем же именем уже существует. Существующая база данных в таком случае будет удалена. В однопользовательском режиме рекомендуется вводить инструкцию RESTORE DATABASE в программе sqlcmd. Дополнительные сведения см. в статье Программа sqlcmd.
Внимание
После восстановления главного экземпляра SQL Server завершает работу и завершает процесс sqlcmd . Перед перезапуском экземпляра сервера удалите параметр запуска однопользовательского режима. Дополнительные сведения см. в разделе "Настройка параметров запуска сервера" (диспетчер конфигурации SQL Server).
Перезапуск экземпляра сервера обычно в качестве службы без использования параметров запуска.
Продолжайте другие действия по восстановлению, например восстановление других баз данных, присоединение баз данных и исправление несоответствий пользователей.
Пример
Следующий пример восстанавливает базу данных master
в определенном по умолчанию экземпляре сервера. В этом примере предполагается, что экземпляр сервера уже работает в однопользовательском режиме. В примере запускается sqlcmd
и выполняется инструкция RESTORE DATABASE
, которая восстанавливает полную резервную копию базы данных master
с дискового устройства: Z:\SQLServerBackups\master.bak
.
Примечание.
Для именованного экземпляра команда sqlcmd должна указать параметр -S<ComputerName InstanceName<\>>.
C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
2> GO
См. также
Полное восстановление базы данных (простая модель восстановления)
Полное восстановление базы данных (модель полного восстановления)
Диагностика потерянных пользователей (SQL Server)
Отсоединение базы данных и подключение (SQL Server)
Перестроение системных баз данных
Параметры запуска службы Database Engine
Диспетчер конфигурации SQL Server
Резервное копирование и восстановление системных баз данных (SQL Server)
RESTORE (Transact-SQL)