sql-server – 如何在SQL Server中附加数据库?
副标题[/!--empirenews.page--]
与在SQL Server中附加数据库相关的一些常见问题:
解决方法什么是分离或附加以及它们如何工作?我们将从分离开始.在SQL Server中分离数据库时,您将使数据库脱机并将其从要从中分离的SQL Server实例中删除.数据库数据和日志文件保持一致并保持一致状态,因此您可以稍后将数据库附加到另一个SQL Server实例. Attach将数据和日志文件从已正确分离的数据库(或从完全关闭的SQL Server实例复制的数据库)连接到SQL Server实例,并使数据库联机. 如何分离数据库? 您可以在T-SQL或SQL Server Management Studio GUI中执行此操作. 在GUI中,右键单击要分离的数据库,选择“所有任务”,然后单击“分离”.从那里你将获得分离对话框.您可以选择首先删除连接以强制断开所有活动连接以及它们在执行过程中的回滚工作.您还可以选择在分离之前更新统计信息. 在T-SQL中: -- You don't want to be in the database you are trying to detach USE Master GO -- Optional step to drop all active connections and roll back their work ALTER DATABASE DatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO -- Perform the detach EXEC sp_detach_db 'DatabaseName' GO 对于系统存储过程sp_detach_db,您可以选择传递两个参数: > @skipchecks – 如果为’True’,则可接受的输入为’True’或’False’,SQL Server将在分离之前更新统计信息.如果’错’,则不会.如果您未在此处指定任何内容,则将在SQL Server 2005或更高版本中更新统计信息. > @keepfulltextindexfile – 此处的默认值为“True” – 如果设置为true,则在分离期间不会删除全文索引元数据. 要了解更多关于分离的信息以及我在下面重点介绍的风险的更多细节,sp_detach_db的Books Online article是一个很好的起点. 如何附加数据库? 您也可以在T-SQL或SQL Server Management Studio GUI中执行此操作. (注意:如果您拥有未正确分离的数据库中的数据和日志文件,则您的附加可能无法正常工作.当发生分离时,数据库将脱机,并且日志和数据文件将进入一致状态.当服务被彻底关闭时发生.) 在GUI中,右键单击实例的顶级Databases文件夹,然后选择Attach.在下一个对话框中,您将选择要附加的数据库的主数据文件(.MDF),并确保选择了其他文件并指定了适当的位置,然后单击“确定”,附加数据库. 在T-SQL中,在SQL Server 2005中执行此操作并转发的最佳方法是通过CREATE DATABASE命令.这是SQL Server 2012之外支持的方法.如果要查看如何使用sp_attach_db,可以在[sp_attach_db] [3]或[sp_attach_single_file_db] [4]的联机丛书中看到这些内容. 当您的日志文件和数据文件可用并且它们是一致的时,这就是T-SQL方法: – 使用Create Database和FOR ATTACH子句进行附加 CREATE DATABASE DatabaseName ON (FILENAME = 'FilePathFileName.mdf'),-- Main Data File .mdf (FILENAME = 'FilePathLogFileName.ldf'),-- Log file .ldf (FILENAME = 'FilePathSecondaryDataFile.ndf) -- Optional - any secondary data files FOR ATTACH GO 您还可以在线查看有关Create Database声明的更多信息. 如何在SQL Server Express中分离/附加? 它实际上是一样的.如果您使用的是SQL Server Management Studio Express,则可以使用上述GUI中的分离/附加对话框或上述SSMS Express中的T-SQL步骤.与Express没有区别. 如果您没有SSMS Express,可以下载它(Here是SQL Server 2012 Express版本). 您可以进入SQLCMD会话并使用上述相同的T-SQL结构. 我应该何时考虑进行分离或附加? 首先,关于什么分离和附加不应该用于:备份和恢复分离和附加不是备份数据库以进行常规恢复的方法.这种方式没有事务日志备份,它使您的数据库处于可以意外删除数据库文件的状态,并且根本不是一个好方法. 这就是说,分离和附加对于一些用例是好的(不是详尽的,随意编辑以添加或创建更多的新答案): >有时用于迁移(虽然我更喜欢备份/恢复,如我在答案here中所讨论的那样) 风险和警告 同样,在线图书是一个很好的资源here,但我会在分离或附加数据库时考虑一些特定的考虑事项 – 分离 >您正在使数据库脱机.它将不再可访问.这应该是显而易见的,但值得一提.这就是为什么它不是一个很好的备份选项. (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |