远程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 使用事务来跟踪数据库的所有变化。事务是 Adaptive Server 的工作单元。一个事务包括一个或多个作为一个单元成功或 失败的 Transact-SQL 语句。

每条修改数据的 SQL 语句都被视为一个事务。通过将一系列语句放 在 begin transaction...end transaction 块中,用户也可以定义事务。请参 见 《Transact-SQL 用户指南》中的第 18 章 “事务:维护数据一致性 和恢复”。

每个数据库都拥有自己的 事务日志,即系统表 syslogs。事务日志自 动记录每个数据库用户发出的每个事务。不能关闭事务记录。

事务日志是前写式日志。当用户发出要修改数据库的语句时, Adaptive Server 将这些更改写入日志中。在这条语句要做的所有更 改都已记录在日志中后,这些更改将被写入到数据页的高速缓存副 本中。此数据页将一直保留在高速缓存中,直到另一数据库页需要 内存为止。那时,已更改的数据页才写入磁盘中。

如果事务中任何语句未能完成执行, Adaptive Server 将撤消由该事 务所引起的所有更改。 Adaptive Server 在每个事务结束时将一条 “end transaction”记录写入日志,记录该事务的状态 (成功或失败)。


获取有关事务日志的信息

事务日志包含有关每个事务的足够信息,以确保其可以恢复。使用 dump transaction 命令将事务日志所包含的信息复制到磁带或磁盘。 使用 sp_spaceused syslogs 检查日志的大小,或使用 sp_helpsegment logsegment 检查可用于日志增长的空间。


image

警告! 不要使用 insertupdate delete 命令修改 syslogs

image


使用 delayed_commit 确定提交日志记录的时间

必须有一个关系数据库才能确保多个事务属性,包括原子性、一致 性、完整性和持久性 (也称作 ACID 属性)。若要确保这一点, Adaptive Server 应符合以下规则,即:

将所有操作写入事务日志。

在修改数据或索引页之前写入日志记录。


在发出事务的 commit 时将日志页写至磁盘中。

仅当 Adaptive Server 收到通知并且通知指示已成功地从基本操 作系统和 I/O 子系统写入到磁盘后,才通知客户端应用程序已 经成功地进行了 commit

set delayed_commit 是一个仅适用于特定应用程序的性能选项。它提 高 Adaptive Server 执行数据操作语言 (DML) 操作 (例如, insertupdatedelete)的性能,但也增加了在系统出现故障期间丢失数据 的风险。性能的改善取决于所使用的应用程序。

可从 set delayed_commit 受益的应用程序类型通常包括以串行方式快 速发送到 Adaptive Server 的短事务。例如发出多个 insert 语句的批处 理应用程序,其中每个 insert 都是一个独立的事务。

使用 set 命令为会话启用 delayed_commit 或为数据库将 set 命令与

sp_dboption 配合使用。

启用 set delayed_commit 后,在相应的日志记录写入磁盘之前,会通 知客户端应用程序已成功地执行了 commit。这之所以会提高性能, 是因为日志中除最后一页之外的所有页都会被写至磁盘中,从而缓 解对最后一个活动日志页的争用。

在启用 set delayed_commit 之前,请考虑:

发出 shudown with nowait 可导致数据持久性问题,但如果发出在 服务器关闭之前完成的 checkpoint 则例外。

为会话启用 set delayed_commit 仅会影响该会话。所有其它会话 的事务均强制实施其所有属性,包括 ACID 属性。这还意味着, 其它会话的物理日志会写入最后一个日志页以及与启用 set delayed_commit 的会话相对应的日志记录。

set delayed_commit 在临时数据库上是冗余的,不会提供性能改善。

只有在认真考虑应用程序和操作要求以及环境后,才能使用 set delayed_commit。虽然降低数据持久性的危险性非常低,但如果 您的数据库很大,而且对丢失数据的容错能力很低,则使用恢 复选项可能会很费时间。

日志行为的更改 下面是启用 delayed_commit 时会出现的日志行为的更改。 会话隐式或显式提交事务时:

用户日志高速缓存 (ULC) 刷新到内存中的事务日志。

任务对所有非写入日志页发出写操作,但最后一个日志页 (其 中包含 commit)除外。


该任务会通知客户端应用程序已成功地执行了 commit,而不必 等待 I/O 完成。


image

注释 将由以下项写入此事务的 “最后一个日志页”:

由另一个事务在它不再是 “最后一个日志页”时写入。

在完成时由另一个非延迟事务写入。

通过 checkpoint 或管家缓冲区清洗机制写入。

由隐式检查点原因 (例如, shutdowndump databasedump tran sp_dboption truncate log on checkpoint)写入。

image



使用 delayed_commit 的危 险性

任务随时可以继续进行下一个事务。

set delayed_commit 处于启用状态时, Adaptive Server 会在实际物 理磁盘写入完成之前通知客户端应用程序。因此,该应用程序会认 为事务已经完成,无论物理磁盘写入是否成功都是如此。如果系统 出现故障 (磁盘错误、系统崩溃,等等),则在恢复之后,未写至 磁盘的事务 (其 commit 记录位于最后一个日志页上的事务)将会 消失,无论是否已通知应用程序已成功提交这些事务都是如此。

要求紧密系统相关性的系统 (如通过一个使用实时数据服务 (RTDS) 的消息传送系统)会使 set delayed_commit 的使用结果进一 步复杂化。

在以下两种情况下,应用程序可以管理风险:

应用程序维护它自己的跟踪或日志,并且在系统出现故障之 后,确保数据库状态与它自己的跟踪或日志相对应。

您可以将数据库恢复到运行应用程序之前所处的状态。它假定 您在运行批处理作业类型的应用程序之前进行了完整的数据库 备份。如果出现故障,则会装载数据库备份并重新启动批处理 作业。

启用 set delayed_commit 您可以为数据库或会话启用 set delayed_commit,并用会话设置覆盖

数据库设置。这意味着不管数据库设置情况如何,启用该选项的会 话必然会启用 delayed_commit


指定备份的职责


许多组织都有一位执行所有备份和恢复操作的操作员。只有系统管 理员、数据库所有者或操作员才可以执行 dump load 命令。数据 库所有者只能转储自己的数据库。操作员和系统管理员可以转储和 装载任何数据库。

请参见 315 页的 “使用 Backup Server 执行备份和恢复”




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