重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 610|回复: 0
打印 上一主题 下一主题

sqlserver移动系统数据库

[复制链接]
跳转到指定楼层
楼主
发表于 2023-1-15 14:24:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 刘泽宇 于 2023-1-15 14:26 编辑

适用于:

                               
登录/注册后可看大图
SQL Server(所有受支持的版本)
移动系统数据库在下列情况下可能很有用:
  • 故障恢复。 例如,数据库处于可疑模式下或因硬件故障而关闭。
  • 预先安排的重定位。
  • 为预定的磁盘维护操作而进行的重定位。

移动系统数据库
若要将移动系统数据库数据或日志文件的操作作为预先安排的重定位或预定的维护操作的一部分,请按照下列步骤操作。 其中包括 model、msdb 和 tempdb 系统数据库。
重要:
此过程适用于除 master 和 Resource 数据库以外的所有系统数据库。 移动 master 数据库有另外的步骤, 无法移动 Resource 数据库。

  • 通过查看sys.master_files 目录视图,记录要移动的数据库文件的现有位置。
  • 验证 SQL Server 数据库引擎 的服务帐户是否对文件的新位置具有完全权限。 如果 数据库引擎 服务帐户无法控制其新位置中的文件,则 SQL Server 实例将不会启动。
  • 对于要移动的每个数据库文件,请运行以下语句。
    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' );
    在重新启动服务之前,数据库将继续使用现有位置中的数据和日志文件。
  • 停止 SQL Server 实例以执行维护。
  • 将数据库文件或文件复制到新位置。 请注意,这不是 tempdb 系统数据库的必要步骤,将自动在新位置创建这些文件。
  • 重新启动 SQL Server 实例或服务器。
  • 通过运行以下查询来验证文件更改。 系统数据库应报告新的物理文件位置。
    SELECT name, physical_name AS CurrentLocation, state_desc  FROM sys.master_files  WHERE database_id = DB_ID(N'<database_name>');
  • 由于在步骤 5 中复制了数据库文件而不是移动它们,因此,现在可以从以前的位置安全删除未使用的数据库文件。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-29 05:25 , Processed in 0.086170 second(s), 19 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表