Published on

August 25, 2015

Перемещение системных баз данных в SQL Server

При работе с SQL Server могут возникать ситуации, когда вам необходимо переместить системные базы данных, такие как Model, msdb, Tempdb и master. Хотя это не рекомендуется для обычных установок баз данных, это может быть полезно для устранения неполадок и восстановления после катастрофы.

Перемещение файлов системных баз данных

Для перемещения файлов системных баз данных выполните следующие шаги:

  1. Откройте новое окно запроса в SQL Server Management Studio.
  2. Используйте оператор USE master для переключения на базу данных master.
  3. Используйте оператор ALTER DATABASE для изменения путей файлов для каждого файла системной базы данных. Например:
ALTER DATABASE model MODIFY FILE (NAME = 'modeldev', FILENAME = 'F:\MSSQL\Data\model.mdf');
ALTER DATABASE model MODIFY FILE (NAME = 'modellog', FILENAME = 'F:\MSSQL\Data\modellog.ldf');
ALTER DATABASE msdb MODIFY FILE (NAME = 'MSDBData', FILENAME = 'F:\MSSQL\Data\MSDBData.mdf');
ALTER DATABASE msdb MODIFY FILE (NAME = 'MSDBLog', FILENAME = 'F:\MSSQL\Data\MSDBLog.ldf');
ALTER DATABASE tempdb MODIFY FILE (NAME = 'tempdev', FILENAME = 'F:\MSSQL\Data\tempdb.ldf');
ALTER DATABASE tempdb MODIFY FILE (NAME = 'templog', FILENAME = 'F:\MSSQL\Data\templog.ldf');
  1. Остановите экземпляр SQL Server.
  2. Переместите файлы баз данных в указанные места.
  3. Перезапустите экземпляр SQL Server.

Перемещение базы данных Master

Для перемещения базы данных master выполните следующие шаги:

  1. Откройте SQL Server Configuration Manager.
  2. В узле SQL Server Services щелкните правой кнопкой мыши экземпляр SQL Server и выберите Свойства.
  3. В диалоговом окне Свойства SQL Server (instance_name) щелкните вкладку Дополнительно.
  4. Измените значения параметров запуска, указав новое расположение для данных и журнальных файлов базы данных master.
  5. Остановите экземпляр SQL Server.
  6. Переместите файлы master.mdf и mastlog.ldf в новое место.
  7. Перезапустите экземпляр SQL Server.
  8. Проверьте изменение файла базы данных master, выполнив следующий запрос:
USE master
SELECT name AS "Logical File Name", physical_name AS "Physical File Location", state_desc AS "State"
FROM sys.master_files
WHERE database_id = DB_ID(N'master');

Перемещение базы данных ресурсов

База данных ресурсов содержит все системные объекты, включенные в SQL Server, и не содержит пользовательских данных или метаданных пользователей. Расположение базы данных ресурсов не может быть изменено с ее расположения по умолчанию.

Для перемещения базы данных ресурсов выполните следующие шаги:

  1. Переведите SQL Server в режим одного пользователя и подключитесь с учетной записью sysadmin, используя параметры запуска -c и -m.
  2. Используйте команду SQLCMD для подключения к серверу с необходимыми флагами трассировки:
SQLCMD -U <username> -P <password> -c -m -t3607 -t3608
  1. Выполните следующие команды для перемещения базы данных ресурсов:
USE master
ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME = data, FILENAME = N'F:\MSSQL\Log\mssqlsystemresource.mdf');
ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME = log, FILENAME = N'F:\MSSQL\Data\mssqlsystemresource.ldf');
  1. Остановите экземпляр SQL Server.
  2. Переместите файлы базы данных ресурсов в указанные места.
  3. Перезапустите экземпляр SQL Server.

Сопоставление информации о базах данных между SQL Server 2000 и 2005

Если вы переходите с SQL Server 2000 на SQL Server 2005, вам может потребоваться сопоставить определенную информацию о базах данных. Вот несколько примеров:

IDИнформацияSQL Server 2000SQL Server 2005
1Таблица/представление системной базы данныхSELECT * FROM master.dbo.sysdatabasesSELECT * FROM sys.databases
2Таблица/представление файлов системной базы данныхSELECT * FROM dbo.sysfilesSELECT * FROM sys.database_files
3Таблица/представление файлов системной базы данныхSELECT * FROM master.dbo.sysaltfilesSELECT * FROM sys.master_files
4Статистика ввода-вывода для файлов базы данныхSELECT * FROM ::fn_virtualfilestats(1, 1)SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL)
5Метаданные базы данныхEXEC master.dbo.sp_databasesEXEC master.dbo.sp_databases
6Метаданные базы данныхEXEC master.dbo.sp_helpdbEXEC master.dbo.sp_helpdb
7Изменение владельца базы данныхEXEC sp_changedbowner saEXEC sp_changedbowner sa
8Перевод идентификатора базы данных в имяSELECT DB_NAME(1)SELECT DB_NAME(1)
9Перевод имени базы данных в идентификаторSELECT DB_ID(‘master’)SELECT DB_ID(‘master’)
10Статус базы данныхSELECT DATABASEPROPERTYEX(‘master’, ‘Status’)SELECT DATABASEPROPERTYEX(‘master’, ‘Status’)

Это всего лишь несколько примеров того, как сопоставить информацию о базах данных между SQL Server 2000 и 2005. Для получения дополнительной информации обратитесь к официальной документации Microsoft.

Помните, что перемещение системных баз данных следует выполня

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.