SQLServer
移动数据文件
一
移动用户数据库
二
移动系统数据库
一
移动用户数据库
https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/move-user-databases?view=sql-server-2017
在
SQL Server
中,通过在
ALTER DATABASE
语句的
FILENAME
子句中指定新的文件位置,可以将用户数据库中的数据、日志和全文目录文件移动到新位置。
此方法适用于在同一
SQL Server
实例中移动数据库文件。
若要将数据库移动到另一个
SQL Server
实例或另一台服务器上,请使用
备份和还原
或
分离和附加操作
。
将数据库chenjch
文件迁移到同一服务器其他目录;
1.
离线准备迁移的数据库。
---
先全备数据库
use
master
;
---
执行
offline
命令之前,确保
chenjch
数据库没有任何连接,否则会被阻塞;
ALTER
DATABASE
chenjch
SET
OFFLINE
;
2.
将文件移动到新位置
。
SELECT
name
,
physical_name
AS
CurrentLocation
,
state_desc
FROM
sys
.
master_files
WHERE
database_id
=
DB_ID
(
N'chenjch'
);
---手动
移动文件到指定目录下
3.
对于已移动的每个文件
,
请运行以下语句
。
ALTER
DATABASE
chenjch
MODIFY
FILE
(
NAME
=
chenjch
,
FILENAME
=
'D:\sqlserver2012\data\chenjch\chenjch.mdf'
);
---
文件
'chenjch'
在系统目录中已修改。新路径将在数据库下次启动时使用。
ALTER
DATABASE
chenjch
MODIFY
FILE
(
NAME
=
chenjch_log
,
FILENAME
=
'D:\sqlserver2012\data\chenjch\chenjch_log.ldf'
);
---
文件
'chenjch_log'
在系统目录中已修改。新路径将在数据库下次启动时使用。
4.
运行以下语句
。
ALTER
DATABASE
chenjch
SET
ONLINE
;
5.
通过运行以下查询来验证文件更改
。
SELECT
name
,
physical_name
AS
CurrentLocation
,
state_desc
FROM
sys
.
master_files
WHERE
database_id
=
DB_ID
(
N'chenjch'
);
use
chenjch
select
count
(*)
from
t1
;
---100
二
移动系统数据库
2.1
移动
master
数据库
https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/move-system-databases?view=sql-server-2017
SELECT
name
,
physical_name
AS
CurrentLocation
,
state_desc
FROM
sys
.
master_files
WHERE
database_id
=
DB_ID
(
N'master'
);
将D:\sqlserver2012\0\MSSQL11.MSSQLSERVER\MSSQL\DATA\master.mdfD:\sqlserver2012\0\MSSQL11.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
移动到D:\sqlserver2012\data\master\ master.mdfD:\sqlserver2012\data\master\ DATA\mastlog.ldf
1
在
“
开始
”
菜单中
,
依次指向
“
所有程序
”
、
“
Microsoft
SQL
Server
”
和
“
配置工具
”
,
然后单击
“
SQL
Server
配置管理器
”
。
2
在
“
SQL
Server
服务
”
节点中
,
右键单击
SQL
Server
实例
(
如
SQL
Server
(
MSSQLSERVER
)
),
并选择
“
属性
”
。
3
在
“
SQL
Server
(
instance_name
)
属性
”
****
对话框中
,
单击
“
启动参数
”
选项卡
。
4
在
“
现有参数
”
框中
,
选择
–
d
参数以移动
master
数据文件
。
单击
“
更新
”
以保存更改
。
在
“
指定启动参数
”
框中
,
将该参数更改为
master
数据库的新路径
。
5
在
“
现有参数
”
框中
,
选择
–
l
参数以移动
master
日志文件
。
单击
“
更新
”
以保存更改
。
在
“
指定启动参数
”
框中
,
将该参数更改为
master
数据库的新路径
。
数据文件的参数值必须跟在
-
d
参数的后面
,
日志文件的参数值必须跟在
-
l
参数的后面
。
将-dD:\sqlserver2012\0\MSSQL11.MSSQLSERVER\MSSQL\DATA\master.mdf
改成-dD:\sqlserver2012\data\master\ master.mdf
将-lD:\sqlserver2012\0\MSSQL11.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
改成-lD:\sqlserver2012\data\master\mastlog.ldf
6
通过右键单击实例名称并选择
“
停止
”
来停止
SQL
Server
实例
。
7
将
master
.
mdf
和
mastlog
.
ldf
文件移动到新位置
。
手动拷贝文件到新的目录
8
重新启动
SQL
Server
实例
。
9
通过运行以下查询
,
验证
master
数据库的文件更改
。
SELECT
name
,
physical_name
AS
CurrentLocation
,
state_desc
FROM
sys
.
master_files
WHERE
database_id
=
DB_ID
(
'master'
);
10
此时
SQL
Server
应正常运行
。
但是
Microsoft
建议还调整
HKEY_LOCAL_MACHINE\
SOFTWARE\
Microsoft\
Microsoft
SQL
Server\
instance_ID\
Setup
处的注册表项
,
其中
instance_ID
类似于
MSSQL13
.
MSSQLSERVER
。
在该配置单元中
,
将
SQLDataRoot
值更改为新路径
。
未能更新注册表可能会导致修补和升级失败
。
……
迁移问题:
一
无法找到文件
确保修改路径已经生效,保路径和名称正确;
二
拒绝访问
权限问题
迁移后的文件,
右键
---
属性
---
安全
---Authenticated Users---
完全控制
SQLServer移动数据文件
来源:这里教程网
时间:2026-03-02 11:20:12
作者:
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- SQLServer2012 logshipping实施方案
SQLServer2012 logshipping实施方案
26-03-02 - SQLServer移动数据文件
SQLServer移动数据文件
26-03-02 - SQLite命令全解析(Ubuntu系统下SQLite3工具使用入门教程)
- 无法初始化 sqlcmd 库,错误编号为 -2147467259
无法初始化 sqlcmd 库,错误编号为 -2147467259
26-03-02 - 深入理解 SQL Server 2008 的锁机制
深入理解 SQL Server 2008 的锁机制
26-03-02 - 如何通过服务器上的IPMI接口,建立服务器管理网络
如何通过服务器上的IPMI接口,建立服务器管理网络
26-03-02 - 门禁系统中出门按钮及门磁接线图
门禁系统中出门按钮及门磁接线图
26-03-02 - 入侵报警系统中红外对射系统原理及使用教程
入侵报警系统中红外对射系统原理及使用教程
26-03-02 - 视频切换器 原理及电路图
视频切换器 原理及电路图
26-03-02 - A cursor with the name 'db_cursor' already exists.
