远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://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. 实用程序指南

 


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

有态历史监控表

许多监控表提供各个事件的记录,而不是有关当前状态的信息。这些表 称为 “历史的”,因为这些表中报告的事件提供服务器在一段时间内的 历史记录。 Adaptive Server 维护访问历史表的每个客户端连接的上下文 信息,而且,在对该表进行的每个后续查询中仅返回客户端以前没有收 到的行。历史监控表的这种 “有态”属性旨在最大限度地提高性能, 以及在用于填充历史数据的存储库时避免重复行。

历史监控表有:

monErrorLog

monDeadLock

monSysStatement

monSysSQLText

monSysPlanText


image

注释 monSysPlan Text monSysSQLText 中,列 BatchIDContextIDProcedureID PlanID 的值经过修改,在 Adaptive Server 15.0.3 版和更高 版本中生效。有关这些列中的更改,请参见 《参考手册:表》。

image


可以根据 monTables.Indicators 列来确定历史表:

select TableName

from master..monTables where Indicators & 1=1

从历史表中返回的信息存储在缓冲区中,每个历史监控表存储在一个缓 冲区中。这些缓冲区的大小 (由配置参数指定)影响数据存储的时间长 度。使用 sp_configure 选项可配置缓冲区的大小和要捕获的信息。您使用 的 sp_configure 选项取决于您要配置的监控表。例如,对于 monSysPlanText 表,请配置:

plan text pipe max messages — 要为特定缓冲区存储的消息数。

plan text pipe active — 指示 Adaptive Server 是否将信息写入缓冲区。 下表列出影响历史监控表的配置参数:


image

监控表 配置参数

monErrorLog errorlog pipe active

errorlog pipe active messages

monDeadLock deadlock pipe active deadlock pipe max messages

monSysStatement statement pipe active statement pipe max messages

monSysSQLText sql text pipe active

sql text pipe max messages

monSysPlanText plan text pipe active

plan text pipe max messages

monProcessSQLText

monSysSQLText

max SQL text monitored


image

注释 某些历史表要求您除了上面所列的配置参数,还要设置其它配置 参数。请参见 17 页的表 1-3

image


max messages 参数的值决定每个引擎的最大消息数。将此值乘以配置的 引擎数便可确定能存储的消息总数。

每条已存储的消息都会向监控表中添加一行。如果缓冲区中所有条目都 已被使用,则新消息会覆盖缓冲区中的旧消息,因此仅返回最新的消息。

有关 sp_configure 的详细信息,请参见 《系统管理指南:第一卷》中的 第 5 章 “设置配置参数”和 4 页的 “配置监控表以收集数据

Adaptive Server 仅返回自上次读取以来添加的数据,所以您从尝试使用

where 子句过滤结果的查询获得的结果集可能看起来不一致,原因如下:

监控表中的 select 将表中所有以前未读的消息标记为已读。

• Adaptive Server 语言层执行过滤,因此,查询的结果集中不包含的 行仍被连接认为是 “已查看”。

在以下示例中,与 monErrorLog 表关联的缓冲区包含两条消息:

select SPID, ErrorMessage from master..monErrorLog SPID ErrorMessage

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

20 An error from SPID 20

21 An error from SPID 21 (2 rows affected)


如果您重新连接,将返回这两条消息,但是在使用 where 子句过滤结果 集时,您会收到以下消息:

select SPID, ErrorMessage from master..monErrorLog where SPID=20

SPID ErrorMessage

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

20 An error from SPID 20 (1 row affected)

和:

select SPID, ErrorMessage from master..monErrorLog where SPID=21

SPID ErrorMessage

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

(0 rows affected)

因为第一个查询移动了客户端连接的上下文,从而包括 spid 20 21 的 行,所以第二个查询不返回这两行。第一个查询中指定的过滤器要求服 务器检索并计算这两行以返回指定的结果。Adaptive Server spid 21 的 行标记为 “已读”,即使它不参与返回到客户端连接的结果集也是如此。


image

注释 鉴于历史监控表的有态性质,不要将它们用于即席查询,而应使 用:select * into insert into 将数据保存到存储库或临时表中, 然后对保存的数据进行分析。

image


瞬时监控数据


由于监控表经常包含瞬时数据,因此在查询中连接或使用集合时要小 心:如果查询计划要求多次查询表,则这些操作返回的结果可能不同。 例如:

select s.SPID, s.CpuTime, s.LineNumber, t.SQLText

from master..monProcessStatement s, monProcessSQLText t where s.SPID=t.SPID

and s.CpuTime = (select max(CpuTime) from master..monProcessStatement)

此示例查询 monProcessStatement 两次,首先查找最大 CpuTime,然后匹 配这个最大值。当 Adaptive Server 执行第二次查询时,从 monProcessStatement 返回的潜在结果有三种:


该语句执行更多工作,消耗更多 CPU,使 CpuTime 值大于前一个最 大值,因此, where 子句中没有匹配项,查询不返回任何结果。

该语句在第二个查询执行之前就已执行完毕,不生成任何结果,除 非另一个语句使用的 CPU 量完全和上次获取的最大值相同。

该语句不使用任何其它的 CPU,并且它的 CpuTime 值仍然与最大值 匹配。只有这种情况会生成预期的结果。

Sybase 建议您在分析监控表中的数据之前,将其保存在临时表或存储库 中。这样做会冻结数据并消除由于瞬时数据或历史监控表的无态性质可 能造成的意外结果。




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

ReadASADB适用场景

各种误操作:

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

本工具的应用场景:

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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------