繁体   English   中英

将SQL Server 2008 R2数据库文件移动到新文件夹位置

[英]Move SQL Server 2008 R2 database files to a new folder location

目前我有一个我希望在当前服务器上移动的数据库列表。

数据:

当前路径:Drive:\\ MSSQL \\ DATA \\ FOLDER

新路径:驱动器:\\ MSSQL \\ DATA

日志:

当前路径:驱动器:\\ MYSSQL \\ LOGS \\ FOLDER

新路径:驱动器:\\ MYSSQL \\ LOGS

是否有可用于设置脱机多个数据库的SQL脚本,将它们分离并将它们附加到新位置? 这也是一个生产环境,并且是相当大的数据库(备份和恢复需要更长的时间)。 总共需要移动9个数据库,这是一个简单的过程,只要位置和用户具有所需的权限? 感谢您的任何帮助。

这是一个简单的过程,您也不需要分离数据库来执行此操作,您可以执行以下操作:

  • 将db设置为脱机
  • 更改主数据库中的文件位置(使用alter database)
  • 物理移动文件
  • 在线设置db

该过程在以下文章中描述:

移动用户数据库

只要用户移动文件具有权限和服务帐户,您运行SQL服务器就像完全控制新文件夹一样,这很容易,而且我做了很多次。

一旦你完成了第一个数据库的执行过程,对多个数据库执行此操作也很简单。

您可以使用此代码更改路径。 但您必须手动将文件移动到新位置。 WITH ROLLBACK IMMEDIATE通过断开任何当前连接来加速离线过程。

ALTER DATABASE <db-name> SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE <db-name> MODIFY FILE ( NAME = <db-name>, FILENAME = <db-path\filename.mdf> );
ALTER DATABASE <db-name> SET ONLINE;

有关详细信息,请查看相关的MSDN文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM