目前,我有一个要在当前服务器上移动的数据库列表。
数据:
当前路径:驱动器:\MSSQL\DATA\文件夹
新路径:驱动器:\MSSQL\DATA
日志:
当前路径:驱动器:\MYSSQL\LOGS\文件夹
新路径:驱动器:\MYSSQL\LOGS
是否有SQL脚本可用于将多个数据库设置为离线,分离它们并将它们附加到新位置?这也是一个生产环境,并且是非常大的数据库(备份和恢复需要更长的时间)。总共需要移动9个数据库,只要位置和用户拥有所需的权限,这是一个简单的过程吗?谢谢你的帮助。
发布于 2013-10-30 17:41:37
这是一个简单的过程,您实际上也不需要分离数据库来完成此操作,您只需执行以下操作:
将文件设置为离线文件更改主数据库中的文件位置(使用alter database)
下面的文章描述了这个过程:
只要移动文件的用户拥有您运行的SQL server as的权限和服务帐户,就可以完全控制新文件夹,这是我已经做过很多次的事情。
对多个数据库执行此操作也很简单,因为您已经制定了执行第一个数据库的步骤。
发布于 2013-10-30 17:50:09
您可以使用此代码更改路径。但您必须手动将文件移动到新位置。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
https://stackoverflow.com/questions/19678141
复制相似问题