存档
专注于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)上提取数据的非常规恢复工具
- 适用于所有的SQL Anywhere版本 包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x
- 适用于所有的UltraLite版本
- 能够恢复出来表结构和数据
- 能够恢复自定义数据类型
- 能够恢复存储过程等对象的语法
- 能够导出到目标数据库
- 能够导出到SQL文件并生成导入脚本
- 支持多种字符集 包括:cp850、cp936、gb18030、utf8等
- 能够恢复未加密或者简单加密类型的数据
- 简单易用
- 限制:不支持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.
9、Internal database error *** ERROR *** Assertion failed: 100702 (8.0.1.2600) Unable to modify indexes for a row referenced in rollback log -- transaction rolled back
等等。报错的同时可能会在db文件相同目录下生成assert.dmp文件。
关于Assertion Failure,大家可以参考Sybase官方技术文章:I've got an assertion! What should I do?
本博中有两篇文章介绍Sybase SQL Anywhere数据库db文件的物理存储结构的分析过程,可以参考一下:
本人不提供此工具的下载。如想了解使用本工具恢复损坏db文件的过程,可以观看下面的视频:
Sybase IQ和ASE中都有函数ascii,返回字符串表达式中第一个字节的整数 ASCII 值!
那么, 如何获得字符串的十六进制形式呢?
比如:以GBK编码的三个汉字“数据库”的十六进制形式为:0xcafdbeddbfe2
可以验证一下: select char(hextoint('ca')) + char(hextoint('fd')) , char(hextoint('be')) + char(hextoint('dd')),char(hextoint('bf')) + char(hextoint('e2'))
本文提供两种方法,主要涉及到的函数有: substring,ascii,inttohex,right,list,string以及sa_rowgenerator系统过程。