存档

文章标签 ‘物理存储结构’,文章数:9

专注于Sybase ASE以及Sybase ASA数据库文件的恢复。专注于各种勒索病毒加密数据库的修复。

联系手机: 13811580958(微信),QQ: 289965371!
郑重承诺,修不好不收费。客户验证数据的正确性后,再付款。

一、Sybase ASE数据库恢复工具READSYBDEVICE主要功能有:

  1. 被勒索病毒加密数据文件及备份文件情况下的恢复; 
  2. 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
  3.   因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
  4.   delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复  等;
  5.   各种sybase内部系统表损坏、索引错误的修复;
  6.   master数据库损坏而无法正常运行情况下的恢复;
  7.   sybase数据库被标记为可疑,不可用等情况的恢复;
  8.   sybase数据库中数据文件内部出现坏块情况下的恢复;
  9.   sybase数据库无数据文件但有日志文件的情况下的恢复;
  10.   sybase数据库只有数据文件无任何日志文件的情况下的恢复;
  11.  sybase数据文件被误删除情况下的碎片提取恢复;
  12.  磁盘阵列上的sybase数据库被误格式化情况下的数据库恢复;
  13.  数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
  14.  sybase数据库还原数据库出现失败情况下的恢复;
  15.  sybase数据库只剩下损坏的备份文件情况下的恢复。

 

二、Sybase ASE数据库恢复工具READSYBDEVICE支持的版本:
Sybase ASE 11.0.x,11.5.x,11.9.2,12.0.x,12.5.x,15.0.x,15.5.x,15.7.x,16.0.x

 

三、Sybase SQL Anywhere (ASA)数据库恢复工具ReadASADB功能:
       能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1.      适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x
  2.     适用于所有的UltraLite版本
  3.     能够恢复出来表结构和数据
  4.     能够恢复自定义数据类型
  5.     能够恢复存储过程等对象的语法
  6.     能够导出到目标数据库
  7.     能够导出到SQL文件并生成导入脚本
  8.     支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9.     能够恢复未加密或者简单加密类型的数据
  10.    简单易用
  11.    限制:不支持AES加密的数据文件

四、Sybase SQL Anywhere (ASA)数据库恢复工具ReadASADB适用场景:

各种误操作:

  1.     误截断表(truncate table)
  2.     误删除表(drop table)
  3.     错误的where条件误删数据
  4.     误删除db或log文件
  5.     误删除表中的字段

专注于SQL Server数据库的恢复。专注于各种勒索病毒加密数据库的修复。

联系手机:(微信),QQ:
郑重承诺,修不好不收费。客户验证数据的正确性后,再付款。

SQLRescue可用于从损坏的 MS SQL Server 数据库数据文件(*.mdf  *.ndf 文件)中恢复数据。它可以保存关键数据,避免其丢失。

一、SQLRescue主要功能有:

  1. 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;

  2. 断电导致数据库文件损坏情况下的恢复;

  3. 硬盘坏道造成数据库损坏情况下的恢复;

  4. 数据文件内部存在坏页情况下的恢复;

  5. 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;

  6. 并闩锁错误、格式化、误删除后导致软件不能使用的情况;

  7. 无法读取并闩锁页sysindexes失败情况下的修复;

  8. 数据文件被误删除情况下的碎片提取恢复;

  9. 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;

  10. master数据库损坏而无法正常运行情况下的恢复;

  11. 数据文件无法附加情况下的数据恢复;

  12. 数据库被标记为可疑,质疑,不可用等情况的恢复;

  13. 数据库sysobjects等系统表损坏情况下的恢复;

  14. 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;

  15. 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;

  16. 数据库被误格式化等情况下的数据库恢复;

  17. 日志收缩造成数据库损坏情况下的恢复;

  18. 仅剩损坏的备份文件情况下的恢复。


二、SQLRescue主要技术特点:

只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。

  1. 从数据文件中直接恢复数据

  2. 不能附加时直接恢复数据并生成新的数据库

  3. 系统表损坏的数据库修复

  4. 快速修复SQL 823错误、连接中断错误

三、SQLRescue支持的版本:

Microsoft SQL Server 6.5, 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017。

window.open(“http://www.dbainfo.net/tag/recovery-tools”,”_self”); 试用方法: SQL ASE非常规恢复工具 SQL Anywhere非常规恢复工具:ReadASADB/p> 如果没有跳转,请直接访问该页面:Sybase ASE&ASA非常规恢复工具

专注于Sybase Adaptive Server Enterprise(ASE)以及 Sybase SQL Anywhere(ASA)数据库文件的恢复。

联系手机:(微信),QQ:
郑重承诺,修不好不收费。客户验证数据的正确性后,再付款。

Sybase SQL Anywhere(ASA)数据库非常规恢复工具

ReadASADB---一个不依赖数据库管理系统、直接从db文件上提取数据的业内领先的恢复工具!

一、SQL Anywhere、UltraLite介绍
SQL Anywhere  一个免维护、易管理的移动数据库。

SQL Anywhere 提供了企业级的功能,包括完全的事务处理、无与伦比的可靠性和功能,包括参照完整性、存储过程、触发器、行级锁、自动的任务安排和自动恢复等功能

  • 易于使用,易于管理 ,降低最终用户的日常管理费用!
  • 多平台支持
  • 资源效率高
  • 配套的定时数据同步工具Mobilink

UltraLite 是一种用于小型、移动和嵌入式设备的、具有同步功能的关系数据库

  • 稳健的数据管理
  • 强大的同步功能
  • 直接简明的开发
  • 多平台可用性

您可以开发和部署用于 Windows CE、 Palm OS 和基于 Java 的设备的 UltraLite 数据库应用程序!

二、ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件

之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具,现在公布一下。

此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。恢复Sybase SQL Anywhere的工具在国内应该算首创。

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;

2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;

Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。

如:

1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back

4、File is shorter than expected

5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back

6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page

7、*** ERROR *** Assertion failed: 201417 (7.0.4.3541) Invalid count or free space offset detected on a table page

8、Internal database error *** ERROR *** Assertion failed: 201425 (8.0.3.5594) Invalid count or free space offset detected on a free list page -- transaction rolled back.

Checkpoint log: invalid bitmap page -- transaction rolled back
Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back

等等。报错的同时可能会在db文件相同目录下生成assert.dmp文件。

关于Assertion Failure,大家可以参考Sybase官方技术文章:I've got an assertion! What should I do?

本博中有两篇文章介绍Sybase SQL Anywhere数据库db文件的物理存储结构的分析过程,可以参考一下:

ASA数据库物理存储结构分析(1)

ASA数据库物理存储结构分析(2)

本人不提供此工具的下载。如想了解使用本工具恢复损坏db文件的过程,可以观看下面的视频:

一、Sybase ASE中对表中已有的列修改默认值属性,使用命令:

alter table [database.][owner].table_name replace column_name default { constant_expression | user | null}

比如将表tmp1中dealtime字段设置成默认值为当前日期,使用:

alter table tmp1 replace dealtime default getdate()

删除列上的默认值属性:

将缺省值设置为null会删除缺省值,如: alter table tmp1 replace dealtime default null

在用dbcc checkdb 对数据库进行检查的时候,在数据结果的头部报下面的错误:

扩展盘区 (1:9508664) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508672) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508680) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508688) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508696) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508704) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508712) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508720) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508728) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508736) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508744) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508760) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508776) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508792) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508800) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508808) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508816) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
        DBCC
语句的修复级别导致回避了此修复。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508824) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508832) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1
扩展盘区 (1:9508840) (属于数据库 ID 7 )在 GAM 中标记为已分配,但没有 SGAM IAM 分配过该盘区。
消息 8905 ,级别 16 ,状态 1 ,服务器 SERVER ,行 1

分析一下给表增加字段时sybase数据库的内部处理过程。 表原来的结构: create table t(id int, col1 varchar(30)) 向表中插入数据: insert into t select 1,'a' go insert into t select 1,'a' go insert into t select 2,'b' go insert into t select 3,'c' go 测试表t的object_id是: 1> select object_id('t') 2> go  ———–    608002166 利用dbcc log分析数据库的日志,可以看出上面的四条insert语句对应了四个单独的事务。因为sybase中默认是隐式提交的。 四条记录的页号和偏移分别是: row1.  pageno=801 offset=32 row2.  pageno=801 offset=44 row3.  pageno=801 offset=56 row4.  [...]