微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLserver数据库文件在不同磁盘目录内迁移

MS sql 数据库迁移文件,这里说的不是将数据库迁移到另外一台服务器,只是在服务器不同磁盘目录内做迁移。移动数据库文件的情况大致有下面一些:  1: 事先没有规划好,数据库文件或日志文件增长过快,导致某个盘或整个磁盘空间不足,需要移动数据文件或日志文件  2: 纯粹由于业务需求,数据增长过快。  3: 为了更好的IO的性能,需要将数据文件、日志文件分布到不同磁盘,减轻IO压力,提供IO性能。  4:故障恢复。例如,数据库处于可疑模式或因硬件故障而关闭。案例:现在我在数据库实例中有数据库MyAssistant,(假设)由于事先没有规划好,导致数据文件位于E:\DataBase目录下,我们需要将数据文件移动到D:\DataBase_Data目录下,将日志文件移动到F:\DataBase_Log目录下。步骤1:对数据库中每个要移动的文件(数据文件/日志文件),通过下面命令指定到新的目录 USE masterGOALTERDATABASE MyAssistantMODIFY FILE(NAME='MyAssistant',FILENAME='D:\DataBase_Data\MyAssistant.mdf');GOALTERDATABASE MyAssistantMODIFY FILE(NAME='MyAssistant_log',FILENAME='F:\DataBase_Log\MyAssistant_log.ldf');GO 如果有多个数据库的数据文件/日志文件需要移动,可以通过一系列上述命令执行 ALTERDATABASE DATABASE_ID1MODIFY FILE(NAME='DATABASE_NAME',FILENAME='....mdf');ALTERDATABASE 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');二:迁移系统数据库文件 迁移系统数据库文件与迁移用户数据库文件稍微有些不同步骤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 MODIFY FILE(NAME='MSDBData',FILENAME='D:\sqldata\MSDBData.mdf') ;GO ALTERDATABASE msdbMODIFY FILE(NAME='MSDBLog',FILENAME='E:\sqllog\MSDBLog.ldf') ;GO ALTERDATABASE modelMODIFY FILE(NAME='modeldev',FILENAME='D:\sqldata\model.mdf') ;GO ALTERDATABASE modelMODIFY FILE(name='modellog',filename='E:\sqllog\modellog.ldf') ;GO ALTERDATABASE tempdbMODIFY FILE(name='tempdev',filename='D:\sqldata\tempdb.mdf') ;GOALTERDATABASE tempdbMODIFY FILE(name='templog',filename='E:\sqllog\templog.ldf') ;GO 步骤2:停止sql SERVER服务,移动数据文件到制定路径,需要注意的是:对于临时数据库,由于每次启动 MSsqlSERVER 服务时都会重新创建 tempdb,因此不需要从物理意义上移动数据和日志文件。步骤3: 启动sql SERVER服务,验证修改是否生效。步骤4: 删除原来的数据文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐