提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系手机:(微信),QQ:289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371

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

研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具

之前就已经研发成功了能够从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

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
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文件的物理存储结构的分析过程,可以参考一下:

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

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

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

IQ中得到字符串的十六进制形式

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系统过程。

echo 命令的模式匹配字符功能

要使用 echo 命令的模式匹配字符功能,可以输入:
echo The back-up files are: *.bak
该用法将显示消息备份文件后跟有当前目录中以 .bak 结尾的文件名。

在正则表达式中,中括号[]是特殊字符,会匹配其中的任意一个字符且只是一个字符。

当想输出类似 [abc]这样的字符串时,最好使用双引号括起来。

echo "[abc]"

否则,如果直接使用echo [abc]输出,可能得到不同的”奇怪“的结果。

echo [abc]会在当前目录下,匹配名称为a或者b或者c的文件,如果当前目录包含a、b、c这三个文件中的任意一个,则返回相应的文件列表;否则返回 [abc]本身。

root@test:~# ls -l [abc]
-rw-r--r-- 1 root root 0 Apr 11 17:27 a
-rw-r--r-- 1 root root 0 Apr 11 17:34 b
root@test:~# echo [abc]
a b
root@test:~# echo [cde]
[cde]
root@test:~# echo *.sh
openvpn.sh setup-debian.sh
root@test:~#

在使用echo输出字符串的时候,如果不加双引号,会启用模式匹配功能;如果恰好能匹配到当前目录下的文件,则会输出匹配到的文件名列表。

如果没有匹配到文件的话, 会直接打印相应的字符串。

为了防止不确定的输出结果, 可以将字符串两边添加双引号。 为了中括号的问题去改造以前的代码是个比较大的工程。

ASE修改列的默认值属性

一、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

Sybase ASE 中null is null的处理结果是什么?

Sybase ASE对null is null的处理结果是什么呢?
下面的SQL语句会返回所有的对象名吗?
select name from sysobjects where type=null or null is null
答案是:根据ASE版本不同,结果也不同。

在ASE v15.0.3之前的版本中会报下面的错误:
Invalid operator for datatype op: is null type: VOID TYPE.
在v15.0.3及以后的版本中,对is null的处理结果和我们平时直观的想法相同,
上面SQL语句会返回所有的对象名称。

Sybase去除重复数据的一种方法

sybase数据库中去除重复数据的方法有很多中,比如:identity+max(),set rowcount N 或 top N,distinct,ignore_dup_key等等。

以后花时间整理一下去除重复数据的不同方法。

今天,仅仅介绍如何使用union操作符来去除重复值。

在select命令中union all不删除重复行,而union会删除重复行。

这样的话,将包含重复行的记录通过union操作符插入到一张临时表中,然后再倒回来就行了。

免安装(绿色版)的ASE客户端工具Sybase Centralv4.3

以前本博提供了Sybase ASE 12.5绿色版的客户端工具Sybase Central,那个版本号为v3.2。今天继续提供Sybase Central v4.3绿色免安装版。

本客户端工具为Sybase ASE v12.5.4附带的Sybase Central v4.3的绿色、免安装版。本工具包含两个插件:

Sybase Central ASE Plug-in/12.5.4/GA Build 1/S/1.4/ase1254dev/Mon May 22 10:15:00 PDT 2006   和  Sybase IQ   12.7 070907
*************************************************************
                         免责声明
Sybase Central版权归Sybase公司所有!
我制作此Sybase Central版的绿色安装程序的目的是方便大家使用,
现在互联网上Sybase早期版本的客户端工具不好找了,希望此免安装
工具能够给大家带来工作上的便利。请勿将此工具用于商业用途,否则
产生的相应版权问题与本人无关!谢谢!
*************************************************************