移动master数据库
master 数据库记录 SQL Server 系统的所有系统级信息。这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。master 数据库还记录所有其他数据库是否存在以及这些数据库文件的位置。另外,master 还记录 SQL Server 的初始化信息。因此,如果 master 数据库不可用,则 SQL Server 无法启动。在 SQL Server 2005 中,系统对象不再存储在 master 数据库中,而是存储在 Resource 数据库中。
1.启动到单用户模式
NET START MSSQLSERVER /f /T3608
修改启动参数(配置管理器-高级标签-启动参数)
-dC:
ewmaster.mdf;
-eC:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGERRORLOG;
-lC:
ewmastlog.ldf;
-eC:
ewERRORLOG
2.移动master数据库
ALTER DATABASE master MODIFY FILE( NAME = master , FILENAME = 'C:
ewmaster.mdf')
ALTER DATABASE master MODIFY FILE( NAME = mastlog , FILENAME = 'C:
ewmasterlog.ldf')
3.移动资源数据库
ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=data, FILENAME='C:
ewmssqlsystemresource.mdf')
ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=log, FILENAME='C:
ewmssqlsystemresource.ldf')
4.停止SQL Server
5.移动数据库文件到目标
6.启动SQL Server
7.验证
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID('master');
移动model数据库
model 数据库用作在 SQL Server 实例上创建的所有数据库的模板。因为每次启动 SQL Server 时都会创建 tempdb,所以 model 数据库必须始终存在于 SQL Server 系统中。
1.移动路径
ALTER DATABASE model MODIFY FILE( NAME = modeldev , FILENAME = 'C:
ewmodel.mdf')
ALTER DATABASE model MODIFY FILE( NAME = modellog , FILENAME = 'C:
ewmodellog.ldf')
移动msdb数据库
msdb 数据库由 SQL Server 代理用来计划警报和作业
1.移动路径
ALTER DATABASE msdb MODIFY FILE( NAME = msdbdata , FILENAME = 'C:
ewmsdbdata.mdf')
ALTER DATABASE msdb MODIFY FILE( NAME = msdblog , FILENAME = 'C:
ewmsdblog.ldf')
移动tempdb
由于每次启动 MSSQLSERVER 服务时都会重新创建 tempdb,因此不需要从物理意义上移动数据和日志文件。将在步骤 3 中重新启动服务时创建这些文件。重新启动服务后,tempdb 才继续在当前位置发挥作用。
1.确定当前位置
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
GO
2.使用 ALTER DATABASE 更改每个文件的位置
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = c: ew empdb.mdf');
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'c: ew emplog.ldf');
3.停止并重新启动 SQL Server。
4.验证文件更改。
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
5、还原 master service key 密锁
BACKUP SERVICE MASTER KEY TO FILE = 'path_to_file' ENCRYPTION BY PASSWORD = 'password'
RESTORE SERVICE MASTER KEY FROM FILE = 'path_to_file' DECRYPTION BY PASSWORD = 'password' [FORCE]