农妇山泉一亩田 发表于 2024-8-2 07:41:02

sql server修改数据库文件位置

配景:装数据库的时间将文件位置装在了C盘,C盘分的又比力小,每日数据量增长会导致系统崩溃,没有服务端,只有数据库。
注:1.实体机不要在业务时间利用,拔了网线利用是安全有保障的方法-防止有其他连接,数据写入这些。
2.全部利用先搭测试情况多利用几次,然后再在实体机上利用,毕竟数据很紧张,备份也非常紧张。
3.不要去移动系统数据库(如master,tempdb…这些),否则整个数据库都会用不了
步骤
下面是将数据库从一个路径转移到另一个路径的常见步骤(以ReportServer为例):
1.备份数据库
在转移数据库之前,我们起首需要备份数据库,以便在出现任何题目时能够恢复数据。可以利用以下T-SQL语句进行数据库备份:
----1.备份
BACKUP DATABASE [数据库名]
TO DISK ='D:\Backup\数据库名.bak'
[也可以用块装备的方法备份可以看到更多信息 斜体部分不用利用,了解一下]
[
-----装备块备份
–Use 学生成绩管理
–GO
—Exec sp_addumpdevice ‘disk’,‘备份装备01’,‘d:\backup1\学生成绩管理.bak’
备份数据库命令:
—backup database 学生成绩管理 to 备份装备01
还原数据库
—restore database 学生成绩管理from 备份装备01 with replace
注意:在还原数据库时,必须先关闭要还原的数据库]
—2.先将所需更改的数据库的路径先查询出来再进行关闭
USE[数据库名];
GO
SELECT name As ,
physical_name As ,
type_desc As ,state_desc
FROM sys.master_files
WHERE database_id= DB_ID(' [数据库名]');
https://img-blog.csdnimg.cn/direct/db699b5d7a8b4eb1ad993ad6137d796b.png
—3.关闭该数据库
USE master;
GO
ALTER DATABASE [数据库名] SET OFFLINE WITH ROLLBACK IMMEDIATE;
GO
https://img-blog.csdnimg.cn/direct/a2789d7cc67a4555b8d734d0f85d9fa4.png
4.再次查询发现已经是离线
USE[数据库名];
GO
SELECT name As ,
physical_name As ,
type_desc As ,state_desc
FROM sys.master_files
WHERE database_id= DB_ID(' [数据库名]');
https://img-blog.csdnimg.cn/direct/ae8542ae616a4c149702c3c8838bb64b.png
----5.移动数据库文件(文件位置我移到D盘,根据个人情况。文件夹可以不需要建那么长)
注:必须要先把文件夹位置建好,才气执行下列移动位置命令
USE master;
GO
ALTER DATABASE ReportServer
MODIFY FILE(NAME = 'ReportServer', FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ReportServer.mdf');
GO
ALTER DATABASE ReportServer
MODIFY FILE (NAME = 'ReportServer_log', FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ReportServer_log.ldf');
GO
----执行成功提示如下
https://img-blog.csdnimg.cn/direct/c5e3b84b3a914dbb9c25b2512104a09c.png
—6.开启数据库时提示报错信息
USE master;
GO
ALTER DATABASE ReportServer SET ONLINE;
GO
这是因为文件逻辑位置做了更改,但是文件物理位置没变导致的,需要先找到该数据库在C盘下的位置,移动到D盘下新建的位置即可
https://img-blog.csdnimg.cn/direct/75797d040fbf44d5b573f7de19d86216.png
D盘下现在还没有移动过去https://img-blog.csdnimg.cn/direct/8ce255395af443ed9c16da239cc015aa.png
7.手动拖过去即可https://img-blog.csdnimg.cn/direct/f1c17b0168e54044b1e6ac170db2f245.png
注:还有别的一种情况,手动移动过去报错,提示****已在文件中打开,此时需要加权限,如此类报错
https://img-blog.csdnimg.cn/direct/b87ace0814f5409eb5a7c7eb340960bb.png
办理方法如下
将2个文件都把everyone添加进去,权限为完全控制,即可复制过去。
https://img-blog.csdnimg.cn/direct/c99aea2bb47549b18742a2c3c7560bf8.png
8.然后移动过去又报利用系统错误5:“5(拒绝访问。)”https://img-blog.csdnimg.cn/direct/096b1aa7cb464c409f8d4ce4bdff20a2.png
9.这是需要将移动到D盘的数据文件中user的权限改为完全控制,(2个文件都需要这么利用,否则也会报错)然后再次执行
https://img-blog.csdnimg.cn/direct/a65bcd958ff44164be17fe6bfb52cbc3.png
10.执行成功https://img-blog.csdnimg.cn/direct/c0ef6362e6b9400ea64424902978f382.png
注:执行成功之后,去文件夹下看双方都会有,但是以后写数据只会写在移动到D盘的文件位置里边。以上为我亲测有用的方法。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: sql server修改数据库文件位置