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

 


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

最少日志记录 DML

在执行最少日志记录 DML 的过程中, insertupdatedelete 和慢速 bcp-in 命令在执行时只进行最少量的日志记录或不做日志记录。如果语 句失败 (例如,由于发生内部错误或用户发出回退指令),则已经完成 的那部分工作仍将提交,而不会回退。但是,在针对最少日志记录 DML 进行配置后, Adaptive Server 必须保持已更改的表的逻辑一致性

(例如,回退数据行插入操作必须导致相关索引行的回退)。为了确保 此一致性,将最少日志记录 DML 命令划分为多个名为子命令的基本单 元操作,它们全都是执行单个行更改所需的数据更改,包括对索引以及 任何文本、图像或行外列的更改。为了在子命令级保持逻辑一致性, Adaptive Server 在用户日志高速缓存 (ULC) 中记录了最少日志记录 DML 命令。在子命令完成后,Adaptive Server 立刻从 ULC 中放弃该子命令的 日志记录,因而无需将 ULC 刷新到 syslogs

如果 ULC 不够大,无法包含所有子命令的日志记录,则 Adaptive Server 可能无法放弃日志记录。如果受到 DML 影响的数据行非常大,或者表 包含很多索引,则通常会发生这种情况。如果 Adaptive Server 无法放弃 ULC,则会将 ULC 日志记录刷新到 syslogs,而这会产生下列后果:

增加忙碌系统中的日志争用

减小事务吞吐量

增加所需的日志空间量,从而抵消了使用最少日志记录 DML 所获 得的所有好处

请确保 ULC 足够大,以包含大多数子命令的日志记录。 Sybase 建议您 的 ULC 的大小为缺省服务器页大小的两倍:

declare @ulc_size int

select @ulc_size = @@maxpagesize * 2

exec sp_configure "user log cache size", @ulc_size


对于已经显式设置持久性的内存临时数据库或宽松持久性临时数据库, 可通过创建大小为服务器逻辑页大小两倍的、特定于会话 tempdb ULC,来提高最少日志记录功能的效率并避免向 syslogs 进行 ULC 刷新:

declare @ulc_size int

select @ulc_size = @@maxpagesize * 2

exec sp_configure "session tempdb log cache size", @ulc_size

通常,上述脚本可对 ULC 的大小进行相应的配置,以使其能够将一条 子命令进行的所有更改全部包含在内存中,并在并发 DML 性能方面产 生重大改进。

更改 ULC 大小需要您重新启动 Adaptive Server

若要确定最少记录功能是否有效,请查看 sp_sysmon 输出的 Transaction Management 部分。

以下示例显示了有效的最少日志记录 DML,原因是 Adaptive Server 放 弃了从子命令生成的大多数日志记录:

ML-DMLs ULC Efficiency

per sec

per xact

count

% of total

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

-------

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

----------

----------

Discarded Sub-Commands

33383.9

11087.8

3071323

100.0

Logged Sub-Commands

0.4

0.1

37

0.0

Transaction Detail 部分概括了对于指定示例,以完全日志记录模式和 最少日志记录模式执行 DML 命令的对比情况。在此输出中,Adaptive Server 以最少日志记录模式对一个仅数据锁定表执行了几乎所有插入 操作:

Transaction Detail

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

Inserts

per sec

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

per xact

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

count

-------

% of total

----------

Fully Logged

APL Heap Table

57.8

173.5

694

0.7

%

APL Clustered Table

0.0

0.0

0

0.0

%

Data Only Lock Table

0.7

2.0

8

0.0

%

Fast Bulk Insert Minimally Logged

APL Heap Table

0.0


0.0

0.0


0.0

0


0

0.0


0.0

%


%

APL Clustered Table

0.0

0.0

0

0.0

%

Data Only Lock Table 7775.8 23327.5 93310 99.3 %


Transaction Management 部分提供了有关 Adaptive Server 如何记录子命令 而不是放弃它们的详细信息。下面的输出说明了导致向事务日志进行 ULC 刷新的事件,同时也说明了由完全日志记录 DML 和最少日志记录 DML 导致的 ULC 刷新中止。对于 Minimally Logged DML 部分,由 Full ULC 和子命令结束导致的刷新操作数几乎相等:

ULC Flushes to Xact Log

per sec

per xact

count

% of total

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

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

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

-------

----------

Any Logging Mode DMLs

by End Transaction

0.3

1.0

4

11.1 %

by Change of Database

0.0

0.0

0

0.0 %

by Unpin

0.0

0.0

0

0.0 %

by Other

0.0

0.0

0

0.0 %


Fully Logged DMLs

by Full ULC

0.2

0.5

2

5.6 %

by Single Log Record

0.0

0.0

0

0.0 %

by

Full ULC

1.3

4.0

16

44.4

%

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

1.2

3.5

14

38.9

%

by

Full ULC

1.3

4.0

16

44.4

%

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

1.2

3.5

14

38.9

%

Minimally Logged DMLs


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

Total ULC Flushes 3.0 9.0 36

如果 ULC Flushes to Xact Log Minimally Logged DMLs by Full ULC 部分中的 count 列的值比受影响的行数大,请增大 user log cache session tempdb log cache size 配置参数的值。

下面的输出表明了最少日志记录命令的 ULC 操作的效率:系统只引起 由最少日志记录功能产生的少量日志记录开销,原因是几乎所有日志记 录活动都完全包含在 ULC 中,并且几乎没有向 syslogs 进行刷新。

ML-DMLs ULC Efficiency per sec per xact count % of total

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

Discarded Sub-Commands 7774.7 23324.0 93296 100.0

Logged Sub-Commands 1.2 3.5 14 0.0

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

Total ML-DML Sub-Commands 7775.8 23327.5 93310




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