sp_sp detach db_db分离数据库被分离到哪里去了?

SQLServer日志文件丢失,恢复并不难!,SQL教程,SQL案例,SQL实例
     本站短域名:珠江路.cn、zjlu.net
        
     
          
您的位置: &&
&& SQLServer日志文件丢失,恢复并不难!
SQLServer日志文件丢失,恢复并不难!
  本文标签:SQLServer日志文件 
  此文章主要讲述的是SQL文件在丢失的情况下的,相信如果你了SQL文件在丢失的情况下的恢复方这实际,会在以后的学习或是工作中带来很大的&&。
  一、 概述
  在中,往往是最的部分,一旦数据库毁坏或损坏,将会带来巨大的损失,所以数据库的越来越重要&&。我们在做与工作中,不可避免会出现各种各样的,本文针对数据库的SQLServer日志文件丢失时如何利用F文件恢复数据库的进行了&&。
  二、 数据库的恢复
  当数据库的主数据MDF文件完好无损时,在丢失了LDF文件的情况下,如何利用MDF文件恢复数据库?我们把SQL Server日志文件分为两类:一类是无事务的日志,另一类是含活动事务的日志,根据不同的日志,采取不同的方法来恢复数据库&&。
  1. 无活动事务的日志恢复
  无活动事务的日志丢失时,我们很容易利用MDF文件直接恢复数据库,具体方法如下:
  ①.分离被质疑的数据库,可用管理器中的"分离数据库",或者用过程sp_detach_db分离数据库;
  ②利用MDF文件附加数据库新的日志文件,可用器中的"附加数据库"的工具,或者用sp_attach_single_file_db附加数据库&&。
  如果数据库的SQLServer日志文件中含有活动事务,利用此方法就不能恢复数据库&&。
  2. 含活动事务的日志恢复
  含有活动事务的日志丢失时,利用上述方法就会出现"数据库和SQLServer日志文件不符合,不能附加数据库"&&。对于这种情况下,我们采用如下方法:
  ①新建同名数据库AAA,并设它为紧急
  停止SQL Server;
  把数据库主数据MDF文件移走;
  启SQL ,新建一个同名的数据库AAA;
  停止SQL Server服务器,把移走的MDF文件再覆盖回来;
  启动SQL Server服务器,把AAA设为紧急模式,不过默认情况下,是不能随便的,必须首先一下使其能被修改,运行以下即可:
Use&Master &Go &sp_configure&’allow&ups’,1 &reconfigure&&overre &Go&
  接着运行以下语句,把AAA数据库设为紧急模式,即把Sysdatabases表中AAA数据库的status设为’37268’,就表示把AAA数据库处于紧急模式&&。
update&sysdatabases&set&status=32768&where&hame=’AAA’&
  如果没有报告什么错误,就可以进行以下操作&&。
  ②设置SQLServer日志文件AAA为单模式,并检查数据库
  重启SQL Server服务器;
  把数据库AAA设为单用户模式
Sp_dboption&’AAA’,&’single&’,&’true’&
  运行以下语句,检查数据库AAA
DBCC&CHECKDB(’AAA’)&
  如果没有什么大的就可以把数据库的改回去&&。
  ③还原数据库的状态
  运行以下语句,就可以把数据库的状态还原:
update&sysdatabases&set&status=28&where&name=’AAA’ &sp_configure&’allow&updates’,0 &reconfigure&with&override &Go&
  如果没有什么大的问题,刷新一下数据库,数据库AAA又会出现在你面前,但目前恢复工作还没有做完,此时的数据库仍不能工作,还要进行下面的,才能真正恢复&&。
  ④利用的导出向导,把数据库AAA导入到一个新建数据库BBB中
  新建一个数据库BBB;
  右击BBB,选择IRT,打开导入向导;
  目标源选择"在SQL 之间和数据库",这样可以把表,数据和存储过程导入到BBB中
  再用此功能把BBB库替换成原来的AAA库即可&&。
  到此为止,数据库AAA就完全恢复&&。
  三、 小结
  SQLServer日志文件丢失是一件非常危险的事情,很有可能你的数据库彻底毁坏&&。SQL Server数据库的恢复都是靠日志文件来完成,所以无论如何都要保证日志文件的存在,它至关重要&&。为了使我们的数据库万无一失,最好采用多种方式相结合,所以我们要从心里重视数据库的管理与维护工作&&。
数据库开发
产品库推荐
All Rights Reserved.
珠江路在线版权所有
 |  |  | 举例说明在哪些情况下要分离和附加数据库
举例说明在哪些情况下要分离和附加数据库
08-11-08 &匿名提问
可以分离数据库的数据和事务日志文件,然后将它们重新附加到同一或其他 SQL Server 实例。如果要将数据库更改到同一计算机的不同 SQL Server 实例或要移动数据库,分离和附加数据库会很有用。 注意: 在 64 位和 32 位环境中,SQL Server 磁盘存储格式均相同。因此,可以将 32 位环境中的数据库附加到 64 位环境中,反之亦然。从运行在某个环境中的服务器实例上分离的数据库可以附加到运行在另一个环境中的服务器实例。
有关分离或附加数据库时设置的文件权限的信息,请参阅。
分离数据库
分离数据库是指将数据库从 SQL Server 实例中删除,但使数据库在其数据文件和事务日志文件中保持不变。之后,就可以使用这些文件将数据库附加到任何 SQL Server 实例,包括分离该数据库的服务器。 如果存在下列任何情况,则不能分离数据库:
已复制并发布数据库。如果进行复制,则数据库必须是未发布的。必须通过运行
禁用发布后,才能分离数据库。 注意: 如果无法使用 sp_replicationdboption,可以通过运行
删除复制。
数据库中存在数据库快照。 必须首先删除所有数据库快照,然后才能分离数据库。有关详细信息,请参阅。 注意: 不能分离或附加数据库快照。
该数据库正在某个数据库镜像会话中进行镜像。 除非终止该会话,否则无法分离该数据库。有关详细信息,请参阅。
数据库处于可疑状态。在 SQL Server 2005 和更高版本中,无法分离可疑数据库;必须将数据库设为紧急模式,才能对其进行分离。有关如何将数据库置入紧急模式的详细信息,请参阅 。
该数据库是系统数据库。
分离数据库
备份、还原及分离 分离只读数据库将会丢失有关差异备份的差异基准的信息。有关详细信息,请参阅。
响应分离错误 分离数据库时生成的错误会阻止完全关闭数据库和重新生成事务日志。收到错误消息后,请执行下列更正操作:
重新附加与数据库关联的所有文件,而不仅仅是主文件。
解决导致生成错误消息的问题。
再次分离数据库。
附加数据库
您 可以附加复制的或分离的 SQL Server 数据库。将包含全文目录文件的 SQL Server 2005 数据库附加到 SQL Server 2008 服务器实例上时,会将目录文件从以前的位置与其他数据库文件一起附加,与在 SQL Server 2005 中一样。有关详细信息,请参阅。 安全说明: 建议您不要附加或还原未知或不可信源中的数据库。此类数据库可能包含恶意代码,这些代码可能会执行非预期的 Transact-SQL 代码,或者通过修改架构或物理数据库结构导致错误。在使用未知或不可信源中的数据库之前,请在非生产服务器上的数据库中运行 ,同时检查数据库中的代码(例如,存储过程或其他用户定义代码)。
附加时,数据库会启动。通常,附加数据库时会将数据库重置为它分离或复制时的状态。但是,在 SQL Server 2005 和更高版本中,附加和分离操作都会禁用数据库的跨数据库所有权链接。有关如何启用链接的信息,请参阅 。此外,附加数据库时,TRUSTWORTHY 均设置为 OFF。有关如何将 TRUSTWORTHY 设置为 ON 的信息,请参阅 。 附加数据库时,所有数据文件(MDF 文件和 NDF 文件)都必须可用。如果任何数据文件的路径不同于首次创建数据库或上次附加数据库时的路径,则必须指定文件的当前路径。 注意: 如果附加的主数据文件是只读的,则数据库引擎假定数据库也是只读的。
当加密的数据库首次附加到 SQL Server 实例时,数据库所有者必须通过执行下面的语句打开数据库的主密钥:OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'。建议您通过执行下面的语句对主密钥启用自动解密:ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY。有关详细信息,请参阅
和 。 附加日志文件的要求在某些方面取决于数据库是读写的还是只读的,如下所示:
对于读写数据库,通常可以附加新位置中的日志文件。不过,在某些情况下,重新附加数据库需要使用其现有的日志文件。因此,请务必保留所有分离的日志文件,直到在不需要这些日志文件的情况下成功附加了数据库。 如果读写数据库具有单个日志文件,并且您没有为该日志文件指定新位置,附加操作将在旧位置中查找该文件。如果找到了旧日志文件,则无论数据库上次是否完全 关闭,都将使用该文件。但是,如果未找到旧文件日志,数据库上次是完全关闭且现在没有活动日志链,则附加操作将尝试为数据库创建新的日志文件。有关详细信 息,请参阅和。
如果附加的主数据文件是只读的,则数据库引擎假定数据库也是只读的。对于只读数据库,日志文件在数据库主文件中指定的位置上必须可用。因为 SQL Server 无法更新主文件中存储的日志位置,所以无法创建新的日志文件。 重要提示: 分离再重新附加只读数据库后,会丢失差异基准信息。这会导致 master 数据库与只读数据库不同步。之后所做的差异备份可能导致意外结果。因此,如果对只读数据库使用差异备份,在重新附加数据库后,应通过进行完整备份来建立当前差异基准。
请登录后再发表评论!
简单的说就是你暂时要现在实例上的数据库文件移走(分离),然后附加到实例上(附加),但可能影响业务运行的情况下,建议不要分离,可以用备份后再还原嘛。 但是分离和附加有个优势,那就是远比备份和还原速度快,几秒就OK
请登录后再发表评论!您所在位置: &
 &  & 
第2章 SQL_Server数据库的管理与使用.ppt43页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:100 &&
第2章 SQL_Server数据库的管理与使用.ppt
你可能关注的文档:
??????????
??????????
使用T-SQL语言删除数据库 命令语法格式: DROP DATABASE
database_name [ ,...n ]
例2.10 删除Test_db1单个数据库。
DROP DATABASE Test_db1
例2.11同时删除Test_db2和Test_db3多个数据库。
DROP DATABASE Test_db2,Test_db3
数据库的分离和附加 2.5.1 数据库的分离 2.5.2 数据库的附加
* 2.5.1 数据库的分离 数据库的分离就是将用户的数据库从SQL Server中删除,即从SQL Server服务器中分离出来,但是保持组成该数据的数据文件和事务日志文件中的数据完好无损,即数据库文件仍保留在磁盘上。 使用对象资源管理器分离数据库
* 2.5.1 数据库的分离 使用系统存储过程sp_detach_db分离数据库 语法格式: sp_detach_db [ @dbname
] 'database_name'
例2.12将student_db 数据库从SQL Server 2008服务器中分离。 Use student_db
--打开数据库student_db Go sp_detach_db
'student_db' Go * GO 不是 Transact-SQL 语句;它是可由 sqlcmd 和 osql 实用工具以及 SQL Server Management Studio 代码编辑器识别的命令。 表示当前批语句由上一 GO 命令后输入的所有语句组成 2.5.2 数据库的附加 附加数据库是分离数据库的逆操作,通过附加数据库,可以将没有加入SQL Server服务器的数据库文件添加到服务器中。 使用对象资源管理器附加数据库 注意: (1)在附加数据库时,当确定主数据文件的名称和物理位置后,与它相配套的事务日志文件(.LDF)也一并加入。 (2)将 SQL Server 2000 或SQL Server 2005 数据库附加到 SQL Server 2008 后,该数据库立即变为可用,然后自动升级。
数据库的扩大和收缩 2.6.1 数据库的扩大 2.6.2 数据库的收缩
数据库的扩大和收缩 由于SQL Server 2008对数据库空间分配采取“先分配、后使用”的机制,所以在SQL Server 2008系统中,如果数据库的数据量不断膨胀,可以根据需要扩
正在加载中,请稍后...CopyRight & , , All Rights Reserved. 版权所有
网页代码()主要提供网页特效代码、网站设计素材、网页制作教程等资源。包括网页平面设计布局、动态网站开发、字体下载、flash素材、网页模板、背景图标按钮素材、中文英文设计字体下载及在线手册和站长工具查询等资源。

参考资料

 

随机推荐