一片荷叶 2020-10-28
前言
默认情况下SQL SERVER的安装路径与数据库的默认存放路径是在C盘的--这就很尴尬。
平时又不注意,有天发现C盘的剩余空间比较吃紧了,于是着手想办法迁移文件夹。
一、环境准备
数据库版本--SQL SERVER 2008R2
数据库存放路径:
原路径:C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
迁移后路径:D:\SQLSERVER
.LDF文件:数据库日志文件
.MDF文件:数据库文件
登录账户:
windwos身份验证:windwos本地账户,具有管理员权限
SQL SERVER身份验证:sa账户,具有管理员权限
二、设计思路
登录SQL SERVER----先备份数据库-----分离需要迁移的数据库-----进入数据库的源路径C盘---------------将数据库两个文件.ldf与.mdf剪切至其他磁盘中----再登录SQL SERVER----附加数据库
ps:登录数据库请使用windows身份验证,防止附加数据库后数据库变为只读权限
三、操作流程
1.登录SQL SERVER,使用SSMS---widows身份验证,本地账户登录
2.右键点击一个数据库-----任务------备份数据库。避免突发情况,以防万一!
3. 再次右键点击一个数据库-----任务------分离数据库
勾选“删除链接”-----勾选“更新统计信息”
4.分离后,进入源路径C盘,将两个文件(.ldf与.mdf)剪切至D盘
5.再次登录SQL SERVER,继续使用windwos身份验证
(因为用SA用户去附加数据库的时候,会让数据库成为只读状态,所以能用windwos身份验证就用本地账户,因为权限的问题)
6.右键“数据库”--“附加”
“添加”--选择D盘刚才剪切过去的数据库.mdf文件--确定
7.完成后刷新就可以查看数据库文件位置变了,且权限,文件任何都完整的迁移过来
8.重复操作就可以把所有数据库迁移至其他盘
四、如果出现数据库为只读状态
因为迁移的时候用的SA用户,所以数据库文件的权限变了,因此变为只读状态,所以刚才一再提醒用windwos本地用户操作!
当然也有解决办法:
方案一:
碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定。
方案二:
使用sa登录SQL Server2008附加数据库,附加之后数据库为只读的,然后点数据库-->“属性”-->“选项”-->“状态”,发现“数据库为只读”这一项为True,改为false。
当然,大部分情况下不会成功。会继续报错下图。
这种情况下,找到你的数据文件和日志文件,右击“属性”-->“安全”,添加一个“Network Service”账户,然后赋予该账户完全控制的权限即可。
再次使用sa登录,附加数据库或者再次将“只读”状态修改即可。
总结