目前我有一个我希望在当前服务器上移动的数据库列表。
DATA:
当前路径:驱动器:\ MSSQL \ DATA \ FOLDER
新路径:云端硬盘:\ MSSQL \ DATA
日志:
当前路径:云端硬盘:\ MYSSQL \ LOGS \ FOLDER
新路径:云端硬盘:\ MYSSQL \ LOGS
是否有可用于设置脱机多个数据库的SQL脚本,将它们分离并将它们附加到新位置?这也是一个生产环境,并且是相当大的数据库(备份和恢复需要更长的时间)。总共需要移动9个数据库,这是一个简单的过程,只要位置和用户具有所需的权限?谢谢你的帮助。
答案 0 :(得分:3)
这是一个简单的过程,你真的不需要分离数据库来做它,你可以按照以下方式做一些事情:
该过程在以下文章中描述:
只要移动文件的用户拥有权限和服务帐户,你就可以运行SQL服务器,因为它可以完全控制新文件夹,这很简单,而且我做了很多次。
在完成第一个数据库的过程后,为多个数据库执行此操作也很简单。
答案 1 :(得分:1)
您可以使用此代码更改路径。但您必须手动将文件移动到新位置。 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 article