存档

文章标签 ‘ASE’,文章数:63

专注于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.     误删除表中的字段

本文提供master配置区域损坏的一种修复方法!

Sybase ASE master数据库的前2048字节存储着Sybase数据库服务器的configuration area(配置区域)。如果configuration area corrupt,那么Sybase服务器无法启动。

造成configuration area corrupt的原因一般为硬件故障。通过下面的案例分享configuration area corrupt的一种恢复方法。

背景:

版本:ASE 15.0.3 ESD#3

在通过临时设置参数upgrade version为492来重置sa口令为空时,忘记将upgrade version改回原值 (参考:将Sybase ASE登录sa的密码置为空NULL的方法)。之后重启Sybase服务器时报错:

Pre 10.0 database cannot work with this version of the server. Please upgrade the databases to 10.0 or above release and then try to start with this version of the server. Shutting down ***.

ASE配置文件(*.cfg)中大多数情况下不存在参数:upgrade version。在cfg中添加upgrade version=15000后,启动时仍然报上面的master数据库版本低于10.0的错误。

通过比较多个版本的configuration area,发现master数据库的第1805和第1806字节表示upgrade version,15000的十六进制形式为:0x3A98,则将第1805字节改为98,第1806字节改为3A(此处master为linux平台上的数据库)。改为之后启动报错:

The configuration area in device '/home/sybase/data/master.dat' appears to be corrupt. The server cannot continue and will shut down.

看来仅仅修改2个字节的内容无法验证通过,那么通过替换master数据库头部2048字节呢? 我测试是可行的!

ASE 15之前版本中对象名称长度限制为30字节,ASE 15及以后版本中对象名称长度限制为255字节;这指的是服务器端的对象名称长度限制。

在创建用户对象时,还要考虑到客户端版本对名称长度的限制。

下面举四个例子:

在ASE 12.5上创建一个名称长度为33字节的存储过程:

create procedure
sp_123456789012345678901234567890
as
select getdate()
go

1、使用ASE 12.5的isql连接ASE 12.5服务器,报错:

Msg 103, Level 15, State 1:
Server 'dbainfo', Line 2:
The identifier that starts with 'sp_123456789012345678901234567' is too long.  Maximum length is 30.

2、使用ASE 15.0.3的isql连接ASE 12.5服务器,报错:

曾经写过博文介绍利用代理表统计数据库内所有表占用空间情况,也包括表的行数:

可以参考:ASE15.0中利用代理表实现统计用户表存储空间大小的功能

配置代理表可能有些麻烦,本文提供一个简单的脚本来获得数据库内表的行数。

#!/bin/bash

ISQL="isql -Usa -P -SSYBASE -w5000"
database_name="tpchdb"

$ISQL  <<EOF  | sed -e '1,2d' -e 's/^ *//;s/ *$//' -e '/^$/d' > tablename.list
use ${database_name}
go
set nocount on
go
select name from sysobjects where type='U' order by name
go
quit
EOF

while read table_name
do
        if [ "${table_name}" = "" ]; then
                break
        fi
        $ISQL <<EOF | grep "=" | sed -e 's/^ *//;s/ *$//;s/= */=/'
use ${database_name}
go
set nocount on
go
select "${table_name}=",count(*) from ${table_name}
go
quit
EOF
done < tablename.list
echo "Table Count:`wc -l tablename.list|awk '{print $1}'`"
rm -f tablename.list

使用的时候,仅仅需要修改一下红色标记的用户名、密码、服务器名称、数据库名称即可。

当然你也可以只统计相应的表的行数,修改select name from sysobjects where type='U' order by name,比如:name like 'flow_%' and crdate > '2014-01-01'

另外,如果不想用脚本而在TSQL中实现的话,可能得用到游标了。

脚本tablerowcount.sh下载地址

 

ASE 15.7 SP100版本开始支持以html格式显示查询计划。

生成html形式的查询计划前需要启用一些会话级别的选项:

set statistics plan_html on
set statistics timing_html on
set statistics plan_detail_html on
set statistics parallel_plan_detail_html on
set statistics plan_directory_html "e:\"
set statistics plan_directory_html on
go

在执行SQL语句后,会在e:\发现生成了对应的查询计划html文件。

文件名称格式为:qp_username_spid_timestamp.html,比如:qp_sa_25_2013-11-19T17_48_08.html

使用浏览器打开qp_sa_25_2013-11-19T17_48_08.html,内容截图为:

禁止生成html格式的查询计划,使用选项:

set statistics plan_html off
set statistics timing_html off
set statistics plan_detail_html off
set statistics parallel_plan_detail_html off
go

 

以前写的windows平台上安装Sybase ASE15.0.3的文档,内容比较详细。与大家共享一下!

主要包括:

一、安装前的准备工作

二、安装Sybase程序

三、升级到 Sybase 15.0.3 ESD #3

四、安装Sybase数据库服务

五、安装后的配置工作

 

下面是第三章:升级到 Sybase 15.0.3 ESD #3

 

三、升级到 Sybase 15.0.3 EBF #3 

1、升级之前的工作

2、升级过程

3、升级之后的工作

 

三、升级到 Sybase 15.0.3 EBF #3

1、升级之前的工作

做好备份    

安装的升级包会覆盖当前的sybase程序。在升级之前,请检查sybase数据库确保没有问题,并备份%SYBASE%文件夹下的所有文件;这样,升级失败的时候还能够退回到升级之前的状态。