sqlserver迁移数据库文件存储位置的详细教程

 更新时间:2024年09月27日 11:06:01   作者:偏执网友  
在实际的数据库管理和维护过程中,经常需要对SqlServer数据库的文件存放位置进行修改,这可能是因为硬盘空间不足、为了优化性能、便于备份、或者出于其他的管理需要,下面详细说明如何操作,需要的朋友可以参考下

业务背景:由于C盘爆满,需要将数据库文件迁移到别处比如D盘

下面以某一个数据库转移为示例:(可以用SSMS工具,新建查询配合使用)

1.查询数据库文件存储路径

sql语句:

-- 查询路径
USE QiangTest;
GO
SELECT name As [Database Name],
physical_name As [File Path],
type_desc As [File Type],state_desc
FROM sys.master_files
WHERE database_id= DB_ID('QiangTest');

也可以右键数据库 => 属性 => 文件 查看

2.关闭数据库(脱机)

sql语句:

-- 关闭数据库
USE master;
GO
ALTER DATABASE QiangTest SET OFFLINE WITH ROLLBACK IMMEDIATE; 
GO

3.转移数据库文件(做好备份)

因为不脱机会导致转移复制数据库文件时被使用

也可以在任务管理器停止MSSQLSERVER服务(不推荐),完成后记得开始服务

根据查询路径找到两个文件复制到新路径位置

4.更改数据文件路径

sql语句:

-- 更改路径
USE master;
GO
ALTER DATABASE QiangTest
MODIFY FILE(NAME = 'QiangTest', FILENAME = 'C:\DB\QiangTest.ndf');
GO
ALTER DATABASE QiangTest
MODIFY FILE (NAME = 'QiangTest_log', FILENAME = 'C:\DB\QiangTest_log.ldf');
GO

5.开启数据库

sql语句:

-- 开启数据库
USE master;
GO
ALTER DATABASE QiangTest SET ONLINE;
GO

6.其他的一些报错问题

(1)

解决方法:检查转移的数据库文件名要一致

(2)

消息 5120,级别 16,状态 101,第 29 行 无法打开物理文件“D:\db\Test\RedempWebTest.mdf”。操作系统错误 5:“5(拒绝访问。)”。 消息 5120,级别 16,状态 101,第 29 行 无法打开物理文件“D:\db\Test\RedempWebTest_1.ldf”。操作系统错误 5:“5(拒绝访问。)”。 消息 5181,级别 16,状态 5,第 29 行 无法重新启动数据库“RedempWebTest”。将恢复到以前的状态。 消息 5069,级别 16,状态 1,第 29 行 ALTER DATABASE 语句失败。

解决方法:这些问题都是权限问题,找到文件右键 => 属性 => 安全 => 找到组或用户名 => 编辑 => 添加完全控制权限

以上就是sqlserver迁移数据库文件存储位置的详细教程的详细内容,更多关于sqlserver迁移文件存储位置的资料请关注脚本之家其它相关文章!

相关文章

  • SQL server 中 CROSS APPLY的使用及用途

    SQL server 中 CROSS APPLY的使用及用途

    CROSS APPLY是SQL Server中的操作符,用于将表表达式与外部表连接,它允许在查询中多次引用外部表的行,并根据每行动态生成结果集,而OUTER APPLY则类似于LEFT JOIN,后者即使子查询无结果也会显示外部表的行,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 在SQL Server中备份和恢复数据库的四种方法

    在SQL Server中备份和恢复数据库的四种方法

    在SQL Server中,创建备份和执行还原操作对于确保数据完整性、灾难恢复和数据库维护至关重要,本文给大家介绍了备份和恢复数据库的最佳方法,需要的朋友可以参考下
    2023-12-12
  • MSSQL  附加数据库提示“错误 823”数据恢复实操

    MSSQL  附加数据库提示“错误 823”数据恢复实操

    这篇文章主要介绍了MSSQL 2000 附加数据库提示“错误 823”数据恢复实操,报错823一般数据库的物理页面出现了损坏或者校验值损坏导致数据库页面无法被识别还有异常断电导致的文件系统损坏,数据库页面丢失,下面针对错误 823对数据进行恢复,需要的朋友可以参考一下
    2022-03-03
  • 深入理解SQL中的COALESCE函数之处理NULL值的利器

    深入理解SQL中的COALESCE函数之处理NULL值的利器

    在SQL中COALESCE函数是一个非常有用的函数,用于从其参数列表中返回第一个非NULL值,这篇文章主要给大家介绍了关于SQL中COALESCE函数之处理NULL值的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-05-05
  • 在SQLServer上查看SQL语句的执行时间的方法

    在SQLServer上查看SQL语句的执行时间的方法

    查看SQL语句在SQL Server上的执行时间,方便大家监控语句的性能。写出更好的代码。
    2010-06-06
  • SQL Server实现自动循环归档分区数据脚本详解

    SQL Server实现自动循环归档分区数据脚本详解

    最近在工作中遇到了关于sql server的一个问题,通过查找相关的资料终于解决了,所以下面这篇文章主要给大家介绍了关于SQL Server如何实现自动循环归档分区数据脚本的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • SQL Server定期收缩日志文件的详细步骤

    SQL Server定期收缩日志文件的详细步骤

    事务日志记录着在相关数据库上的操作,同时还存储数据库恢复(recovery)的相关信息,收缩日志的原因有很多种,有些是考虑空间不足,有些则是应用程序限制导致的,本文将给大家介绍SQL Server定期收缩日志文件的详细步骤,需要的朋友可以参考下
    2024-06-06
  • SqlServer 巧妙解决多条件组合查询

    SqlServer 巧妙解决多条件组合查询

    开发中经常会遇得到需要多种条件组合查询的情况,比如有三个表,年级表Grade(GradeId,GradeName),班级Class(ClassId,ClassName,GradeId),学员表Student(StuId,StuName,ClassId),现要求可以按年级Id、班级Id、学生名,这三个条件可以任意组合查询学员信息
    2012-11-11
  • SQL Server Alert发送告警邮件少了的原因

    SQL Server Alert发送告警邮件少了的原因

    这篇文章主要为大家详细介绍了SQL Server Alert发送告警邮件少了的原因,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 将Session值储存于SQL Server中

    将Session值储存于SQL Server中

    将Session值储存于SQL Server中...
    2007-03-03

最新评论