以前看Pual写过很多数据恢复的文章,他很多的测试都是自己创建的Corrupt数据库,其实我们自己也可以。

1. 创建数据库数据表插入数据:

use master

go

create databasecorrupt

use corrupt

go

create tabletest(IDint, namevarchar(10))

declare @int asint

set @int = 1

while @int <20

begin

insert intotestvalues(@int,'allentest')

set @int += 1

end

2. 使用DBCC IND查看Test表所在的PageID

dbcc ind(corrupt,test,1)

3. 用DBCC PAGE查看TEST表的内容:

dbcc traceon(3604,-1)

go

dbcc page(corrupt,1,55,1)

这里我们只修改Slot 1数据,偏移地址为78,转化为10进制为120.

所以当前Slot1的实际地址为:55*8192+120=450680

4. 停掉SQL Server用XVI32打开数据文件然后输入地址找到对应的数据(可以看到数据与Step3中看到的数据一致)。

5. 对数据进行修改保存关闭XVI32。

6. 重启SQL Server然后用DBCC PAGE看Page 55 Slot1内容(已经被更改)

7. DBCCCHECKDB检查数据库发现下面的错误:

dbcc checkdb withno_infomsgs

Msg8928, Level 16, State 1, Line 1

Object ID2105058535, index ID 0, partition ID 72057594038779904, alloc unit ID72057594039828480 (type In-row data): Page (1:55) could not be processed. See other errors for details.

Msg8939, Level 16, State 98, Line 1

Table error: ObjectID 2105058535, index ID 0, partition ID 72057594038779904, alloc unit ID72057594039828480 (type In-row data), page (1:55). Test (IS_OFF (BUF_IOERR,pBUF->bstat)) failed. Values are 12716041 and -4.

这样我们就创建了一个Corrupt的数据库,稍后我会花时间测试恢复(page restore/ dbcc checkdbrepair_allow_data_loss/rebuildSQL Server log),然后把测试步骤发出来.

如果你不想自己创建的话,也可以使用Paul提供的两个Corrupt数据库做测试。

转载于:https://blog.51cto.com/lzf328/954147

数据库修复Part1:创建自己的测试corrupt数据库相关推荐

  1. 【数据库修复】Mallox勒索病毒家族的数据库文件可100%修复

    目录 前言:简介 一.Mallox勒索病毒家族的.consultransom后缀勒索病毒是什么? 二.中了.consultransom后缀勒索病毒文件怎么恢复? 三.恢复案例介绍: 1. 被加密数据库 ...

  2. sql数据库修复技巧:用达思sql数据库修复软件时表重复怎么搞办?

    曾经有个达思sql数据库修复软件的用户在恢复用友数据库时,还原到用友环境时,发现菜单重复,一个按钮变出好几个相同的按钮,就像孙悟空拔出毫毛变出好多个小孙悟空,一直在捉弄那个不会处理重复数据的抓耳挠腮的 ...

  3. mysql创建数据库选择_mysql创建、选择并使用数据库

    假定在你的家(你的"动物园")中有很多宠物,并且你想跟踪关于它们各种类型的信息.你可以通过创建表来保存你的数据并根据所需要的信息装载他们,然后你可以从表中检索数据来回答关于动物不同 ...

  4. 使用数据库的压测工具super-smack测试mysql数据库性能

    一.下载 super-smack 下载地址:http://vegan.net/tony/supersmack/ 源码:http://vegan.net/tony/supersmack/super-sm ...

  5. 在一台数据库服务器上创建多个金仓数据库

    同一金仓数据库服务器上可以创建多个不同的数据库,不同的数据库端口号相同(54321),仅使用不同的名称进行区分,下面说明在已有数据库的服务器上创建数据库的方法,如下(推荐使用脚本方式): 1.在安装了 ...

  6. excel查询mysql数据库表,excel创建数据表/查询mysql数据库中所有表名

    excel两个表格,数据库表与专门查询该数据库信息的表.在查询表中以多个项目进行查询符合条件的数据. 可以用"筛选"这个功能,在菜单里,对两个列进行筛选,符合条件的就会显示出来.很 ...

  7. 如何做一个mysql数据库_如何创建一个简单的mysql数据库

    这篇文章主要介绍了操作MySQL日志的一些方法,对日志的删除操作做了重点讲解,需要的朋友可以参考下. 一.创建数据库 注:已经安装好mysql. windows下运行cmd进入命令窗口,本人用的是wi ...

  8. Hibernate连接mysql数据库并自动创建表

    天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...

  9. Oracle数据库实例的创建、删除、修改

    以SUSE10SP2.Oracle10gR2为例. 本文中的数据库实例这一称谓应该换做数据库更为准确,数据库可以理解为是一个物理的静态概念,主要包括一些物理存在的数据库文件,而数据库实例则是一个动态概 ...

最新文章

  1. 数据链路层介质访问控制——信道划分、随机访问和轮询访问
  2. how is odata metadata request served 故意把configuration file里的GM6改成GM61之后
  3. 唤醒幻数据包禁用会怎么样_如何利用splashtop实现远程开机、远程唤醒电脑
  4. SpringBoot整合RabbitMQ-创建队列并绑定交换机
  5. .gitignore中添加了忽略规则为何还是会提示版本更新,git如何清除部分文件的版本管理
  6. bzoj 3527 [Zjoi2014]力——FFT
  7. string.split方法 保留分隔符_白月黑说什么是对象的方法?以及string类型数据对象的常见方法解析...
  8. 开源网站项目-静态网址导航网站
  9. 通过注册表快速清理残留的软件
  10. python修改mac地址_python中的MAC地址生成器
  11. 学校网站建设的必要性
  12. python 方差_使用NumPy介绍期望值,方差和协方差
  13. 关于核磁共振项目的硬件理解
  14. 前端基础(13):CSS3新增属性和选择器
  15. resnet50结构图
  16. CAD文件如何转成PDF格式?告诉你如何转换
  17. 路飞学城出品python全栈工程师学习感受
  18. 全球及中国抗高血压药物市场经营状况及投资竞争力分析报告2021-2027年
  19. 讲解视频质量,视频质量测试,主观客观评价视频质量
  20. 给电脑换上鸿蒙字体吧~

热门文章

  1. Cadence IC使用教程
  2. 用tcc自己编译自己
  3. 教师查询系统C语言,教师管理系统c语言版
  4. Tensorflow2.6更新cuda11.2
  5. 工业用微型计算机笔记(13)-指令系统(8)
  6. rust(16)-数组
  7. C指针原理(6)-C内嵌汇编
  8. 21-5-22校赛J 下围棋
  9. 【机器学习基础】(五):通俗易懂决策树与随机森林及代码实践
  10. 【Python基础】惊叹,Pyecharts绘制饼图原来可以如此漂亮!