`
buliedian
  • 浏览: 1237676 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

sql恢复,sql数据库恢复

阅读更多

数据库恢复/数据库修复是比较常见的一种数据恢复业务。在我们众多的案例中(尤其是一些Raid数据恢复),恢复后的数据里往往包含一些损坏的数据库文件,我们也从中研究出很多数据库恢复的技术经验。我们可以提供以下类型数据库的专业恢复和修复服务:
Access (*.mdb) 数据库恢复/sql数据库恢复
MSSql (*.mdf) 数据库恢复/数据库修复
Paradox(*.DB) 数据库恢复/sql数据库修复
Oracle(*.DBF) 数据库恢复/数据库修复
dBase(*.DBF) 数据库恢复/sql数据库恢复
FoxPro(*.DBF) 数据库恢复/数据库修复
MS Works(*.wdb) 数据库恢复/sql数据库修复
其他如IBM DB2、SyBase、MySQL、Informix 等数据库的恢复/sql数据库修复


小知识: SQL恢复技术SQL数据库恢复技术
SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。下面将主要讨论一下后者的备份与恢复。本文假定您能熟练使用SQL Server Enterprise Manager(SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器)
1、正常的备份、SQL数据库恢复方式
正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。
卸下数据库的命令:Sp_detach_db 数据库名
连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db
s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′ [,...16]
sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name′
使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。
例子:
假设数据库为test,其数据文件为test_data.mdf,日志文件为test_log.ldf。下面我们讨论一下如何备份、恢复该数据库。
卸下数据库:sp_detach_db 'test'
连接数据库:sp_attach_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'
sp_attach_single_file_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf'
2、只有mdf文件的恢复技术
由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。(此文章由飞客数据恢复中心搜集http://www.cellma.com.cn)
如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,但是会出现类似下面的提示信息
设备激活错误。物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有误。
已创建名为 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。
但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。你也许会得到类似下面的错误信息
服务器: 消息 1813,级别 16,状态 2,行 1
未能打开新数据库 'test'。CREATE DATABASE 将终止。
设备激活错误。物理文件名 'd:\test_log.LDF' 可能有误。
怎么办呢?别着急,下面我们举例说明恢复办法。
A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。
B.停掉数据库服务器。
C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。
D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。
E.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
F.设置test为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表
G.下面执行真正的恢复操作,重建数据库日志文件
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
执行过程中,如果遇到下列提示信息:
服务器: 消息 5030,级别 16,状态 1,行 1
未能排它地锁定数据库以执行该操作。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。
正确执行完成的提示应该类似于:(此文章由飞客数据恢复中心搜集http://www.cellma.com.cn)
警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。
H.验证数据库一致性(可省略)
dbcc checkdb('test')
一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
I.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'
如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成
sp_configure 'allow updates',0
go
reconfigure with override
go

版权声明

请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。

分享到:
评论

相关推荐

    SQL数据库恢复程序 SQL数据库删除恢复

    极佳SQL数据库丢失恢复工具,极佳SQL数据库误删除恢复工具, 支持 SQL7.0 2000 2005 2008 2008R2 2012 版本数据库丢失 覆盖 误还原 所在分区误格式化 数据库文件被删除 分区改变 磁盘分区损坏 等情况 下的SQL数据库 ...

    SQL数据库批量备份、恢复

    - **完整备份**:备份所有数据和日志,这是最基本的备份类型,提供了完整的数据库恢复。 - **差异备份**:仅备份自上次完整备份以来发生更改的数据,可以大大减少备份时间。 - **事务日志备份**:记录数据库的...

    SQL数据库碎片恢复

    本文将详细讲解SQL数据库碎片恢复的相关知识点,并围绕提供的文件信息展开讨论。 首先,SQL数据库碎片恢复是指在数据库文件损坏或数据丢失后,通过特定的工具和技术来恢复数据的过程。这通常涉及到对硬盘上的物理...

    基于SQL Server的数据库恢复技术.pdf

    本文将从SQL Server的数据库恢复技术入手,详细解释数据库恢复的重要性、数据库恢复技术的分类、SQL Server数据库恢复技术的实现方法、数据库恢复的常见问题和解决方法等方面,对于SQL Server数据库管理员和开发人员...

    SQL数据库备份恢复助手

    2. **数据库恢复**: - **简单恢复模型**:不保留事务日志的旧版本,仅用于数据丢失后进行完全恢复。 - **完整恢复模型**:保留事务日志,允许恢复到特定时间点,适合需要高数据完整性的环境。 - **大容量日志...

    SQLSERVER无数据库日志文件恢复数据库方法

    ### SQLSERVER无数据库日志文件恢复数据库方法 在SQL Server环境中,当遇到丢失数据库日志文件(.ldf)的情况时,数据恢复成为一个极其敏感且技术性较强的问题。本篇文章将详细阐述两种实用的方法来应对这种情况,...

    易语言源码sql数据库备份恢复.rar

    《易语言源码SQL数据库备份恢复详解》 在IT领域,数据备份与恢复是至关重要的环节,它确保了系统在遭遇故障或意外情况时能够快速恢复到正常状态,避免重要数据丢失。本篇将深入探讨易语言源码实现的SQL数据库备份与...

    sql数据库的备份与恢复

    恢复则是在这些情况发生后,将数据库恢复到先前的正常状态。 在Delphi中处理SQL数据库备份,通常涉及以下步骤: 1. 连接数据库:使用Delphi的ADO (ActiveX Data Objects) 或 BDE (Borland Database Engine) 组件,...

    Intouch的SQL数据库配置

    Intouch SQL数据库配置 Intouch SQL数据库配置是指在Intouch系统中对SQL数据库的配置设置,以便实现数据库连接和数据交互。下面是关于Intouch SQL数据库配置的详细知识点: 一、Microsoft SQL Server Management ...

    如何强制删除或恢复SQLServer正在使用的数据库

    通常情况睛,SQLServer... 您可能感兴趣的文章:sqlserver只有MDF文件恢复数据库的方法sqlserver 数据库日志备份和恢复步骤asp 在线备份与恢复sqlserver数据库的代码SQLserver 数据库危险存储过程删除与恢复方法SQL Serv

    SQL Server数据库备份与恢复(C#代码示例)

    以下是在C#中恢复SQL Server数据库的一般步骤: 1. 建立连接:如同备份过程,使用SqlConnection连接到SQL Server。 2. 构建恢复命令:根据恢复类型(完整、差异或日志),构建相应的RESTORE DATABASE或RESTORE LOG...

    SQL SERVER 2005 如何恢复mdf文件的数据库

    SQL Server 2005 如何恢复 mdf 文件的数据库 SQL Server 2005 是微软公司推出的关系数据库管理系统,它提供了强大的数据存储和管理功能。然而,在实际应用中,数据库管理员可能会遇到各种意外情况,如误操作、数据...

    SQL SERVER数据库恢复工具

    SQL数据库因为不同的物理或逻辑的原因被损坏,并可能导致重要数据丢失。...然而,在严重受损的SQL文件的情况下,对于SQL数据库软件是一个恢复已删除或损坏的工具,使恢复和修复SQL数据库的过程更准确和精确。

    SQL数据库的备份和恢复

    3. 恢复SQL语句的使用: 恢复数据库通常涉及使用`RESTORE DATABASE`命令,它可以包括各种选项,如`WITH NORECOVERY`或`WITH RECOVERY`。在强制恢复时,可能需要关闭其他用户进程,以避免数据一致性问题。在复杂的...

    SQL数据库备份恢复助手v1.0b 绿色版

    数据库恢复则是将备份的数据重新加载到SQL服务器,以便在数据丢失或损坏时恢复正常运行。恢复过程可以是完全恢复,即恢复到最近的完整备份状态,也可以是增量或差异恢复,后者只恢复自上次备份以来更改的数据。"SQL...

    恢复Sybase SQL Anywhere数据库的好方法

    5. **执行恢复操作**:通过`rtsqlw.exe`运行SQL语句,指定用户ID为`dba`,密码为`sql`,执行`db.sql`中包含的恢复命令,将日志文件转换的SQL操作应用到新数据库上。 请注意,`.log`文件在整个恢复过程中起着至关...

    mysql数据库恢复 binlog2sql数据库恢复

    总的来说,MySQL的binlog2sql工具提供了强大的数据库恢复能力,尤其对于那些没有定期备份或者需要精确恢复到某个时间点的情况。然而,这也需要谨慎操作,因为错误的恢复过程可能会导致更严重的数据问题。因此,在...

    SQL数据库自动备份恢复助手 v2.6

    可自由组合的无限复合式备份任务,支持备份文件ZIP压缩后通过Lan/Ftp/Email传输存储,Email日志信息发送,自由删除指定周期与存储位置的备份文件,还具有安全可靠的SQL数据库恢复功能。 1)完全免费、纯“绿色化”、...

    SQL数据库工具

    标题中的“SQL数据库工具”指的是专门用于管理和操作SQL(Structured Query Language)数据库的软件或应用程序。这类工具通常提供了一系列功能,以帮助数据库管理员(DBA)和开发人员更有效地执行数据库管理任务。...

Global site tag (gtag.js) - Google Analytics