码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 = 210、210既 210 之意。
默认情况下SQL SERVER的安装路径与数据库存放路径都是在C盘的,如此的话就有隐患。
某天,发现C盘的剩余空间所剩无几了,数据库也奇慢无比+各种报错!
咋办?更换数据库磁盘目录算是最可行的办法了。
一、环境准备
数据库版本--SQL SERVER 2008R2
数据库存放路径:
原路径:C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATA
迁移后路径:D:SQLSERVER
.LDF文件:数据库日志文件
.MDF文件:数据库文件
登录账户: windwos身份验证:windwos本地账户,具有管理员权限
SQL SERVER身份验证:sa账户,具有管理员权限
二、设计思路
登录SQLSERVER----先备份数据库-----分离需要迁移的数据库-----进入数据库的源路径C盘----将数据库两个文件.ldf与.mdf剪切至其他磁盘中----再登录SQL SERVER----附加数据库
ps:登录数据库请使用windows身份验证,防止附加数据库后数据库变为只读权限
三、操作流程
登录SQL SERVER,使用SSMS---widows身份验证,本地账户登录
右键点击一个数据库-----任务------备份数据库。避免突发情况,以防万一!
再次右键点击一个数据库-----任务------分离数据库
勾选“删除链接”-----勾选“更新统计信息”
分离后,进入源路径C盘,将两个文件(.ldf与.mdf)剪切至D盘
再次登录SQL SERVER,继续使用windwos身份验证
(因为用SA用户去附加数据库的时候,会让数据库成为只读状态,所以能用windwos身份验证就用本地账户,因为权限的问题)
右键“数据库”--“附加”
“添加”--选择D盘刚才剪切过去的数据库.mdf文件--确定
完成后刷新就可以查看数据库文件位置变了,且权限,文件任何都完整的迁移过来
重复操作就可以把所有数据库迁移至其他盘
四、如果出现数据库为只读状态
因为迁移的时候用的SA用户,所以数据库文件的权限变了,因此变为只读状态,所以刚才一再提醒用windwos本地用户操作!
不过,也有解决办法:
方案一:
碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定。
方案二:
使用sa登录SQL Server2008附加数据库,附加之后数据库为只读的,然后点数据库-->“属性”-->“选项”-->“状态”,发现“数据库为只读”这一项为True,改为false。
当然,大部分情况下不会成功。会继续报错下图。
这种情况下,找到你的数据文件和日志文件,右击“属性”-->“安全”,添加一个“Network Service”账户,然后赋予该账户完全控制的权限即可。
再次使用sa登录,附加数据库或者再次将“只读”状态修改即可。