数据库修复Part1:创建自己的测试corrupt数据库
以前看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数据库相关推荐
- 【数据库修复】Mallox勒索病毒家族的数据库文件可100%修复
目录 前言:简介 一.Mallox勒索病毒家族的.consultransom后缀勒索病毒是什么? 二.中了.consultransom后缀勒索病毒文件怎么恢复? 三.恢复案例介绍: 1. 被加密数据库 ...
- sql数据库修复技巧:用达思sql数据库修复软件时表重复怎么搞办?
曾经有个达思sql数据库修复软件的用户在恢复用友数据库时,还原到用友环境时,发现菜单重复,一个按钮变出好几个相同的按钮,就像孙悟空拔出毫毛变出好多个小孙悟空,一直在捉弄那个不会处理重复数据的抓耳挠腮的 ...
- mysql创建数据库选择_mysql创建、选择并使用数据库
假定在你的家(你的"动物园")中有很多宠物,并且你想跟踪关于它们各种类型的信息.你可以通过创建表来保存你的数据并根据所需要的信息装载他们,然后你可以从表中检索数据来回答关于动物不同 ...
- 使用数据库的压测工具super-smack测试mysql数据库性能
一.下载 super-smack 下载地址:http://vegan.net/tony/supersmack/ 源码:http://vegan.net/tony/supersmack/super-sm ...
- 在一台数据库服务器上创建多个金仓数据库
同一金仓数据库服务器上可以创建多个不同的数据库,不同的数据库端口号相同(54321),仅使用不同的名称进行区分,下面说明在已有数据库的服务器上创建数据库的方法,如下(推荐使用脚本方式): 1.在安装了 ...
- excel查询mysql数据库表,excel创建数据表/查询mysql数据库中所有表名
excel两个表格,数据库表与专门查询该数据库信息的表.在查询表中以多个项目进行查询符合条件的数据. 可以用"筛选"这个功能,在菜单里,对两个列进行筛选,符合条件的就会显示出来.很 ...
- 如何做一个mysql数据库_如何创建一个简单的mysql数据库
这篇文章主要介绍了操作MySQL日志的一些方法,对日志的删除操作做了重点讲解,需要的朋友可以参考下. 一.创建数据库 注:已经安装好mysql. windows下运行cmd进入命令窗口,本人用的是wi ...
- Hibernate连接mysql数据库并自动创建表
天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...
- Oracle数据库实例的创建、删除、修改
以SUSE10SP2.Oracle10gR2为例. 本文中的数据库实例这一称谓应该换做数据库更为准确,数据库可以理解为是一个物理的静态概念,主要包括一些物理存在的数据库文件,而数据库实例则是一个动态概 ...
最新文章
- 数据链路层介质访问控制——信道划分、随机访问和轮询访问
- how is odata metadata request served 故意把configuration file里的GM6改成GM61之后
- 唤醒幻数据包禁用会怎么样_如何利用splashtop实现远程开机、远程唤醒电脑
- SpringBoot整合RabbitMQ-创建队列并绑定交换机
- .gitignore中添加了忽略规则为何还是会提示版本更新,git如何清除部分文件的版本管理
- bzoj 3527 [Zjoi2014]力——FFT
- string.split方法 保留分隔符_白月黑说什么是对象的方法?以及string类型数据对象的常见方法解析...
- 开源网站项目-静态网址导航网站
- 通过注册表快速清理残留的软件
- python修改mac地址_python中的MAC地址生成器
- 学校网站建设的必要性
- python 方差_使用NumPy介绍期望值,方差和协方差
- 关于核磁共振项目的硬件理解
- 前端基础(13):CSS3新增属性和选择器
- resnet50结构图
- CAD文件如何转成PDF格式?告诉你如何转换
- 路飞学城出品python全栈工程师学习感受
- 全球及中国抗高血压药物市场经营状况及投资竞争力分析报告2021-2027年
- 讲解视频质量,视频质量测试,主观客观评价视频质量
- 给电脑换上鸿蒙字体吧~