Подтвердить что ты не робот

Перенос файлов базы данных SQL Server 2008 в новое местоположение папки

Логическое имя

  • my_Data
  • my_Log

Path:

  • C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
  • C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

FileName:

  • my.MDF
  • my_1.LDF

Каким будет sql script, чтобы переместить эти файлы в новое место: D:\DATA

База данных активна, поэтому мне нужно закрыть существующие подключения.

4b9b3361

Ответ 1

Вы забыли упомянуть название своей базы данных (это "мой"?).

ALTER DATABASE my SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

ALTER DATABASE my SET OFFLINE;

ALTER DATABASE my MODIFY FILE 
(
   Name = my_Data,
   Filename = 'D:\DATA\my.MDF'
);

ALTER DATABASE my MODIFY FILE 
(
   Name = my_Log, 
   Filename = 'D:\DATA\my_1.LDF'
);

Теперь вы должны вручную перенести файлы из своего текущего местоположения в D:\Data\(и не забудьте переименовать их вручную, если вы изменили их в команде MODIFY FILE)... затем вы можете вернуть базу данных онлайн:

ALTER DATABASE my SET ONLINE;

ALTER DATABASE my SET MULTI_USER;

Это предполагает, что учетная запись службы SQL Server имеет достаточные привилегии в папке D:\Data \. Если нет, вы получите ошибки в команде SET ONLINE.

Ответ 3

Чтобы добавить привилегии, необходимые для файлов, добавьте и предоставите право следующему локальному пользователю: SQLServerMSSQLUser $COMPUTERNAME $INSTANCENAME, где COMPUTERNAME и INSTANCENAME необходимо заменить на имя компьютера и экземпляр MSSQL соответственно.

Ответ 4

Это полная процедура для переноса базы данных и логинов с места на новый, сценариев входа в систему и перемещения файлов данных и файлов журнала в пункт назначения. Все, используя метаскрипты.

http://zaboilab.com/sql-server-toolbox/massive-database-migration-between-sql-server-instances-the-complete-procedure

Извините за процедуру вне сайта, но скрипты очень длинные. Вы должны:
- Script логин с оригинальным паролем SID и HASHED

- Создать Script для резервного копирования базы данных с помощью метаскриптов
- Создайте Script, чтобы восстановить базу данных, перемещая параметры перевода, используя снова метаскрипты
- Запустите сгенерированные скрипты в экземпляре источника и получателя.
Смотрите и загружайте скрипты по ссылке выше.

Ответ 5

Некоторые примечания, дополняющие процесс ALTER DATABASE:

1) Вы можете получить полный список баз данных с логическими именами и полными путями файлов MDF и LDF:

   USE master SELECT name, physical_name FROM sys.master_files

2) Вы можете вручную перемещать файлы с помощью команды перемещения CMD:

Переместить "Источник" "Назначение"

Пример:

md "D:\MSSQLData"
Move "C:\test\SYSADMIT-DB.mdf" "D:\MSSQLData\SYSADMIT-DB_Data.mdf"
Move "C:\test\SYSADMIT-DB_log.ldf" "D:\MSSQLData\SYSADMIT-DB_log.ldf"

3) Вы должны изменить путь базы данных по умолчанию для создания новых баз данных. Путь по умолчанию получен из реестра Windows.

Вы также можете изменить с помощью T-SQL, например, чтобы установить назначение по умолчанию: D:\MSSQLData​​p >

USE [master]

GO

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'D:\MSSQLData'

GO

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ, N'D:\MSSQLData'

GO

Извлечен из: http://www.sysadmit.com/2016/08/mover-base-de-datos-sql-server-a-otro-disco.html