Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается перемещение системных баз данных в 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 или завершите работу системы для выполнения обслуживания. Дополнительные сведения см. в статье Запуск, остановка, приостановка, возобновление и перезапуск ядра СУБД, агента SQL Server или службы "Обозреватель SQL Server".
Переместите файл или файлы в новое расположение.
Перезапустите экземпляр SQL Server или сервера. Дополнительные сведения см. в статье Запуск, остановка, приостановка, возобновление и перезапуск ядра СУБД, агента SQL Server или службы "Обозреватель 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 настроен для базы данных 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 в режиме восстановления только для главного сервера, введя одну из следующих команд в командной строке. В параметрах, указанных в этих командах, учитывается регистр символов. Команды завершаются ошибкой, если параметры не указаны, как показано ниже.
В случае с экземпляром по умолчанию (MSSQLSERVER) запустите следующую команду:
NET START MSSQLSERVER /f /T3608
В случае с именованным экземпляром запустите следующую команду:
NET START MSSQL$instancename /f /T3608
Дополнительные сведения см. в статье Запуск, остановка, приостановка, возобновление и перезапуск ядра СУБД, агента SQL Server или службы "Обозреватель 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.
В поле "Существующие параметры " выберите параметр -l, чтобы переместить главный файл журнала. Нажмите кнопку "Обновить", чтобы сохранить изменение.
В поле "Указание параметра запуска " измените параметр на новый путь к базе данных master.
Значение параметра для файла данных должно соответствовать параметру
-d
, а значение для файла журнала — параметру-l
. В следующем примере показаны значения параметров для расположения главного файла данных по умолчанию.-dC:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\master.mdf
-lC:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
Если запланированное перемещение файла основных данных равно
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
Перемещение базы данных ресурсов
Расположение базы данных ресурсов — <диск>:\Program Files\Microsoft SQL Server\MSSQL<версия>.<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, чтобы завершить изменение.
Примеры
А. Перемещение базы данных 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
Изменить базу данных (Transact-SQL)
Перестроение системных баз данных