SQL 2005 日志损坏的恢复方法

SQL 在突然停电或者非正常关机下,可能会出现日期文件错误,导致数据库不正常。恢复数据库方法如下

1.数据库服务停掉 将数据库文件备份 例如数据库名为 DTMS 则将 DTMS.mdf 备份出来。

2.开启数据库服务,创建个空的名称为 DTMS的空的同名数据库。

3.关闭数据库服务,将备份的原DMTS.mdf 覆盖到新创建的数据库目录下。

4.在master 下执行下列语句

--修改数据库为紧急状态
alter database DTMS set EMERGENCY

--将数据库设置为单用户
ALTER DATABASE DTMS SET  SINGLE_USER

--修复日志文件
DBCC CHECKDB (‘DTMS‘,REPAIR_ALLOW_DATA_LOSS)
DBCC CHECKDB (‘DTMS‘,REPAIR_REBUILD)

--将数据库设置为多用户
ALTER DATABASE DTMS SET MULTI_USER
--将数据库置为在线
alter database DTMS set ONLINE

时间: 2024-10-19 18:39:01

SQL 2005 日志损坏的恢复方法的相关文章

SQL Server日志文件庞大收缩方法(实测好用)

原文:SQL Server日志文件庞大收缩方法(实测好用) 这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果 --截断 BACKUP LOG CloudMonitor TO DISK='NUL' --收缩 DBCC SHRINKFILE('CloudMonitor_log') 以后就可以采用常规的定期备份日志(比如一小时一次)来防止日志文件无限增长. SQL Server日志文件庞大收缩并非易事, 文章中提到: 由于首日志.尾日志和空间重复利用的原因,当备份日志后产生了日志截断

[网络课摘抄]8.2模拟状态为inactive的日志损坏的恢复实验(完全恢复)

1查看当前日志状态 从这里可以看到我们现在有三组日志,每组日志中只有1个成员.为了演示这个实验,我们为每个组增加1个成员. 2为每组增加组成员 添加后我们验证一下目前各日志成员的状态: 从上面的视图中可以看到我们的日志组成员已经加到了我们的日志组中,增加到的日志成员为INVALID的状态. 3切换3组日志归档 查看此时日志状态: 可以发现此时日志组1和日志组2都是INACTIVE状态. 4删除INACTIVE状态日志 根据前面的确认,我们现在的日志组1和日志组2都是INACTIVE状态,现在我们

10g Clusterware Votedisk 损坏的恢复方法

votedisk无论是对于RAC(10g Clusterware.11g GI)而言,是非常重要的,我们称它为仲裁盘,当RAC集群中的某个节点发生故障而脱网掉线时,就由它来判断是否将其踢出集群,以保证集群正常运行,当votedisk损坏了,也就会导致集群服务无法启动,集群资源都无法加载,最后导致罢工.那么我们平时就要注意对votedisk的备份,在11g中,由于votedisk和ocr默认就会放进ASM磁盘组,因此可以不用特别关注,但对于10g的Cluster来说,由于不能放到ASM磁盘组,只能

SQL 2005 Errolog过大处理方法

1.    背景 1.1          在SQL数据库系列产品中,运行一段时间后的数据库总会生成不小的错误日志,经常会占用不少空间: 2.    原因 2.1          SQL数据库默认情况下,错误日志位于 Program Files/Microsoft SQL Server/MSSQL.n/MSSQL/LOG/ERRORLOG 和ERRORLOG.n 文件中.默认保留有7个 SQL Server 错误日志文件,分别是:ErrorLog,Errorlog.1-Errorlog.6 ,

SD卡/U盘分区坏了怎么办?告诉大家一个简单的恢复方法

前言: 以前工作的过程中经常会借U盘给开发同学使用,结果等到还回来后,发现U盘的可用的空间变得很小了,可是插到电脑上发现明明磁盘里也没文件呀,格式化后发现还是不管用,百思不得其解~~ 上网研究了老半天才解决了,现在就将之前U盘损坏的恢复方法总结如下,供参考,哈哈哈~~ [以下以SD卡恢复为例,U盘恢复方法类似] 方法/步骤: 1.卸载SD卡分区 在使用fdisk命令前,请使用如下命令卸载boot分区和rootfs分区: Host# umount /media/boot Host# umount

SQL Server 2005数据库日志丢失的恢复

网上关于SQL Server 2005数据库日志丢失的处理方法基本上都是修改数据库系统表,但是我测试N多遍都不成功,最后用英文关键字Google了下,发现一个可行方法,折磨了我两天的问题得以解决... 背景说明:名为testdb的数据库丢失了日志文件,仅有数据文件testdb.mdf 请先不要急于开始操作,如果你真的很急,请直接看我的成功试验方法(*下面的内容) 1.新建数据库testdb 2.停掉SQL Server服务器 3.删除刚刚创建好的testdb的日志文件testdb_log.ldf

记录SQL Server2008日志文件损坏的恢复过程

记录SQL Server2008日志文件损坏的恢复过程: 环境:系统Windows Server2003 数据库SQL Server2008 故障原因:通过mstsc链接同一服务器时,用户界面不一致.决定重启服务器,未正确关闭应用程序的情况下(程序在访问数据库),导致数据库日志文件损坏,自然也就无法访问mdf文件!(都是微软自家的产品,重启服务器为什么不能检查数据库的状态,将数据库设置在安全状态后在重启呢??所以,要养成良好的习惯.关闭现有数据库链接,再重启服务器) 故障表现:无法访问数据文件,

ORACLE联机日志文件丢失或损坏的处理方法(转)

经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA-00313错误,如:ORA-00313: open failed for members of log group 4 of thread 1ORA-00312: online log 3 thread 1: '/opt/oracle/db04/oradata/ORCL/redo03.log'从这

Oracle数据库在线重做日志被删除的几种恢复方法

Oracle数据库的在线重做日志中包含了数据库中所有数据的操作记录,我们可以利用重做日志做很多的操作,例如日志挖掘. 有时候,因为种种原因,我们的在线日志被人误删除或者意外损坏掉,我们应该如何进行恢复呢,其实很简单,看下面内容: 我们通过删除在线日志模拟日志被误删除的情况: [[email protected] orcl]$ rm redo* [[email protected] orcl]$ ls -l redo* ls: 无法访问redo*: 没有那个文件或目录 [[email protec