热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

改变当前Server下所有DB的物理路径的方案参考

当你需要改变当前Server下所有DB的物理路径时,比如,从C盘搬到D盘,你会怎么办呢?或许你想到逐个对DB进行分离--〉搬文件--〉附加来实现,可是系统数据库并不能让你直接做分离这个动作,如下图所示。那怎么办呢?不急,这里提供一个可行的方案供大家参考。

当你需要改变当前Server下所有DB的物理路径时,比如,从C盘搬到D盘,你会怎么办呢?或许你想到逐个对DB进行分离--〉搬文件--〉附加来实现,可是系统数据库并不能让你直接做分离这个动作,如下图所示。那怎么办呢?不急,这里提供一个可行的方案供大家参考。

当你需要改变当前Server下所有DB的物理路径时,比如,从C盘搬到D盘,你会怎么办呢?或许你想到逐个对DB进行分离--〉搬文件--〉附加来实现,可是系统数据库并不能让你直接做分离这个动作,如下图所示。那怎么办呢?不急,这里提供一个可行的方案供大家参考。

方案分3步进行:

  1. 通过SQL更新所有文件的路径
  2. 停掉SQL Server服务,手动将文件搬到目标位置
  3. 为master更改SQL Server的启动参数

检查当前Server中DB的文件位置:

select database_id,name, physical_name,case when type = 0 then 'DATA' when type = 1 then 'LOG' end as FileType 
from sys.master_Files


使用动态SQL生成ALTER DATABASE的脚本(排除master):

select 'Alter DATABASE ' + d.name + ' MODIFY FILE ( NAME = ' + f.name + ', FILENAME = ' +
' ''D:\NewFolder\'+  --这里是目标路径
right(physical_name, charindex('\',reverse(physical_name))-1 ) + ''' ) '
FROM sys.databases d
inner join sys.master_files f on d.database_id = f.database_id
where type = 0 and d.database_id <> 1


运行完ALTER DATABASE的脚本后,应该会看到一堆类&#20284;以下截图的消息:

下面,你可以停掉SQL Server服务,然后将物理文件搬到目标路径下。当所有文件(包括master)都搬完之后,再来修改启动参数

  1. 启动SQL Server配置管理器
  2. 右击SQL Server实例--〉属性--〉启动参数,然后更新master .mdf的路径

一旦你更新了启动参数,应该就可以了。不过,如果服务账号对新的路径没有访问权限,SQL Server将会启动失败。

PS:如果要对Production Server实施该方案,请事先在Test Server试验,并对Production Server进行完整备份,以备不测。

推荐阅读
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 最适合初学者的编程语言
    本文探讨了适合编程新手的最佳语言选择,包括Python、JavaScript等易于上手且功能强大的语言,以及如何通过有效的学习方法提高编程技能。 ... [详细]
  • 本文详细解析了MySQL中常见的几种错误,并提供了具体的解决方法,帮助开发者快速定位和解决问题。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 在中标麒麟操作系统上部署达梦数据库及导入SQL文件
    本文档详细介绍了如何在中标麒麟操作系统上安装达梦数据库,并提供了导入SQL文件的具体步骤。首先,检查系统的发行版和内核版本,接着创建必要的用户和用户组,规划数据库安装路径,挂载安装介质,调整系统限制以确保数据库的正常运行,最后通过图形界面完成数据库的安装。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 探讨在使用 PL/SQL Developer 12.0 的数据生成器时遇到的中文乱码问题及其解决方案。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本文介绍了一种使用SQL Server存储过程来实现基于单一条件的高效分页查询的方法。通过示例代码,详细说明了如何构建和执行这种分页查询。 ... [详细]
author-avatar
幸福不要躲008_784
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有