sql2008日志删除后怎么恢复数据库
发布网友
发布时间:2022-04-22 00:14
我来回答
共1个回答
热心网友
时间:2022-04-11 18:11
SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:
1. 至少有一个误删除之前的数据库完全备份。
2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。
针对这两个前提条件,会有三种情况:
情况一、如果这两个前提条件都存在,通过SQL语句只需三步就能恢复(参考文章),无需借助第三方工具。
a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY
b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY, REPLACE
c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM DISK = N'第一步的日志备份文件名' WITH STOPAT = N'误删除之前的时间点' , RECOVERY
情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。
情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(Full)”。
我现在面临的是第二种情况,需要找第三方工具。
开始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后来找的是SQL Log Rescue,也不支持SQL Server 2008。
接着找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要购买,Demo版并没有数据恢复功能。
最终在officerecovery.com上找到Recovery for SQL Server,虽然也是商业软件,需要购买,但Demo版可以恢复数据,只要数据库文件不超过24Gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。
下面分享一下用Recovery for SQL Server进行恢复的操作步骤:
1. 运行Recovery for SQL Server
2. 点击菜单中的 File > Recover,选择要恢复的数据库的数据文件(.mdf)
3. Next > Next,进入 Recovery Configuration 界面,选择Custom(选择了Custom才可以选择从日志中恢复误删除的数据)。
4. Next 进入 Recovery options 窗口,选中 Search for deleted records,并选择要恢复的数据库的日志文件路径(log file path)。
5. Next 并选择目标文件夹(Destination folder),用于存放恢复过程中生成的SQL语句与bat文件。
6. 点击Start,开始恢复操作(在上一步选择的目标文件夹中生成相应的SQL文件与Bat文件),然后,出现 SQL Server Database Creation Utility 窗口。
7. Next,选择被恢复数据存放的目标数据库。
8. Next, 选择 Import availiable data from both database and log files
9. Next, Next, 然后就完成数据的恢复!
sql2008日志删除后怎么恢复数据库
a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY, REPLACE c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM ...
sqlserver2008日志清除后,数据库反映非常慢
1、先分离数据库,到数据库存放目录更改一下日志文件名称。2、进行附加,会报错。提示找不到日志文件,没有关系,在下方的表格中删除这个日志文件,点击确定,附加成功!3、sql server 2008 r2 会自动为找不到日志文件的数据库添加一个日志文件,最后在数据库属性页中设置一下数据库的最大限制就可以了。
误删SQL日志文件怎么办
A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。B.停掉数据库服务器。C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。D.启动数据库服务器。此时会看到数据库test的状态...
sql 2008 怎么还原日志
1.连接到相应的 Microsoft SQL Server 数据库引擎实例之后,在对象资源管理器中,单击服务器名称以展开服务器树。2.展开“数据库”。根据具体的数据库,选择一个用户数据库,或展开“系统数据库”并选择一个系统数据库。3.右键单击数据库,指向“任务”,再单击“还原”。4.根据要还原数据备份还是仅还...
如何用SQLserver2008还原2000版备份的数据文件
在完整恢复模式或大容量日志恢复模式下,必须先备份活动事务日志(称为日志尾部),然后才能在SQLServerManagementStudio中还原数据库。有关详细信息,请参阅如何备份事务日志(SQLServerManagementStudio)。若要还原已加密的数据库,您必须有权访问用于加密数据库的证书或非对称密钥。如果没有证书或非对称密钥,数据...
MSSQL无数据库日志文件恢复数据库方法两则
方法一1.新建一个同名的数据库2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,...
如何还原sql数据库
1、要进行还原数据库操作我们先需要有一个数据库,这里直接打开SQL Server Management Studio,然后打开实例,在左侧按照下图中红色箭头指示右键点击数据库,然后点击 新建数据库,如下图:2、在新建数据库的对话框中 修改数据库名称,然后其他都保持默认即可,然后点击确定即可,如下图:3、然后就可以在SQL...
丢失归档日志文件后数据库应当如何恢复[2]
第 步 设置未文档化的实例参数并打开数据库 在初始化参数文件中首先需要将job_queue_processes设置为 然后设置_allow_resetlogs_corruption=TRUE 更改该参数后 切换到保存新控制文件的目录 第一步创建的位置 然后以 SYSDBA连接并运行新的控制文件创建脚本 此时数据库可以打开了 SQL> SELECT COUNT(*) FROM...
日志文件丢失或出错的情况下如何恢复SQL数据库
1. 新建数据库(同名)2. 停掉数据库 3. 删除新建数据库的日志文件,用要恢复的覆盖mdf文件 4. 启动数据库服务器 5. 设置数据库允许直接操作系统表 6. 设置数据库为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('dbDataHome')7. 重建数据库日志文件 dbcc rebuild_log(...
怎么用SQL语句备份和恢复数据库?
1、使用SQL最简单备份,还原数据库。2、为了方便以后的使用,开始对语句进行简单的封装->存储过程。进行备份。3、还原数据库,数据库还原后的保存位置(目录)(使用系统默认保存位置。为数据库重命名(使用数据库默认名称)不包含扩展名,如果目录已存在该名称的数据库,将会被覆盖 。