Sqlserver数据库恢复案例说明

  • 1 背景
  • 2 原因分析
  • 3 数据库恢复
    • 3.1 新建伪数据库 zxdb_gz
    • 3.2 脱机数据库
    • 3.3 将真实的数据库文件覆盖这个数据库的文件,然后联机数据库
    • 3.4 停掉sqlserver服务
    • 3.5 启动SQLSERVER服务
    • 3.6 修改数据库为紧急模式
    • 3.7 使数据库变为单用户模式
    • 3.8 修复数据库日志重新生成
    • 3.9 使数据库变回为多用户模式

1 背景

公司SQLserver2005数据库是在放在windows2003上面的,当时的sqlserver是给报表系统使用的.数据库上面差不多有2T的数据.
出问题那段时间,老是有短信告警提示从ORACLE数据库同步有异常(从平台同步基础数据过来加工),每小时的任务调度有一些存储过程莫名的错误,还超时调度不完,导致了很多任务都没能如期的完成,生成的统计数据也完成不了,赶紧用3板斧
(1) 检查锁表,查询耗时SQL
(2) dbcc checktable
(3) dbcc checkdb
以前这个经验之前用的比较灵验了,现在不灵验了, 纳尼,一个简单的数据同步插入语句就卡死了,kill掉后还是不行 再次同步数据的时候一样不行,想到的办法只能重启服务器了,这个事情白天不敢干的,只有等到晚上了.

检查sqlserver错误日志发现问题(大致意思是磁盘的某个位置出现异常导致写入失败),后来检查服务器上的事件查看器,磁盘错误,通知工程维护的同事去机房发现是富士通的一块磁阵坏了

本以为等他们换了磁阵(当时要把所有的MDF,LDF文件拷贝到新的地方,以防万一),重启服务器就万事大吉了,结果重启之后悲剧发生了,有一个数据库出现(置疑,恢复中),进度一直卡在59%那里过不去,这个数据库启动不起来,也就导致了报表应用无法使用,公司所有的日常工作都要分析数据也无法进行了.问题越来越严重了,之前是报表系统可以使用,只能不能查最新的数据而已,现在是连系统都不能用了

2 原因分析

前由于磁阵的问题导致写入失败,数据库LDF文件和MDF记录的数据存在不同步的情况,数据库恢复的时候导致无法正常通过,决定将LDF日志文件删除,弃用这部分数据(基础数据是从oracle平台同步过来的,所以不担心数据丢失的情况)

3 数据库恢复

3.1 新建伪数据库 zxdb_gz

所有的mdf ndf ldf文件名称必须一样

3.2 脱机数据库

ALTER DATABASE zxdb_gz SET OFFLINE;GO

3.3 将真实的数据库文件覆盖这个数据库的文件,然后联机数据库

ALTER DATABASE zxdb_gz SET ONLINE;GO

消息
Recovery of database ‘zxdb_gz’ (10) is 59% complete (approximately 198 seconds remain). Phase 3 of 3. This is an informational message only. No user action is required.

此时能将zxdb_gz数据库真实的关联上sqlserver,虽然还是卡在59%,无法执行过去.

3.4 停掉sqlserver服务

删除日志文件zxdb_gz_log.ldf

3.5 启动SQLSERVER服务


启动过后,系统会报错

FileMgr::StartLogFiles: Operating system error 2(系统找不到指定的文件。) occurred while creating or opening file ‘F:\zxdb_gz\sqlserverdata\zxdb_gz_log.ldf’. Diagnose and correct the operating system error, and retry the operation.

3.6 修改数据库为紧急模式

ALTER DATABASE zxdb_gz SET EMERGENCY;

3.7 使数据库变为单用户模式

ALTER DATABASE zxdb_gz SET SINGLE_USER;

3.8 修复数据库日志重新生成

 这个步骤会重新生成日志文件(系统会自动生成 zxdb_gz_log.ldf文件)
DBCC CheckDB (zxdb_gz, REPAIR_ALLOW_DATA_LOSS);

SELECT a.percent_complete,a.estimated_completion_time,a.command ,a.total_elapsed_time,row_count,dc.*,a.*
FROM sys.dm_exec_requests a outer apply master.sys.dm_exec_sql_text(a.sql_handle) dc
WHERE session_id = 54;  --查看具体的进程进度

3.9 使数据库变回为多用户模式

修改为多用户模式

ALTER DATABASE zxdb_gz SET MULTI_USER ;

SqlServer2005数据库紧急恢复案例相关推荐

  1. oracle odu,【学习笔记】Oracle恢复工具ODU使用笔记 紧急恢复数据库的详细步骤

    天萃荷净 Oracle研究中心学习笔记:分享一篇关于Oracle数据库紧急恢复工具ODU的使用案例,在紧急恢复下对Oracle数据库进行数据抽取的详细过程. 本站文章除注明转载外,均为本站原创: 转载 ...

  2. 备份数据库的expdp语句_Oracle数据库备份恢复Data Pump Expdp/Impdp参数详解与案例介绍...

    oracle数据库备份恢复Data Pump Expdp/Impdp参数详解与案例介绍 目 录 1 Oracle数据泵的介绍 3 2 Oracle expdp/impdp参数使用介绍 3 2.1 Or ...

  3. oracle强制拉库跳过recovery,学习笔记:Oracle坏块 数据库recover恢复时遇到坏块的解决思路案例...

    天萃荷净 recover遇到坏块处理本质探讨,记录一次在Oracle数据库recover恢复过程中,遇到数据库坏块无法恢复的解决思路案例 如果在还原出来的数据文件中有坏块,而归档日志和联机日志是正常的 ...

  4. DB2数据库指定时间点恢复案例

    公司一生产环境AIX主机上的DB2数据库,由于开发人员的误操作,造成一个重要表的被删除,需要进行恢复.为了安全,不能在生产环境的数据库上进行操作,需要放到测试环境进行恢复. 问了一下开发人员,表被删除 ...

  5. oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...

    天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...

  6. 2.5.1 MySQL数据库备份恢复基础讲解

    MySQL数据库备份恢复基础 MySQL常见的故障类型 对于用户来说,数据库中保存的数据通常至关重要,所以要采取各种手段来防止各种可能的数据损失和数据故障. DBA主要任务就是维持数据库的高可靠性运行 ...

  7. 刘子佼 mysql 下载_MySQL数据管理之备份恢复案例解析 23讲 Mysql备份恢复实战 视频教程...

    课程名称:MySQL数据管理之备份恢复案例解析 23讲 Mysql备份恢复实战课程简介: 课程独家解析MySQL 5.6最新特性,课程讲师刘子佼讲课风格幽默,善于与人沟通,善于组建和协调团队攻克技术难 ...

  8. 用Shell脚本在推出的RAC节点上批量部署32个Oracle11gR2 RAC备份恢复案例场景的方法PART2...

    8.11 9d_当前控制文件损坏_只读user表空间完全恢复_用控制文件脚本_不需备份 在PXE推送端主机上运行: [root@server1 ~]# bcl --RACGRID11g13 9d 场景 ...

  9. oracle 韩思捷_Oracle数据库技术服务案例精选

    目 录 案例1:某油田 1 第1章 数据迁移技术支持服务 2 1.1 项目背景 2 1.2 现有迁移方案 3 1.3 数据迁移问题解决 5 1.4 数据迁移之后确认 11 1.5 生产运行系统问题 1 ...

最新文章

  1. python网格搜索核函数_机器学习笔记——模型调参利器 GridSearchCV(网格搜索)参数的说明...
  2. 按窗口文件php代码,在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法...
  3. mysql 统计查询不充电_MySql查询语句介绍,单表查询,来充电吧
  4. CVPR 2020 论文大盘点-文本图像篇
  5. CIT 中文笔记完整版
  6. 说说“数据库的自动安装、升级” [转]
  7. Unity 编辑器启动时运行自定义编辑器脚本
  8. mysql中DateTime、Date、Time、TimeStamp区别
  9. (超长)讨论关于允许物料负库存的利与弊...
  10. 如何保证服装ERP项目成功施行
  11. 【亲测】服务器事件查看器打不开报错,mmc无法创建管理单元怎么办
  12. [前端积累]--响应式布局(二)
  13. MySQL连接错误实例
  14. 聚类之高斯混合模型(Gaussian Mixture Model)
  15. 基于Android的健康医疗论坛的设计与开发(android studio)
  16. 【永远的二八定律】☆【永远的二八定律】
  17. dart pub私有仓库搭建、私有仓库上传方法、上传工具定制
  18. 计算机课程教学探讨新闻,信息学院召开《计算机程序设计》课程教学研讨会
  19. win 下 使用工具 将苹果dgm镜像转为cdr镜像,供vm虚拟机安装使用
  20. “21天好习惯”第一期- 4 简单的壁纸爬虫

热门文章

  1. Windwos10系统提示”无法完成更新、正在撤销更改、请不要关闭你的计算机“解决办法
  2. Python之日期和时间
  3. 家纺大数据理性应用与品牌情怀
  4. 火车售票排队系统 c语言,【C语言】实现12306火车售票系统!【附源码】
  5. SQL语句优化(落实到代码,不绕弯子)
  6. 如何实现随机题库生成
  7. javascript验证是否是数字类型
  8. 天涯[经济杂谈]一位创业者的商海感悟(语录版,连载中,持续更新)【力荐】
  9. 使用JavaScript实现鼠标移进按钮显示移出隐藏功能
  10. 个.十.百.千.万.亿.兆,后面是什么单位?