如何挪动数据库文件?

如何修改数据库文件的路径?

以SharePoint为例, 很多数据库都是在运行wizard的时候自动创建出来的. 假设我们现有了SQL Server, 后为SQL划分存储, 那么很多SharePoint DB就会存放在SQL Server 2012默认的数据库文件存放路径中.

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

我们可以通过下面的步骤来修改数据库文件的路径, 从而让SQL适应存储的需要.

1. 运行下面的命令查询现有文件的名和路径.

select * from sys.sysaltfiles


从结果中, 我们可以得到数据库的名字, MDF和LDF文件的名字和路径.

2. 运行下面的命令来修改文件路径.

alter database [SharePoint_Config] 
modify file (name = 'SharePoint_Config', filename = 'C:\Mount\AdminConfigData\SharePoint_Config.mdf')

alter database [SharePoint_Config]
modify file (name = 'SharePoint_Config_log', filename = 'C:\Mount\AdminConfigLog\SharePoint_Config_log.ldf')


之后, 我们在运行一下第一条命令, 来confirm一下路径是否修改正确了.

3. 使用下面的脚本来让目标数据库变为Single User模式, 否则下面的offline动作会失败.

alter database SharePoint_Config 
set single_user with rollback
immediate
go

4. 使用下面的脚本, Offline目标database.

USE master
GO
ALTER DATABASE [SharePoint_Config]
SET OFFLINE WITH ROLLBACK IMMEDIATE
GO

4. 剪切MDF和LDF文件.

5. 使用下面的脚本, 让目标database online.

USE master
GO
ALTER DATABASE [SharePoint_Config]
SET ONLINE
GO

6. 使用下面的脚本, 恢复数据库为Multi-User模式.

alter database SharePoint_Config 
set multi_user
go

7. 修改完成.

如果是测试用的话, 那么大可不必麻烦修改single user和offline.

在Services.msc中停掉SQL Service后剪切文件, 之后再启动SQL Service就可以了.

感谢Bruce Ye老师倾情指导.

原文地址:https://www.cnblogs.com/awpatp/p/2937284.html