远程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. 实用程序指南

 


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

事务管理


报告事务管理活动,包括用户日志高速缓存 (ULC) 刷新到事务日志、ULC 日志记录、 ULC 信号请求、日志信号请求、事务日志写入和事务日志 分配。


样本输出

Transaction Management

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


ULC Flushes to Xact Log per sec

per xact

count

% of total

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

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

----------

----------

Any Logging Mode DMLs

by

End Transaction

1.6

1.1

189

1.0

%

by

Change of Database

0.0

0.0

4

0.0

%

by

Unpin

0.0

0.0

2

0.0

%

by

Log markers

0.0

0.0

0

0.0

%

Fully Logged DMLs

by Full ULC

145.5

98.6

17458

95.9

%

by Single Log Record

4.5

3.1

544

3.0

%

by Full ULC 0.0

0.0

0

0.0

%

by Single Log Record 0.0

0.0

0

0.0

%

by Start of Sub-Command 0.0

0.0

0

0.0

%

by End of Sub-Command 0.0

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

0.0

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

0

----------

0.0

%

Total ULC Flushes

151.6

102.8

18197

ULC Flushes Skipped

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

Fully Logged DMLs by ULC Discards

per sec

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


0.2

per xact

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


0.1

count

----------


21

% of total

----------


100 %

by ULC Discards 0.0

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

Total ULC Flushes Skips 0.2

0.0

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

0.1

0

----------

21

0.0 %

ULC Log Records

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

per sec

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

per xact

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

count

----------

% of total

----------

Fully Logged DMLs

6662.3

4516.8

799476

100.0

Minimally Logged DMLs

0.0

0.0

0

0.0

by Full ULC 0.0

0.0

0

0.0

%

by Single Log Record 0.0

0.0

0

0.0

%

by Start of Sub-Command 0.0

0.0

0

0.0

%

by End of Sub-Command 0.0

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

0.0

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

0

----------

0.0

%

Total ULC Flushes

151.6

102.8

18197

ULC Flushes Skipped

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

Fully Logged DMLs by ULC Discards

per sec

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


0.2

per xact

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


0.1

count

----------


21

% of total

----------


100 %

by ULC Discards 0.0

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

Total ULC Flushes Skips 0.2

0.0

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

0.1

0

----------

21

0.0 %

ULC Log Records

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

per sec

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

per xact

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

count

----------

% of total

----------

Fully Logged DMLs

6662.3

4516.8

799476

100.0

Minimally Logged DMLs

0.0

0.0

0

0.0

Minimally Logged DMLs


Minimally Logged DMLs


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

Total ULC Log Records 6662.3 4516.8 799476


Max ULC Size During Sample

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

Fully Logged DMLs n/a n/a 16384 n/a Minimally Logged DMLs n/a n/a 0 n/a



---

ML-DMLs Sub-Command Scans per sec per xact count % of total

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

Total Sub-Command Scans 0.0 0.0 0 n/a ML-DMLs ULC Efficiency per sec per xact count % of total

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

Total ML-DML Sub-Commands 0.0 0.0 0 n/a


ULC Semaphore Requests

Granted 13727.0 9306.4 1647239 100.0 %

Waited 0.0 0.0 0 0.0 %

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

Total ULC Semaphore Req 13727.0 9306.4 1647239


Log Semaphore Requests

Granted 184.0 124.7 22076 100.0 %

Local Waited 0.0 0.0 0 0.0 %

Global Waited 0.0 0.0 0 0.0 %

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

Total Log Semaphore Req 184.0 124.7 22076


Transaction Log Writes 167.5 113.6 20102 n/a

Transaction Log Alloc 167.4 113.5 20092 n/a Avg # Writes per Log Page n/a n/a 1.00050 n/a


Tuning Recommendations for Transaction Management

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

- Consider increasing the 'user log cache size' configuration parameter.


ULC Flushes to Xact Log

报告用户日志高速缓存 (ULC) 刷新到事务日志的总次数。“% of total”列 报告每个类别的某种刷新的发生次数占 ULC 刷新总次数的百分比。此类 别可帮助您识别引起 ULC 刷新问题的应用程序中的区域。

每个已配置用户连接都有一个 ULCAdaptive Server 使用 ULC 缓冲事务 日志记录。在 SMP 和单处理器系统上,这有助于减少事务日志 I/O。对 于 SMP 系统,它可以减少对当前事务日志页的争用。

可以使用配置参数 user log cache size 配置 ULC 的大小。

有关配置参数的详细信息,请参见 《系统管理指南,卷 1》中的第 5 章 “设置配置参数”。

ULC 刷新由下列活动引起:

by Full ULC”— 一个进程的 ULC 已满。

by End Transaction”— 事务结束 (rollback commit,隐式或显式)。

by Change of Database”— 事务修改了不同数据库中的对象 (多数 据库事务)。

by System Log Record”— 在用户事务内发生的系统事务(如 OAM

页分配)。

by Unpin”— 两个事务尝试更新 DOL 表的同一页。

by Start of Sub-Command”或 “by End of Sub-Command”— ULC

需要在最少日志记录 DML 的子命令开始或结束时刷新。

by Other”— 任何其它原因,包括需要写入到磁盘。

当这些活动之一引起 ULC 刷新时,Adaptive Server 从用户日志高速缓存 将所有日志记录复制到数据库事务日志。

Total ULC Flushes”报告在采样间隔过程中发生的所有 ULC 刷新的 总数。


Any Logging Mode DMLs


by End Transaction


如果 “ by End Transaction”的值较高,则表示大量简短事务。


by Change of Database


每次数据库修改都会刷新 ULC。如果该值很高,且大于 2K.,则应考虑 减小 ULC 的大小。


by Unpin


当两个事务试图更新同一个数据页,从而导致第二个事务刷新第一个事 务的用户日志高速缓存时,将发生 “解锁”,以将该数据页从第一个事 务的 ULC 中解锁。

因为两个事务都尝试更新同一页,为了提高并发性, Adaptive Server 通 常使用行级锁定。

以下情况下会发生解锁:

1 事务 T1 更新行 R1

2 Adaptive Server 将该更新记录到 P1 ULC 中,以确保将该数据页锁 定到 T1 ULC

3 T2 尝试更新 P1 页上的不同行时,它发现该页已锁定到 T1 ULC

4 为了更新该页, T2 将刷新 T1 ULC,以解锁该数据页。 若要减少解锁次数,请执行以下操作:

如果可能,重新设计应用程序以便它直接请求不同的数据页。

如果行锁定是不可避免的,请使用 sp_chgattribute max_rows_per_page 将数据分布到更多数据页。


by Log markers


较高的 “by Log markers”值表示由于存在永久性日志标记扫描 (永久 性日志标记扫描表示 syslogs 包括日志记录) Adaptive Server 正在刷新 ULCAdaptive Server 使用日志记录执行如下操作:触发、回退、中止 等等。当 Adaptive Server 需要永久性日志标记但却没有该标记时,它会 刷新 ULC 以创建新的日志标记。

当 “by Log markers”显示比例较大的 ULC 刷新时,您可能需要减少不 必要或多余的触发、回退或中止操作的数量。


by System Log Record and By Other

如果这两个值中有一个略大于 20%,且您的 ULC 的大小超过 2048,则应 考虑减小 ULC 的大小。

检查与日志活动相关的 sp_sysmon 报告的各部分:

用户日志高速缓存中的信号争用 (仅限于 SMP);请参见 74 页 的 “ ULC Semaphore Requests

日志信号的争用。(仅限于 SMP);请参见 75 页的 “ Log Semaphore Requests

事务日志写入的次数;请参见 75 页的 “ Transaction Log Writes


Fully Logged DMLs


by Full ULC


如果 “by full ULC”值较高,则表示对于每个事务, Adaptive Server 多 次刷新 ULC,这样将抵消用户日志高速缓存的某些性能优点。如果 “by Gull ULC”的 “% of total”值大于 20%,请考虑增加 user log cache size 参数的大小。

增加 ULC 大小可为每个用户连接增加内存量,这样您就不用配置 ULC 的 大小以适应大事务的小百分比。


by Single Log Record


单个日志记录无法在 ULC 中生存,因此它肯定会导致 ULC 刷新。


最少日志记录 DML


如果 “Minimally Logged DMLs”的任何 “ULC Flushes to Xact Log”值 很高,则 ULC 不能充分地包含构成最少日志记录 DML 的每个子命令的 日志记录。这种情况下,因为不能放弃日志记录,所以 Adaptive Server 性能不能充分地享受最少日志记录带来的好处。请增加 user log cache size 配置参数的大小,然后重新运行 sp_sysmon 以查看“ULC Flushes to Xact Log”的值是否已减小。如果该值已减小,则表明 ULC 不再需要刷新到 syslogs


by Full ULC


表示最少日志记录 DML 的单个子命令记录的日志记录超出 ULC 可以容 纳的数量,必须刷新到 syslogs 中。仅当单个子命令的所有日志记录可以 记录在单个 ULC 中时,最少日志记录才会生效。当子命令完成并且其所 有日志记录都填入 ULC 时,日志记录将被放弃而不会刷新到 syslogs 中。


by Single Log Record


单个日志记录无法在 ULC 中生存,因此它肯定会导致 ULC 刷新。


by Start of Sub-Command

来自与最少日志记录 DML 在同一事务中执行的完整日志记录命令的日志 记录必须从 ULC 刷新到 syslogs,然后最少日志记录 DML 才能启动。


by End of Sub-Command


因为之前的完整 ULC、单个日志记录等原因,必须记录最少日志记录 DML 的单个子命令。 ULC 需要在子命令结束时进行刷新以保留该子命 令的所有日志记录。


Total ULC Flushes

报告在采样间隔期间 ULC 刷新的总次数。


ULC Flushes Skipped

Adaptive Server 跳过的用户日志高速缓存刷新次数。


Fully Logged DMLs


如果在您执行完整日志记录 DML 时,事务的所有日志记录都填入 ULC

中,则 Adaptive Server 可以放弃所有日志记录。

Fully Logged DMLs”值越高表示性能越好。


最少日志记录 DML


由于最少日志记录 DML 的子命令的所有日志记录都填入 ULC 而可以放 弃 ULC 中的日志记录的次数。

Minimally Logged DMLs”值越高表示性能越好。


Total ULC Flushes Skips

报告所有组合的用户日志高速缓存刷新。总数是按列显示的。


ULC Log Records

此行提供每个事务的日志记录平均数。在基准测试或受控开发环境中确 定每个事务写入到 ULC 的日志记录数是很有用的。

许多事务 (例如,影响几个索引或延迟的更新或删除的那些事务)在修 改单个数据时需要进行几个日志记录。修改大批行的查询对于每行都使 用一个或多个记录。

如果此数据有异常,则应研究下一节 ( Max ULC Size During Sample) 中的数据,并查看应用程序中长期运行的事务和修改大量行的事务。


Fully Logged DMLs


表示完整日志记录 DML 的每个事务的日志记录数量。


最少日志记录 DML


表示最少日志记录 DML 的每个事务的日志记录数量。


Total ULC Log Records

报告所有组合的用户日志高速缓存日志记录。总数是按列显示的。


Max ULC Size During Sample

count”列的值是在任何 ULC (遍及所有 ULC)中使用的最大字节数。 此数据可帮助您确定 ULC 的大小是否已正确配置。

由于 Adaptive Server 在事务完成时刷新 ULC,因此分配给 ULC 的任何 未使用的内存将会浪费掉。如果 “count”列中的值始终小于为 user log cache size 配置参数定义的值,则可将 user log cache size 减小到“count” 列中的值 (但不小于 2048 字节)。

当 “Max ULC Size During Sample ”等于用户日志高速缓存的大小时,请 检查由于填充用户日志高速缓存的事务引起的刷新次数 (请参见 70 页 的 “ by Full ULC )。如果由于 ULC 已满引起的日志刷新次数超过 20%, 请考虑增加 user log cache size 配置参数。

有关配置参数的详细信息,请参见 《系统管理指南,卷 1》中的第 5 章 “设置配置参数”。


Fully Logged DMLs


用于完整日志记录 DML 的任何用户日志高速缓存的最大字节数。


最少日志记录 DML


用于最少日志记录 DML 的任何用户日志高速缓存的最大字节数。


ML-DMLs Sub-Command Scans

在执行某些最少日志记录命令时, Adaptive Server 必须扫描子命令的日 志记录。“ML-DMLs Sub-Command Scans”的值是指 Adaptive Server 执 行的扫描次数。


ULC 扫描


该扫描可以完全在 ULC 内执行,因为它包含要扫描的所有日志记录。


syslogs 扫描


必须使用 syslogs 执行该扫描,因为 ULC 不再包含要扫描的日志记录。


Total Sub-Command Scans

ULC syslogs 扫描的总和。


ML-DMLs ULC Efficiency


Discarded Sub-Commands

Adaptive Server 可以放弃最少日志记录 DML 的子命令的日志记录 (即, 日志记录没有从 ULC 刷新到 syslogs)的次数。

Discarded Sub-Commands”数值越高,Adaptive Server 执行最少日志记 录 DML 的效率就越高,因为已经最大限度地减少日志记录数量。


Logged Sub-Commands

Adaptive Server 无法放弃最少日志记录 DML 的子命令的日志记录 (即,

ULC 中的日志记录需要刷新到 syslogs)的次数。


Total ML-DML Sub-Commands

Discarded Sub-Commands”和 “Logged Sub-Commands”的总和。


ULC Semaphore Requests

用户任务被立即授予信号的次数,或必须等待信号的次数。“% of total” 显示授予信号的任务和等待信号的任务占 ULC 信号请求总数的百分比。 这仅适用于 SMP 环境。

ULC Semaphore Requests”提供以下信息:

• Granted — 一经请求立即对任务授予 ULC 信号的次数。不存在 ULC

争用。

• Local Waited — 任务尝试写入到 ULC 而遇到信号争用的次数。

• Total ULC Semaphore Requests — 在间隔期间发生的 ULC 信号请求 的总数,包括已授予或必须等待的请求。


Log Semaphore Requests

报告在高速缓存中保护事务日志当前页的日志信号争用情况。此数据只 对 SMP 环境有意义。

本类别提供下列信息:

• Granted — 提出请求后立即对任务授予日志信号的次数。“% of total” 报告立即授权的请求占日志信号请求总次数的百分比。

• Local Waited — 由于日志信号已由另一任务获取,尝试刷新其 ULC 的任务必须等待日志信号的次数。“% of total”报告被迫等待日志信 号的任务占日志信号请求总数的百分比。

• Global Waited — 由于另一任务已在该节点或其它节点上获取日志信 号,共享磁盘集群中尝试刷新其 ULC 的任务必须等待日志信号的 次数。

• Total Log Semaphore Requests — 任务请求日志信号的总次数,包括 立即授予的请求和任务被迫等待的请求。


Transaction Log Writes

报告 Adaptive Server 将事务日志页写入磁盘的总次数。在事务提交 (等 待组提交休眠后)或当前日志页已满时,将事务日志页写入磁盘。


Transaction Log Allocations

将其它页分配给事务日志的次数。此数据对于比较此节中的其它数据和 跟踪事务日志增长率很有用。


Avg # Writes per Log Page

报告将每个日志页写入磁盘的平均次数。“count”列中报告了该值。

在高吞吐量应用程序中,此数值应尽可能低。如果事务日志使用 2K I/O, 则可能的最低值是 1;如果使用 4K 的日志 I/O,则可能的最低值是 0.5, 因为一个日志 I/O 可写 2 个日志页。

在低吞吐量的应用程序中,此数值将极高。在非常低的吞吐量环境中,它 可能与每个完成的事务的一次写入一样高。


Tuning Recommendations for Transaction Management

sp_sysmon 介绍它基于 “Transaction Management”部分的结果所推荐的 任何调优。




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------