Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается перемещение системных баз данных в SQL Server. Эта операция может пригодиться в следующих ситуациях:
Восстановление после сбоя. Например, база данных находится в подозрительном режиме, или ее работа была прекращена из-за сбоя оборудования;
Плановое перемещение.
Перемещение для запланированного обслуживания дисков.
Следующие процедуры применяются к перемещению файлов базы данных в том же экземпляре SQL Server. Чтобы переместить базу данных в другой экземпляр SQL Server или на другой сервер, используйте операции резервного копирования и восстановления или отсоединения и присоединения.
Для выполнения процедур, описанных в данном разделе, необходимо логическое имя файлов базы данных. Это имя можно получить из столбца name представления каталога sys.master_files .
Важно!
При перемещении системной базы данных с последующим перестроением базы данных master необходимо заново переместить системную базу данных, поскольку операция перестроения устанавливает все системные базы данных в расположение по умолчанию.
В этом разделе
Процедура планового перемещения и запланированного обслуживания диска
Дальнейшие действия. После перемещения всех системных баз данных
Запланированное перемещение и процедура запланированного обслуживания диска
Чтобы переместить данные системной базы данных или файл журнала в рамках запланированного перемещения (операции запланированного обслуживания), следуйте следующим указаниям: Данная процедура применима ко всем системным базам данных, кроме master и Resource.
Для каждого перемещаемого файла выполните следующую инструкцию.
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )
Остановите работу экземпляра SQL Server или выключите систему для проведения работ по обслуживанию дисков. Дополнительные сведения см. в статье Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.
Переместите файл или файлы в новое расположение.
Перезапустите экземпляр SQL Server или сервер. Дополнительные сведения см. в статье Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.
Проверьте изменения в файле с помощью следующего запроса.
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'<database_name>');
Если база данных msdb перемещена, а экземпляр SQL Server настроен для Database Mail, выполните следующие дополнительные действия.
Убедитесь, что компонент Service Broker включен для базы данных msdb, выполнив следующий запрос.
SELECT is_broker_enabled FROM sys.databases WHERE name = N'msdb';
Дополнительные сведения о включении компонента Service Broker см. в разделе ALTER DATABASE (Transact-SQL).
Отправкой тестового сообщения проверьте работоспособность компонента Database Mail.
Процедура восстановления после сбоя
Если нужно перенести файл из-за сбоя оборудования, необходимо выполнить приведенные ниже действия для его перемещения на новое место. Данная процедура применима ко всем системным базам данных, кроме master и Resource.
Важно!
Если базу данных запустить нельзя, она находится в подозрительном режиме или в невосстановленном состоянии, то файл может быть перемещен только членом предопределенной роли sysadmin.
Остановите работу экземпляра SQL Server , если он запущен.
Запустите экземпляр SQL Server в режиме восстановления «только master», запустив из командной строки одну из следующих команд. В задаваемых для них параметрах учитывается регистр символов. Команды завершаются ошибкой, если параметры заданы не так, как показано.
В случае с экземпляром по умолчанию (MSSQLSERVER) запустите следующую команду:
NET START MSSQLSERVER /f /T3608
В случае с именованным экземпляром запустите следующую команду:
NET START MSSQL$instancename /f /T3608
Дополнительные сведения см. в статье Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.
Для каждого перемещаемого файла используйте команды sqlcmd или SQL Server Management Studio для выполнения следующей инструкции.
ALTER DATABASE database_name MODIFY FILE( NAME = logical_name , FILENAME = 'new_path\os_file_name' )
Дополнительные сведения об использовании программы sqlcmd см. в статье Использование программы sqlcmd.
Завершите работу программы sqlcmd или SQL Server Management Studio.
Остановите экземпляр SQL Server. Например, выполните команду
NET STOP MSSQLSERVER
.Переместите файл или файлы в новое расположение.
Повторно запустите экземпляр SQL Server. Например, выполните команду
NET START MSSQLSERVER
.Проверьте изменения в файле с помощью следующего запроса.
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'<database_name>');
Перемещение базы данных master
Чтобы переместить базу данных master, выполните следующие действия.
В меню Пуск выберите Все программы, укажите Microsoft SQL Server, затем Средства настройкии выберите пункт Диспетчер конфигурации SQL Server.
В узле службы SQL Server щелкните правой кнопкой мыши экземпляр SQL Server (например, SQL Server (MSSQLSERVER)) и выберите Свойства.
В диалоговом окне Свойства SQL Server (instance_name) откройте вкладку Параметры запуска.
В поле Существующие параметры выберите параметр -d, чтобы переместить файл данных master. Нажмите Обновить для сохранения изменений.
В поле Укажите параметр запуска задайте новый путь к базе данных master.
В поле Существующие параметры выберите параметр -l, чтобы переместить файл журнала master. Нажмите Обновить для сохранения изменений.
В поле Укажите параметр запуска задайте новый путь к базе данных master.
Значение параметра для файла данных должно соответствовать параметру
-d
, а значение для файла журнала — параметру-l
. В следующем примере показаны значения параметров для указания местоположения файла базы данных master по умолчанию.-dC:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\master.mdf
-lC:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
Если планируется переместить файл данных базы данных master в расположение
E:\SQLData
, значения параметра будут изменены следующим образом.-dE:\SQLData\master.mdf
-lE:\SQLData\mastlog.ldf
Остановите экземпляр SQL Server, щелкнув правой кнопкой мыши имя экземпляра и выбрав остановить.
Переместите файлы master.mdf и mastlog.ldf на новое место.
Повторно запустите экземпляр SQL Server.
Проверьте правильность изменений для базы данных master, выполнив следующий запрос.
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID('master'); GO
Перемещение базы данных Resource
База данных ресурсов находится < в каталоге drive>:\Program Files\Microsoft SQL Server\MSSQL<version>.<> instance_name\MSSQL\Binn\. Эту базу данных нельзя переместить.
Продолжение: после перемещения всех системных баз данных
Если все системные базы данных перемещаются на новый диск или том либо на другой сервер с другой буквой диска, выполните следующие обновления.
Измените путь к журналу агента SQL Server. Если этого не сделать, то агент SQL Server не сможет запуститься.
Измените расположение по умолчанию для базы данных. Создание новой базы данных может завершиться ошибкой, если буква диска и путь, указанные в качестве места расположения по умолчанию, не существуют.
Измените путь к журналу агента SQL Server.
В среде SQL Server Management Studio в обозревателе объектов разверните узел Агент SQL Server.
Щелкните правой кнопкой мыши Журналы ошибок и выберите пункт Настроить.
В диалоговом окне Настройка журналов ошибок агента SQL Server задайте новое расположение для файла SQLAGENT.OUT. Расположение по умолчанию — C:\Program Files\Microsoft SQL Server\MSSQL12.<>instance_name\MSSQL\Log\.
Измените расположение по умолчанию для базы данных
В среде SQL Server Management Studio в обозревателе объектов щелкните правой кнопкой мыши сервер SQL Server и выберите пункт Свойства.
В диалоговом окне Свойства сервера выберите пункт Настройки базы данных.
На панели Места хранения, используемые базой данных по умолчаниюможно просмотреть текущие места хранения, используемые по умолчанию для новых файлов данных и файлов журнала.
Остановите и запустите службу SQL Server, чтобы завершить изменение.
Примеры
A. Перемещение базы данных tempdb
В следующем примере показано перемещение файлов базы данных tempdb
и журнала на новое место в рамках запланированного перемещения.
Примечание
Поскольку база данных tempdb создается повторно при каждом запуске экземпляра SQL Server, вам не нужно физически перемещать файлы данных и журналов. Файлы создаются в новом месте во время перезагрузки службы на шаге 3. До перезагрузки службы база данных tempdb продолжает использовать файлы данных и файл журнала, расположенные в существующем месте.
Определение логических имен файлов базы данных
tempdb
и их текущего местоположения на диске.SELECT name, physical_name AS CurrentLocation FROM sys.master_files WHERE database_id = DB_ID(N'tempdb'); GO
Измените местоположение каждого файла с помощью
ALTER DATABASE
.USE master; GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf'); GO
Остановите и перезапустите экземпляр SQL Server.
Проверьте изменение файла.
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'tempdb');
Удалите файлы
tempdb.mdf
иtemplog.ldf
из исходного местоположения.
См. также:
База данных ресурсов
База данных tempdb
База данных master
База данных msdb
Шаблон базы данных
Перемещение пользовательских баз данных
Перемещение файлов базы данных
Запуск, остановка, приостановка, возобновление и перезапуск компонента Database Engine, агента SQL и службы браузера SQL Server
ALTER DATABASE (Transact-SQL)
Перестроение системных баз данных