如何迁移系统数据库

默认SQL Server安装完成后,SQL Server的4个系统数据库(master,model,msdb和tempdb)都会被自动安放在安装路径下,也就是系统盘的Program Files文件夹下。所带来的问题就是,绝大多数数据库服务器为了同时照顾到性能,成本和高可用性这三个方面,都会将系统安装在一个Raid1阵列上,通常这个Raid1阵列还不一定会用上15K的SAS,有的只是用10K的SAS,更有甚者,为了成本,装2个7.2K的SATA也就完事了。再加上Raid1阵列本身就是一种读取性能非常强,但是写入性能相当差的阵列形式,所以,对于系统数据库,尤其是对TempDB数据库来说,是非常不利的,也肯定会对整个SQL Server的性能造成影响。

所以将系统数据库迁移到一个性能更加高的阵列上,是一个解决硬件性能瓶颈的基础解决方案。

下面就介绍一下如何将系统数据库迁移到其他分区上(以SQL Server 2016为例):

迁移master数据库

  • 1.打开SQL Server Configuration Manager,先在左边的列表框选中SQL Server Services,再在右边的列表框选中SQL Server(MSSQLSERVER),
  • 2.停止该服务
  • 3.右键选中"Properties",切换到"Startup Parameters"标签,选中指定的启动参数(S)并更新:
-dD:\sqldata\master.mdf
-eD:\sqldata\ERRORLOG
-lD:\sqllog\mastlog.ldf
  • 4.移动物理文件到新目录
  • 5.启动该服务

迁移model、msdb、tempdb数据库

  • 1.修改逻辑文件名及对应的物理文件路径
ALTER DATABASE model MODIFY FILE(NAME='modeldev',FILENAME='D:\sqldata\model.mdf'); 
ALTER DATABASE model MODIFY FILE(NAME='modellog',FILENAME='D:\sqllog\modellog.ldf'); 

ALTER DATABASE msdb MODIFY  FILE(NAME='MSDBData',FILENAME='D:\sqldata\msdbdata.mdf'); 
ALTER DATABASE msdb MODIFY FILE(NAME='MSDBLog',FILENAME='D:\sqllog\msdb_log.ldf');

如果tempdb有多个ndf请参考添加.

ALTER DATABASE tempdb MODIFY FILE(NAME='tempdev',FILENAME='D:\sqldata\tempdb.mdf'); 
ALTER DATABASE tempdb MODIFY FILE(NAME='templog',FILENAME='D:\sqllog\templog.ldf'); 
ALTER DATABASE tempdb MODIFY FILE(NAME='temp2',FILENAME='D:\sqldata\tempdb_mssql_2.ndf');
  • 2.停掉SQLServer服务

  • 3.移动物理文件到新目录。

注意:对于tempdb,由于每次启动 MSSQLSERVER 服务时都会重新创建 tempdb,因此不需要从物理意义上移动数据和日志文件。

  • 4.启动SQLServer服务
Copyright © www.sqlfans.cn 2023 All Right Reserved更新时间: 2022-01-14 17:30:01

results matching ""

    No results matching ""