SQL Server数据库分离和附加数据库的操作步骤

目录
  • 1. 概述
  • 2. 分离数据库
    • 2.1 分离数据库的步骤
  • 3. 附加数据库
    • 3.1 附加数据的操作步骤
  • 总结

1. 概述

若要将数据库移动或更改到同一计算机的不同 SQL Server 实例,分离和附加数据库会很有用;用户可以分离数据库的数据和事务日志文件,再将它们重新附加到同一或其他 SQL Server 实例中;

在 64 位和 32 为环境中,SQL Server 磁盘存储格式均相同,所以,能将 32 位环境中的数据库附加到 64 位环境中,反过来也行;

从运行在某个环境中的服务器实例上分离的数据库可以附加到运行在另一个环境的服务器实例;

注意: 不要从未知或不可信源附加或还原数据库;此类数据库可能包含执行非预期 T-SQL 代码的恶意代码,或通过修改架构或物理数据库结构导致错误;在使用未知源或不可信源中的数据库之前,在非生产服务器中对数据库运行 DBCC CHECKDB,同时检查数据库中的代码;

2. 分离数据库

分离数据库 指从 SQL Server 实例中删除,但使数据库在其数据文件和事物日志文件保持不变;之后,就能使用这些文件将数据库附加到任何 SQL Server 实例,包括分离该数据库的服务器;

若存在以下任何情况,就不能分离数据库;

  1. 已复制并发布的数据库;若进行复制,数据库就必须是未发布的,必须通过运行 sp_replicationdboption 禁用发布后,才能分离数据库;
  2. 数据库中存在数据库快照,必须先删除所有数据库快照,才能分离数据库;
  3. 该数据库正在某个数据库镜像会话中进行镜像,不终止该会话,就不能分离该数据库;
  4. 数据库处于可疑状态;
  5. 该数据库是系统数据库;

2.1 分离数据库的步骤

  1. 在 SSMS 对象资源管理器中连接到 SQL Server 数据库引擎的实例,展开该实例;
  2. 展开数据库,选择要分离的用户数据库名称;
  3. 右击数据库 → 任务 → 分离

4.分离数据库对话框,确定;

3. 附加数据库

通过 SSMS ,用户同样能附加复制的或分离的 SQL Server 数据库;

注意: 附加数据库时,该数据库必须已分离且所有数据文件(MDF 文件或 NDF 文件)都必须可用;

附加日志文件的要求在某些方面取决于是读写还是只读的;

若读写数据库具有单个日志文件,且没有为该日志文件指定新位置,附加操作将在旧位置中查找该文件;

若找到了该就日志文件,无论数据库上次是否完全关闭,都会使用该文件;但是,若未找到旧文件日志,数据库上次是完全关闭且现在没有活动日志链,则附加操作将尝试为数据创建新的日志文件;

反之,若附加的主数据文件是只读的,则数据库引擎假定该数据库也是只读的;对于只读数据库,日志文件在数据库中指定的位置上必须可用;

从上述内容能看出,用户尝试附加 SQL Server 数据库前,必须具备一定的先决条件,如下所示:

  1. 必须先分离数据库,任何尝试附加未分离的数据库都将返回错误;
  2. 附加数据库时,所有数据文件(MDF 文件和 LDF 文件)都必须可用;若任何数据文件路径不同于首次创建数据库或上次附加数据库时的路径,则必须指定文件的当前路径;
  3. 在附加数据库时,若 MDF 和 LDF 文件位于不同目录且其中一条路径包含 \?\GlobalRoot,该操作将失败;

3.1 附加数据的操作步骤

附加数据库到指定目标上,操作步骤如下:

1.右击数据库附加

2.附加数据库对话框中,若要指定要附加的数据库,可单击添加,在定位数据库文件中选择数据库所在的磁盘驱动器并展开目录,以查找并选择数据的**.mdf** 数据库文件;

总结

到此这篇关于SQL Server数据库分离和附加数据库的文章就介绍到这了,更多相关SQLServer分离和附加数据库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SQL Server 数据库分离与附加 就这么简单!

    一.概述 SQL Server提供了"分离/附加"数据库."备份/还原"数据库.复制数据库等多种数据库的备份和恢复方法.这里介绍一种学习中常用的"分离/附加"方法,类似于大家熟悉的"文件拷贝"方法,即把数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘上作备份,然后把这两个文件再拷贝到任何需要这个数据库的系统之中.比如,在实验教学过程中,同学们常常想把自己在学校实验室计算机中创建的数据库搬迁到自己的计算机中而不想

  • SQL Server 数据库分离与附加(图文教程)

    一.概述 SQL Server提供了"分离/附加"数据库."备份/还原"数据库.复制数据库等多种数据库的备份和恢复方法.这里介绍一种学习中常用的"分离/附加"方法,类似于大家熟悉的"文件拷贝"方法,即把数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘上作备份,然后把这两个文件再拷贝到任何需要这个数据库的系统之中.比如,在实验教学过程中,同学们常常想把自己在学校实验室计算机中创建的数据库搬迁到自己的计算机中而不想

  • SQL Server数据库分离和附加数据库的操作步骤

    目录 1. 概述 2. 分离数据库 2.1 分离数据库的步骤 3. 附加数据库 3.1 附加数据的操作步骤 总结 1. 概述 若要将数据库移动或更改到同一计算机的不同 SQL Server 实例,分离和附加数据库会很有用:用户可以分离数据库的数据和事务日志文件,再将它们重新附加到同一或其他 SQL Server 实例中: 在 64 位和 32 为环境中,SQL Server 磁盘存储格式均相同,所以,能将 32 位环境中的数据库附加到 64 位环境中,反过来也行: 从运行在某个环境中的服务器实例

  • SQL Server 2005降级到2000的正确操作步骤分享

    以下的文章主要向大家描述的是SQL Server 2005导入到SQL Server 2000的正确操作步骤,以及对其在实际操作中值得我们大家注意的相关事项的具体描述,以下就是文章的具体内容的介绍,望你会有所收获. SQL Server 2005转到2000的步骤: 1. 生成for SQL Server 2000版本的数据库脚本 SQL Server 2005 的manger studio 打开"对象资源管理器"(没有的话按F8), 连接到你的实例 右键要转到SQL Server 2

  • 用sql语句实现分离和附加数据库的方法

    对于用Manage Studio自己看着界面操作就可以应付了. 分离数据库: 对于用存储过程来分离数据库,如果发现无法终止用户链接,可以使用ALTER DATABASE命令,并利用一个能够中断已存在链接的终止选项来把数据库设置为SINGLE_USER模式,设置为SIGLE_USER代码如下: ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE下面是分离数据库的CMD命令 EXEC sp_detach_db D

  • SQL Server实时同步更新远程数据库遇到的问题小结

    工作中遇到这样的情况,需要在更新表TableA(位于服务器ServerA 172.16.8.100中的库DatabaseA)同时更新TableB(位于服务器ServerB 172.16.8.101中的库DatabaseB). TableA与TableB结构相同,但数据数量不一定相同,应为有可能TableC也在更新TableB.由于数据更新不频繁,为简单起见想到使用了触发器Tirgger.记录一下遇到的一些问题: 1. 访问异地数据库 在ServerA 中创建指向ServerB的链接服务器,并做好

  • sql server实现在多个数据库间快速查询某个表信息的方法

    本文实例讲述了sql server实现在多个数据库间快速查询某个表信息的方法.分享给大家供大家参考,具体如下: 最近出来实习,所在公司的服务器有十几个数据库,为了方便根据某个数据表的  表名  快速找到对应的数据库,又复习了一下游标的知识,写了下面这个sql代码,方便自己的工作. 1.先了解一下系统存储过程和系统表的使用,简单介绍一下我用到的几个系统存储过程(资料参考网络) use master --切换到系统数据库,因为下面用到的系统存储过程和系统表大部分存在于该数据库 go exec sp_

  • SQL SERVER迁移之更换磁盘文件夹的完整步骤

    前言 默认情况下SQL SERVER的安装路径与数据库的默认存放路径是在C盘的--这就很尴尬. 平时又不注意,有天发现C盘的剩余空间比较吃紧了,于是着手想办法迁移文件夹. 一.环境准备 数据库版本--SQL SERVER 2008R2 数据库存放路径: 原路径:C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA 迁移后路径:D:\SQLSERVER .LDF文件:数据库日志文件 .MDF文件:数据库文件

  • QT连接Oracle数据库并实现登录验证的操作步骤

    目的: 本文实现QT登录界面,输入账号和密码后,系统连接Oracle数据进行判断账号和密码(MD5加密)是否和数据库一致,如果一致则提示登录成功. 开发环境:Windows10+QT5.14.2+Oracle11G R2 操作步骤: 1.打开QT软件,创建一个新的Application项目 2.设计界面并修改代码: 2.1修改项目配置文件,添加sql字符串表示要对数据库进行操作. 2.2登录界面LoginForm设计 2.3编写登录界面代码 LoginForm.h代码如下: #ifndef LO

  • SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法

    以前一直使用SQL Server2000,现在跟潮流都这么紧,而且制定要求使用SQL Server2005,就在现在的项目中使用它了.  对于SQL Server 2005,有几个地方是要注意的,比方在还原数据库时,不像2000里边将数据库和文件区分的很细,统一均为文件,这就使还原的数据库文件制定为. bak.那么想还原2000的数据库(备份数据库文件,无后缀名的),就需要自己手工选择. 选择下拉框中的"所有文件",这时就会显示"备份数据库文件"了,选择-确定 最主

随机推荐