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

 


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

检查数据库和表的一致性

检查数据库和表一致性的 dbcc 命令有:

dbcc checkstorage

dbcc checktable

dbcc checkdb


dbcc checkstorage


使用 dbcc checkstorage 可以检查:

文本值列的分配

页分配和一致性

• OAM 页条目

每个分区都存在一个 OAM

指针一致性

文本值列和文本列链

dbcc checkstorage 对磁盘上的数据库运行检查。如果损坏仅在内存中, dbcc checkstorage 可能检测不到损坏。为确保两次 dbcc checkstorage 运 行的一致性,请在运行 dbcc checkstorage 之前执行 checkpoint。但是, 这样做可能会使瞬时内存损坏成为磁盘损坏。


使用 dbcc checkstorage 的优点

dbcc checkstorage

组合了其它 dbcc 命令提供的许多检查

不会长时间锁定表或页,这样可在进行并发更新活动的同时使 用 dbcc 准确定位错误

随总 I/O 吞吐量线性缩放


将检查和报告功能分开,允许自定义评估和报告生成

提供目标数据库中空间使用情况的详细说明

dbccdb 数据库中记录 dbcc checkstorage 活动和结果,从而可 进行趋势分析并提供正确诊断信息源


比较 dbcc checkstorage 和其它 dbcc 命令

dbcc checkstorage 与其它 dbcc 命令有所不同,原因在于:

它需要 dbccdb 数据库来存储配置信息以及目标数据库上执行的 检查的结果。但您可从任意数据库中运行 dbcc checkstorage

执行检查操作时,需使用至少两个工作空间。请参见《参考手 册:表》中的“dbccdb 表”。

它需要系统和存储过程来帮助准备系统,以便使用 dbcc checkstorage 并生成有关 dbccdb 中存储的数据的报告。

dbcc checkstorage 不修复任何故障。运行 dbcc checkstorage 并生成报 告以查看故障后,可运行相应的 dbcc 命令修复这些故障。


了解 dbcc checkstorage 操作

dbcc checkstorage 操作包括以下步骤:

1 检查 — dbcc checkstorage 使用正被检查的数据库的设备分配和 段定义以及 max worker processing named cache 配置参数,来 确定可使用的并行处理的级别。dbcc checkstorage 还使用配置参 数 max worker processes dbcc named cache 来限制可使用的并行 处理的级别。

2 计划 — dbcc checkstorage 将生成一个计划,以执行利用步骤 1

中所确定的并行度的操作。

3 执行和优化 — dbcc checkstorage 使用 Adaptive Server 工作进程 对目标数据库执行并行检查和存储分析。它尝试对每个工作进 程执行的工作量平均分配,并汇总未充分利用的工作进程的作。 随着检查操作的继续,dbcc checkstorage 将扩展并调整步骤 2 中 生成的计划,以利用检查期间收集到的其它信息。


4 报告和控制 — 在检查期间,dbcc checkstorage dbccdb 数据库 中记录它在目标数据库中发现的所有故障,以供日后进行报告 和评估。它还在 dbccdb 中记录存储分析的结果。dbcc checkstorage 在遇到故障时将试图恢复并继续操作,但如果故障发生后无法 恢复,则终止该操作。例如,损坏的磁盘不会导致 dbcc checkstorage 失败;但由于在损坏的磁盘上无法成功执行检查操 作,所以不执行这些操作。

如果同时还有另一个会话在执行 drop table,则在初始化阶段 dbcc checkstorage 可能会失败。如果发生了这种情况,则应在删 除表进程完成后再次运行 dbcc checkstorage


image

注释 有关 dbcc checkstorage 错误消息的信息,请参见《故障排 除和错误消息指南》。

image


性能和可伸缩性


dbcc checkstorage 随总 I/O 吞吐量线性缩放,以便大大改善 dbcc checkalloc 的性能。dbcc checkstorage 的缩放属性意味着,如果数据 库的大小增长了一倍,硬件的容量(可实现的 I/O 吞吐量)也增长 了一倍,dbcc 检查所需的时间将保持不变。使容量加倍通常意味着 使盘轴的数目加倍,并提供足够的额外 I/O 通道容量、系统总线容 量和 CPU 容量以实现额外的总盘吞吐量。

使用 dbcc checkalloc dbcc checkdb 执行的大多数检查操作(包括文 本列链检验)通过 dbcc checkstorage 检查一次即可完成,从而避免 了多余的检查操作。

dbcc checkstorage 检查整个数据库(包括未使用的页面),所以执 行时间与数据库大小相关。故而使用 dbcc checkstorage 时,检查几 乎为空的数据库与检查几乎已满的数据库的区别不大,这与使用其 它 dbcc 命令时的情况是一样的。

与其它 dbcc 命令不同的是,数据的放置对 dbcc checkstorage 性能的 影响很小。因此,每个会话的性能是一致的,即使不同会话间数据 的放置有所不同。

因为 dbcc checkstorage 进行额外的工作来设置并行操作并在 dbccdb 中记录大量数据,所以当目标数据库很小时,其它 dbcc 命令的执行 速度会更快。

dbcc checkstorage 使用的工作空间的位置及分配的空间大小将会影 响性能和可伸缩性。请参见《参考手册:表》中的“dbccdb 表”。


若要使用单个命令来运行 dbcc checkstorage 和一个用于生成报告的 系统过程,请使用 sp_dbcc_runcheck


dbcc checktable


dbcc checktable 检查指定的表以查看:

索引与数据页链接应该正确

索引排序应该正确

指针应该一致

所有索引和数据分区链接应该正确

每页上的数据行在行偏移表中应有相应的条目;这些条目与数 据行在页中的位置匹配

已分区表的分区统计信息应该正确无误

skip_ncindex 选项允许跳过对非聚簇索引上的页链接、指针和排序顺 序的检查。聚簇索引和数据页的链接和指针对于表的完整性至关重 要。如果 Adaptive Server 报告出页链接或指针存在问题,则可删除 并重新创建非聚簇索引。

partition_name 是要检查的分区的名称(由于表可以跨多个分区,因 此该分区可能包含也可能不包含整个表);partition_id 是要检查的 分区的 ID

如果指定 partition_name partition_id,则 dbcc checktable 仅检查位 于此分区上的表或表的部分;它无法将检查扩展到其它分区,并受 以下限制:

如果表由多个分区组成,则仅限于对本地索引进行索引处理。

如果指定 partition_name partition_id 参数,还必须指定第二 个参数(skip_ncindex fix_spacebits)或空值。以下示例指定了 空值:

dbcc checkalloc(titles, null, 560001995)

如果某个表(其中包含用 char varchar 数据类型定义的列)的 排序顺序或字符集不正确,dbcc checktable 不会纠正这些值。必 须对整个表运行 dbcc checktable 才能纠正这些错误。


如果某个索引由于排序顺序发生更改而被标记为“只读”,则 dbcc checktable 不会清除 O_READONLY 位(它位于该表的 sysobjects 条目的 sysstat 字段中)。若要清除此状态位,请对整 个表运行 dbcc checktable

如果对 syslogs 运行 dbcc checktable,则 dbcc checktable 不会报告 空间使用情况(可用空间与已用空间)。但是,如果不指定 partition_name partition_id 参数,则 dbcc checktable 会报告空 间使用情况。

checkstorage 返回故障代码 100035 而且 checkverify 确认空白位错误 是硬故障时,可使用 dbcc checktable 来修复所报告的故障。

下面的命令检查位于 smallsales 分区(其中包含低于 5000 的所有书 籍销售额)的部分 titles 表:

dbcc checktable(titles, NULL, "smallsales")

Checking partition 'smallsales' (partition ID 1120003990) of table 'titles'. The logical page size of this table is 8192 bytes.The total number of data pages in partition 'smallsales' (partition ID 1120003990) is 1.

Partition 'smallsales' (partition ID 1120003990) has 14 data rows.

DBCC execution completed.If DBCC printed error messages, contact a user with System Administrator (SA) role.

您可将 dbcc checktable 与表名或表的对象 ID 一同使用。sysobjects 表 在 name id 列中存储此信息。

下面的示例显示了一个未损坏表的报告:


dbcc checktable(titles)

Checking table 'titles' (object ID 576002052):Logical page size is 8192 bytes. The total number of data pages in partition 'titleidind_576002052' (partition ID 576002052) is 1.

The total number of data pages in this table is 1. Table has 18 data rows.

DBCC execution completed.If DBCC printed error messages, contact a user with System Administrator (SA) role.

要检查不在当前数据库中的表,应提供数据库名。若要检查另一对 象拥有的表,应提供所有者的名称。必须给限定的表名加上引号。 例如:

dbcc checktable("pubs2.newuser.testtable")


dbcc checktable 可解决以下问题:

如果页链接有误,dbcc checktable 将显示一则错误消息。

如果其列具有 char varchar 数据类型的表的排序顺序 ( sysindexes.soid ) 或字符集 ( sysindexes.csid ) 有误,但该表的排序 顺序与 Adaptive Server 的缺省排序顺序兼容,则 dbcc checktable 将改正该表的值。只有二进制的排序顺序可跨字符集兼容。


image

注释 如果更改排序顺序,基于字符的用户索引将带有“只读” 标记,并且在必要时,必须检查和重建这些用户索引。

image


如果数据行未在对象的第一个 OAM 页中说明,则 dbcc checktable 将更新该页上的行数。这个问题不严重。在 sp_spaceused 等过 程中,内置函数 row_count 使用此值快速地对行数进行估计。

通过使用功能增强的页面读取,可提高 dbcc checktable 的性能。

dbcc checkindex dbcc checkindex 运行的检查与 dbcc checktable 的相同,只不过它仅对 特定的索引而不是整个表运行检查。

partition_name 是要检查的分区的名称,partition_id 是要检查的分区 的 IDbottom_up 指定 checkindex 从索引的叶开始自下而上进行检查。 bottom_up 仅适用于仅数据锁定表。如果对 checkindex checktable 指定此选项,则索引检查会以自下而上的方式进行。


dbcc checkdb


在指定数据库中的每个表上, dbcc checkdb 会运行与 dbcc checktable 相同的检查。如果不指定数据库名,dbcc checkdb 将检查当前数据 库。dbcc checkdb 将生成与 dbcc checktable 返回的消息类似的消息, 并进行相同类型的改正。

如果指定了可选的 skip_ncindex,则 dbcc checkdb 不会检查数据库中 用户表上的任何非聚簇索引。

如果数据库扩展到一系列分区,dbcc checkdb 会在每个分区上执行 其检查。




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