提供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 联系我们获取数据库技术支持!
Email: 289965371@qq.com
扫描下方微信,联系我们:
扫描雨翰数据恢复官方微信获取专业数据库恢复服务

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从https://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站https://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 联系我们获取数据库技术支持!
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

sqldbgr

说明 sqldbgr 是一个调试存储过程和触发器的命令行实用程序。如同许多源级 调试程序一样,您可以:

sqldbgr 连接到一个任务

设置、启用和禁用断点

每次一行逐步调试任务

单步执行和退出过程

一旦调试完毕,则将 sqldbgr 从存储过程或触发器分离出来。

• (UNIX) sqldbgr 位于 $SYBASE/$SYBASE_ASE/bin 中。

image

image

• (Windows) sqldbgr 位于 %SYBASE%\%SYBASE_ASE%\bin 中。 注释 您不能查看 sqldbgr 版本字符串。

语法 sqldbgr


-U username

-P password

-S host:port

参数 -U username

指定用户名。必须在 -U username 之间插入空格。

-P password

指定用户口令。必须在 -P password 之间插入空格。

-S host:port

指定计算机名和端口号。必须在 -S host:port 之间插入空格。

示例 示例 1显示 sqldbgr 如何调试主机 MERCURY 上的存储过程和触发器:

$SYBASE/$SYBASE_ASE/bin/sqldbgr -U sa -P -S MERCURY:16896 (sqldbg) stop in sp_who

Breakpoint moved to line 20 (sqldbg) run sp_who (sp_who::20)if @@trancount = 0 (sqldbg) next

(sp_who::22) set chained off (sqldbg) cont

fid spid status loginame origname hostname blk_spid dbname cmd block_xloid

0

2

sleeping

NULL

NULL

0

master

NETWORK HANDLER

0

0

3

sleeping

NULL

NULL

0

master

NETWORK HANDLER

0

0

4

sleeping

NULL

NULL

0

master

DEADLOCK TUNE

0


0

5

sleeping

NULL

NULL

0

master

MIRROR HANDLER

0

0

6

sleeping

NULL

NULL

0

master

ASTC HANDLER

0

0

7

sleeping

NULL

NULL

0

master

ASTC HANDLER

0

0

8

sleeping

NULL

NULL

0

master

CHECKPOINT SLEEP

0

0

9

sleeping

NULL

NULL

0

master

HOUSEKEEPER

0

0

10

running

sa

sa

0

master

SELECT

0

0

11

sleeping

sa

sa

(sqldbg) show breakpoints

1 stop in sp_who (sqldbg)

示例 2在此示例中,系统管理员首先使用 isql 登录到 Adaptive Server,然 后从命令行启动 sqldbgr 以调试在其它任务中运行的存储过程:

$SYBASE/$SYBASE_OCS/bin/isql -U sa -P 1> select @@spid

2> go

-- ----

12

1>

$SYBASE/$SYBASE_ASE/bin/sqldbgr -U sa -P -S MERCURY:16896 (sqldbg) attach 13

The spid is invalid (sqldbg) attach 12 (sqldbg) show breakpoints (sqldbg) stop in sp_who

Breakpoint moved to line 20

(sqldbg) /* at this point run the sp_who procedure from spid 12 */ (sqldbg) where

(sp_who::20::@loginname = <NULL>) (ADHOC::1::null)

(sqldbg) next

(sp_who::22) set chained off (sqldbg) next

(sp_who::25)set transaction isolation level 1 (sqldbg) cont

(sqldbg) /* at this point the sp_who result will show up in the isql screen */ (sqldbg) detach 12

(sqldbg)

用法 sql 命令是在所调试任务的环境中执行的,而 mysql 命令是在调试程 序任务的环境中执行的。设置特定于会话的信息 (例如通过 sql 设 置 set quoted_identifier on)将不起作用。


缺省情况下, Sybase jConnect JDBC 驱动程序使用 set quoted_identifier on。由于 sqldbgr 实用程序是使用需要引号的 jConnect 参数建立的,因此在输入选项时应使用单引号,而不是双 引号。例如,应使用 sp_configure 'allow update',而不是 sp_configure "allow update"

在可以运行 sqldbgr 之前,必须首先将 SYBASE_JRE

JAVA_HOME 环境设置为包含 Java 运行环境的位置。

在命令提示符下调用 sqldbgr 时,实用程序启动,并且提示符更改为

sqldbgr 提示符:

(sqldbgr)

一旦看到 (sqldbgr) 提示符,可以输入以下 sqldbgr 命令来执行您 的任务:

7-3sqldbgr 命令及其说明

image

image

image

命令 说明

attach spid 在已经登录到 Adaptive Server 后,将一个任务连接到 sqldbgr


注释 不要使用 attach spid 连接到一个没有运行的过程。


sqldbgr 不能调试同一会话中的多个任务。如果尝试将该实用程序连接到多个 任务,则第一个 spid 继续被标记为已连接。因为您不能连接到一个已经连接 的 spid,所以必须使用 detach 命令,然后连接到其它 spid

run procname 在没有将 sqldbgr 连接到一个现有任务的情况下,调试存储过程和触发器。

当已经用 attach spid 调试一个现有任务时,如果尝试使用 run procname,则 run procname 将失败并显示以下消息:

Cannot run a procedure while debugging another task

stop in procname [at line #] 设置断点以便在指定过程名称的开始处停止被调试的存储过程或触发器。

stop in procname at line # 将设置断点,从而在指定过程中的指定行处停止被调 试的存储过程或触发器。

如果输入一个无效行号, sqldbgr 将断点移到下一个有效行号,并显示以下消 息:

Invalid line number

也可以使用此命令设置多个断点。

show breakpoints 以唯一编号形式显示断点号,并显示在 sqldbgr 会话过程中用户给定的断点语 句。

如果指定一个未包含有效 SQL 语句的断点行号, Adaptive Server 会将断点移 到下一个有效行号。但 Adaptive Server 不会更改您输入的命令。这就是 show breakpoints sqldbgr 会话过程中返回的断点号和给定的断点语句可能不同的 原因。

断点行中出现的星号 (*) 说明设置了断点,但当前被禁用。


image

image

image

命令 说明

use dbname 指示 sqldbgr 使用哪一数据库,以便调试该数据库的存储过程或触发器。

show variables [at level #] show @varname [at level #]

show variables 显示当前 SQL 存储过程或触发器中的所有变量和它们的值。

show variables at level # 显示当前 SQL 存储过程或触发器中指定级别的所有变 量和它们的值。

show @ varname 显示当前 SQL 存储过程或触发器中的指定变量和它的值。

show @varname at level # 显示当前 SQL 存储过程或触发器中指定级别的指定 变量和它的值。


注释 sqldbgr 不支持 Java 变量。


show where 显示被调试任务中存在的存储过程和触发器的调用堆栈。

step next step next 指示 sqldbgr 移到当前存储过程或触发器中的下一语句。

step into 如果当前语句是一个 execute 语句,那么指示 sqldbgr 移到一个过程中。如果 当前语句是一个 updatedelete insert 语句,并且其中有触发器,则 step into 会指示 sqldbgr 移到 updatedelete insert 触发器中。

step out 指示 sqldbgr 移出当前存储过程或触发器,并在调用过程中的下一行上停止。

set @varname = VALUE 将指定变量的值设置为当前存储过程或触发器的命令中声明的值。使用 set

@varname = VALUE 所设置变量的值只对当前会话 sqldbgr 有效。

cont[inue] 指示 sqldbgr 继续调试,并在下一个断点 (如果有)停止。

delete # 删除当前 sqldbgr 实例中设置的断点。

enable # disable # 启用指定断点。 disable # 的功能与之相反。

sql any_sql_statement 执行即席 SQL 语句。可以使用此命令,选择和分析来自被调试任务创建的

temp 表中的数据。

sql any_sql_statement 返回一个结果集和发生的任何错误。

detach spid 从指定的 spid 断开 sqldbgr,并释放被调试的任务。 它删除在当前 sqldbgr 会话中为要调试的任务设置的断点。

help [all] 显示 sqldbgr 命令。


7-4 列出所有 sqldbgr 错误消息:

7-4sqldbgr 错误消息及其含义

image

错误消息 说明

Cannot allocate resource in ASE

Cannot create Debugger handle in ASE

说明 Adaptive Server 没有足够内存资源来执行 sqldbgr。请增加 procedure cache size 并重新启动 sqldbgr

说明 Adaptive Server 没有足够内存资源来创建一个调试程序句柄。请 增加 procedure cache size 并重新启动 sqldbgr

The spid is invalid 当尝试将 sqldbgr 连接到一个无效 spid 时显示此消息。请仔细检查 spid

并重试。

You cannot debug a task that is not owned by you

当尝试调试一个不属于您的任务时显示此消息。必须作为要调试任务 的所有者登录到服务器。


image

错误消息 说明

Spid is already being debugged

Spid is not debugged currently

在执行 attach spid 并尝试连接到一个已经被调试的 spid 时显示此消 息。

在执行 detach spid 并尝试从没有连接到 sqldbgr spid 断开时显示此 消息。

Invalid command 输入一个无效命令时显示此消息。

Invalid procedure name stop in procname 中输入一个无效过程名时显示此消息。

Invalid line number stop in procname at line # 中输入一个无效行号时显示此消息。

Variable not found show @varname show @varname at level # set @varname = VALUE

中输入一个无效变量时显示此消息。

Illegal conversion attempted

Conversion from text to datatype failed

Cannot run a procedure

while debugging another task

执行 set @varname = VALUE 并尝试将变量转换为一个无效值时显示此 消息。

set @varname = VALUE 未成功时显示此消息。


在已经用 attach spid 调试一个现有任务的情况下,如果此时使用 run

procname 将显示此消息。




--------------------------------------华丽的分割线-------------------------------------------------------------------------

Sybase SQL Anywhere数据库恢复工具ReadASADB:

之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具: ReadASADB。
此工具支持ASA v5.0, v6.0, v7.0, v8.0, v9.0, v10.0, v11.0, v12.0, v16.0, v17.0等版本。
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具。
恢复Sybase SQL Anywhere的工具在国内处于领先水平。

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

Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景

各种误操作:

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

Sybase SQL Anywhere数据库恢复工具ReadASADB的应用场景:

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


-------------------------------------------------------------------------------------------

Sybase ASE数据库恢复工具READSYBDEVICE:

一个不依赖数据库管理系统、直接从Sybase数据库设备文件上提取数据的业内领先的恢复工具!
能够从损坏的Sybase ASE设备文件(.dat)上提取数据的非常规恢复工具。

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.x,12.0.x,12.5.x,15.0.x,15.5.x,15.7.x,16.0.x


-------------------------------------------------------------------------------------------

SQL Server数据库恢复工具SQLRescue:

一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!
能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。

SQL Server数据库恢复工具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. 仅剩损坏的备份文件情况下的恢复。

SQL Server数据库恢复工具SQLRescue技术特点:

只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。
  1. 从数据文件中直接恢复数据
  2. 不能附加时直接恢复数据并生成新的数据库
  3. 系统表损坏的数据库修复
  4. 快速修复SQL 823错误、连接中断错误

SQL Server数据库恢复工具SQLRescue支持的版本:

Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------