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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

sqlserver附加数据库

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

先决条件
继续之前,请查看以下所有先决条件:
  • 如果要将数据库从一个实例移到另一个实例,则必须先将数据库与任何现有 SQL 实例分离。 如果尝试附加未分离的数据库,会返回错误。   
  • 附加数据库时,数据库的所有数据文件都必须可用。 通常,对于数据文件,这些文件的扩展名为 .mdf 或 ndf;对于事务日志文件,则扩展名为 .ldf。 此外,FILESTREAM 数据的任何文件组都必须存在并且可用。  
  • 如果任何数据文件的路径不同于首次创建数据库或上次附加数据库时的路径,则必须指定文件的当前路径。
  • 数据库引擎服务帐户必须具有读取其新位置中的文件的权限。
  • 如果在你附加数据库时,MDF 和 LDF 文件位于不同目录,并且其中一条路径包含 \\?\GlobalRoot,则该操作将失败。

对于备份和还原,建议不要使用分离再附加操作。 分离要从 SQL Server 外部备份的文件时,没有事务日志备份或时间点还原可用。


权限
需要 CREATE DATABASE、CREATE ANY DATABASE 或 ALTER ANY DATABASE 权限。
使用 SQL Server Management Studio (SSMS)移动数据库之前
如果要移动数据库,请在将它与其现有 SQL Server 实例分离之前,使用“数据库属性”页查看与数据库关联的文件及其当前位置。
  • 在SQL Server Management Studio 对象资源管理器中,连接到SQL Server数据库引擎的实例,然后展开实例。
  • 展开 “数据库” ,并选择要分离的用户数据库的名称。
  • 右键单击数据库名称,并选择“属性”。 选择“文件”页,并查看“数据库文件:”表中的条目。

分离、移动和附加之前,请务必考虑与数据库关联的所有文件。 然后,继续执行下一部分中的分离、文件复制和附加数据库步骤。
附加数据库
  • 在SQL Server Management Studio对象资源管理器中,连接到SQL Server数据库引擎的实例,然后选择在 SSMS 中展开该实例视图。
  • 右键单击“数据库”,然后选择“附加”。
  • 在“附加数据库”对话框中,若要指定要附加的数据库,请选择“添加”。 在“定位数据库文件”对话框中,选择数据库所在的位置,然后展开目录树来查找数据库的 .mdf 文件并将其选中,例如:
    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf

“要附加的数据库”
显示所选数据库的有关信息。
<无列标题>
显示一个图标,用以指示附加操作的状态。 “状态”说明中介绍可能的图标。
MDF 文件位置
显示选定 MDF 文件的路径和文件名。
Database Name
显示数据库的名称。
附加为
根据需要,可以指定要附加数据库的其他名称。
所有者
提供数据库可能所有者的下拉列表,您可以根据需要从其中选择其他所有者。
Status
显示下表中相应的数据库状态:

图标
状态文本
说明
(无图标)(无文本)此对象的附加操作尚未启动或者可能挂起。 这是打开该对话框时的默认值。
绿色的右向三角形正在进行已启动附加操作,但是该操作未完成。
绿色的选中标记Success已成功附加该对象。
包含白色十字形的红色圆圈错误附加操作遇到错误,未成功完成。
包含左、右两个黑色象限和上、下两个白色象限的圆圈已停止由于你停止了附加操作,该操作未成功完成。
包含一个指向逆时针方向的曲线箭头的圆圈已回滚附加操作已成功,但已对其进行回滚,因为在附加其他对象的过程中出至舜砦蟆�

消息
显示空消息或“找不到文件”超链接。
添加
查找必需的主数据库文件。 选择 .mdf 文件时,就会在“要附加的数据库”网格的相应字段中自动填充合适的信息。
删除
从 “要附加的数据库” 网格中删除选定文件。
<database_name>”数据库详细信息
显示要附加的文件的名称。
原始文件名
显示属于数据库的已附加文件的名称。
文件类型
指示文件类型,即 “数据” 或 “日志” 。
当前文件路径
显示所选数据库文件的路径。 可以手动编辑该路径。
消息
显示空消息或 “找不到文件” 超链接。

使用 Transact-SQL移动数据库之前
如果要移动数据库,请在将它与其现有 SQL Server 实例分离之前,使用 sys.database_files 系统目录视图查看与数据库关联的文件及其当前位置。
  • 在SQL Server Management Studio中,选择“新建查询”以打开查询编辑器。
  • 将以下 Transact-SQL 脚本复制到查询编辑器,然后选择“执行”。 此脚本显示物理数据库文件的位置。 通过分离/附加来移动数据库时,请务必考虑所有文件。
    USE [database_name] GO  SELECT type_desc, name, physical_name from sys.database_files;
分离、移动和附加之前,请务必考虑与数据库关联的所有文件。 然后,继续执行下一部分中的分离、文件复制和附加数据库步骤。
附加数据库
  • 连接到 数据库引擎。
  • 在标准栏上,选择“新建查询”。
  • 使用带 FOR ATTACH 子句的 [color=var(--theme-hyperlink)]CREATE DATABASE 语句。
    将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 本示例附加 AdventureWorks2019 数据库的所有文件,并将数据库重命名为 MyAdventureWorks。
    CREATE DATABASE MyAdventureWorks       ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'),       (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf')       FOR ATTACH;  
    你的数据库可能有其他数据文件(通常是 .mdf 或 .ndf),并且需要在 CREATE DATABASE ... FOR ATTACH 语句中包含其他文件。 此外,还必须在语句中包含 FILESTREAM 数据的任何文件组。




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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-4 22:35 , Processed in 0.084043 second(s), 21 queries .

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

© 2001-2020

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