博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MS SQL 迁移数据库文件
阅读量:6480 次
发布时间:2019-06-23

本文共 2420 字,大约阅读时间需要 8 分钟。

MS SQL 数据库迁移文件,这里说的不是将数据库迁移到另外一台服务器,只是在服务器不同磁盘目录内做迁移。移动数据库文件的情况大致有下面一些:

  1: 事先没有规划好,数据库文件或日志文件增长过快,导致某个盘或整个磁盘空间不足,需要移动数据文件或日志文件

  2: 纯粹由于业务需求,数据增长过快。

  3: 为了更好的IO的性能,需要将数据文件、日志文件分布到不同磁盘,减轻IO压力,提供IO性能。

  4:故障恢复。例如,数据库处于可疑模式或因硬件故障而关闭。

案例:现在我在数据库实例中有数据库MyAssistant,(假设)由于事先没有规划好,导致数据文件位于E:\DataBase目录下, 我们需要将数据文件移动到D:\DataBase_Data目录下,

将日志文件移动到F:\DataBase_Log目录下。

步骤1:对数据库中每个要移动的文件(数据文件/日志文件),通过下面命令指定到新的目录

USE masterGOALTER DATABASE MyAssistantMODIFY FILE(NAME='MyAssistant', FILENAME='D:\DataBase_Data\MyAssistant.mdf');GOALTER DATABASE MyAssistantMODIFY FILE(NAME='MyAssistant_log', FILENAME='F:\DataBase_Log\MyAssistant_log.ldf');GO

 

如果有多个数据库的数据文件/日志文件需要移动,可以通过一系列上述命令执行

ALTER DATABASE DATABASE_ID1MODIFY FILE(NAME='DATABASE_NAME', FILENAME='....mdf');ALTER DATABASE DATABASE_ID2MODIFY FILE(NAME='DATABASE_NAME', FILENAME=.....mdf');.......

 

步骤2:停止SQL Server实例,你可以在SQL Server Management Studio的配置工具Sql Server Configuration Manager下停止。也可用NET STOP MSSQLSERVER命令实现。

 

步骤3:将那些数据文件或日志文件手工移动到对应的目录(也就是上面命令中FILENAME对应的目录)

 

步骤4:重启SQL Server实例,验证数据文件迁移是否成功。

 

SELECT
name
, physical_name
 
FROM
sys.master_files
 
WHERE
database_id = DB_ID(
'MyAssistant'
);

 

二:迁移系统数据库文件

 

 迁移系统数据库文件与迁移用户数据库文件稍微有些不同,主要是master数据库有点特殊,下面介绍一下迁移master系统数据库的步骤:

 

步骤1:如果SQL Server实例已经启动,那么停止该实例;这一步也完全可以忽略不做。

 

步骤2:修改启动参数(配置管理器-高级标签-启动参数)

 

 

-dD:\sqldata\master.mdf;

-eC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG;

-lE:\sqllog\mastlog.ldf

步骤3:关闭实例服务,拷贝master数据库的相关文件到目标文件。如上所示,把master数据的数据文件和日志文件分别从C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA下拷贝到D:\sqldata 和E:\sqllog\目录下。

 

步骤4:启动服务。检查OK没有问题后,删除master数据库在原C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA下的文件。

 

迁移model、msdb、tempdb数据库的步骤如下:

 

步骤1: 执行下面脚步

USE masterGO ALTER DATABASE msdbMODIFY FILE(NAME='MSDBData', FILENAME='D:\sqldata\MSDBData.mdf') ;GO ALTER DATABASE msdbMODIFY FILE(NAME='MSDBLog', FILENAME='E:\sqllog\MSDBLog.ldf') ;GO ALTER DATABASE modelMODIFY FILE(NAME='modeldev', FILENAME='D:\sqldata\model.mdf') ;GOALTER DATABASE modelMODIFY FILE(name='modellog' , filename='E:\sqllog\modellog.ldf') ;GO ALTER DATABASE tempdbMODIFY FILE(name='tempdev', filename='D:\sqldata\tempdb.mdf') ;GO ALTER DATABASE tempdbMODIFY FILE(name='templog', filename='E:\sqllog\templog.ldf') ;GO

步骤2:停止SQL SERVER服务,移动数据文件到制定路径,需要注意的是:对于临时数据库,由于每次启动 MSSQLSERVER 服务时都会重新创建 tempdb,因此不需要从物理意义上移动数据和日志文件。

 

步骤3: 启动SQL SERVER服务,验证修改是否生效。

 

步骤4: 删除原来的数据文件。

转载地址:http://zczuo.baihongyu.com/

你可能感兴趣的文章
你的leader还在考核你的千行代码Bug率吗?
查看>>
多块盘制作成一个lvm
查看>>
InnoDB多版本
查看>>
贪心算法 - 活动选择问题
查看>>
独立思考与输入、吸收
查看>>
图像滤镜艺术---ZPhotoEngine超级算法库
查看>>
Hadoop学习之路(十)HDFS API的使用
查看>>
CentOS6.5安装ElasticSearch6.2.3
查看>>
说说Java观察者模式
查看>>
安装连接mysql8时候遇到的问题以及解决(转)
查看>>
es6 includes(), startsWith(), endsWith()
查看>>
关于azkaban上传job压缩包报错问题的解决方案
查看>>
JS版日期格式化和解析工具类,毫秒级
查看>>
flask-login登录原理
查看>>
百度人脸对比
查看>>
Linux内存管理 一个进程究竟占用多少空间?-VSS/RSS/PSS/USS
查看>>
苹果AppStore如何申请加急审核
查看>>
SpringBoot 使用Swagger2打造在线接口文档(附汉化教程)
查看>>
Mysql一个表编码的坑,mark一下
查看>>
JS动态事件绑定问题
查看>>