远程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:

以下官方手册为SAP IQ 16.0 SP03中文版:

  1. SAP Sybase IQ 简介
  2. 新功能摘要
  3. IQ 发行公告(linux)
  4. IQ 快速入门(unix)
  5. 安装和配置指南(linux)
  6. 管理:备份、恢复和数据恢复
  7. 管理:数据库
  8. SAP Sybase IQ 错误消息
  9. 管理:全球化
  10. IQ 许可选项指南
  11. 管理:装载管理
  12. IQ 迁移
  13. 管理:Multiplex
  14. 性能和调优指南
  15. IQ 编程
  16. 参考:构件块、表和过程
  17. 参考:语句和选项
  18. 管理:内存行级版本控制
  19. 管理:空间数据
  20. IQ 非结构化数据分析
  21. 用户定义的函数
  22. 管理:用户管理和安全
  23. 实用程序指南

 


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

sp_iqcheckdb 过程

检查当前数据库的有效性。(可选)更正 dbspace 或数据库的分配问题。如果分区数 据存在于脱机 dbspace 上,则 sp_iqcheckdb 不检查分区表。

sp_iqcheckdb 读取数据库中的所有存储。成功完成后,系统将更新数据库空闲列表

(内部分配映射),以反映数据库的真实存储分配情况。然后,sp_iqcheckdb 生成一 个报告,列出它已经执行的操作。

如果发现错误,则 sp_iqcheckdb 会报告对象的名称和错误的类型。如果检测到错误, sp_iqcheckdb 不会更新空闲列表。

使用 sp_iqcheckdb 还可以检查指定的表、索引、索引类型或整个数据库的一致性。

image

注意: sp_iqcheckdb SAP Sybase IQ 数据库一致性检查程序 (DBCC) 的用户界面, 有时称为 DBCC

image

备份参考


语法

image

sp_iqcheckdb 'mode target [ ] [ resources resource-percent ]'


mode:

{ allocation

| check

| verify }

| dropleaks


target:

[ indextype index-type [] ] database

| database resetclocks

| { [ indextype index-type ] [] table table-name [ partition partition- name ] []

| index index-name

| [] dbspace dbspace-name}

| cache main-cache-name

有三种检查数据库一致性的模式,以及一种重置分配映射的模式。如果参数字符串中 既没有指定模式也没有指定目标,则 SAP Sybase IQ 会返回错误消息:

image

At least one mode and target must be specified to DBCC.


参数

数据库 – 如果目标是数据库,则所有 dbspace 都必须处于联机状态。

index-type – 以下索引类型之一: FP, CMP, LF, HG, HNG, WD, DATE, TIME, DTTM, TEXT.

如果指定的 index-type 在目标中不存在,则返回错误消息。如果指定多个索引类 型,并且目标仅包含这些索引类型中的一部分,则 sp_iqcheckdb 将处理现有索引 类型。

index-name – 可能包含所有者和表限定符: [[owner.]table-name.]index- name

如果未指定 owner,则系统将以该顺序替代当前用户及数据库所有者 ( dbo )。如果 未指定 table,则 index-name 必须唯一。

table-name – 可能包含所有者限定符: [owner.]table-name

如果未指定 owner,则系统将以该顺序替代当前用户及数据库所有者 ( dbo )table- name 不能是临时表或预连接表。

image

注意: 如果表名称或索引名称包含空格,请将 table-name index-name 参数用 双引号引起来:

image

sp_iqcheckdb 'check index "dbo.sstab.i2" resources 75'

image

partition-name partition-name 参数不包含限定符。如果它包含空格,请将其放 在双引号内。

备份参考


分区过滤器会使 sp_iqcheckdb 检查属于该分区的相应表行的子集。当表只有一个 分区时,表中的分区过滤器和没有分区过滤器的表目标在语义上是等同的。

dbspace-name dbspace-name 参数不包含限定符。如果它包含空格,请将其放在 双引号内。

dbspace 目标检查属于该 dbspace 的数据库页的子集。dbspace 必须联机。当表只 有一个 dbspace 时,dbspace 和数据库目标在语义上是等同的。

resource-percent – 输入参数 resource-percent 必须为大于零的整数。通过控制相 对于 CPU 数的线程数,资源百分比可用来限制数据库一致性检查程序的 CPU 利 用率。如果 resource-percent = 100(缺省值),则为每个 CPU 创建一个线程。如果 resource-percent > 100,则有比 CPU 数更多的线程,对于某些计算机配置,这可 能会提高性能。线程数的最小值为 1

main-cache-name – 高速缓存目标将主高速缓存 dbspace 中的页面与 IQ 主存储库 中的原始页面进行比较。

image

注意: sp_iqcheckdb 参数字符串必须用单引号引起来,并且长度不能超过 255 字节。 分配问题可以在沙漏模式下进行修复。

image


适用于

Simplex Multiplex


特权

您必须具有系统过程的 EXECUTE 特权,以及 ALTER DATABASE 系统特权。


注释

sp_iqcheckdb 检查数据库中每个块的分配情况,并在当前会话中保存该信息,直至发 出下一个 sp_iqdbstatistics 过程。sp_iqdbstatistics 显示最近一次执行 sp_iqcheckdb 的最新结果。

sp_iqcheckdb 可以执行几种不同的功能,具体取决于指定的参数。

image

备份参考


模 式

描述

分配

根据整个数据库、特定索引、特定索引类型、特定分区、特定表或特定 dbspace 的块

映射信息检查分配情况。不检查索引一致性。

检测重复块(两个或多个对象声明对其的所有权的块)或额外块(对象所拥有的未分

配块)。

检测数据库或 dbspace 目标的泄漏块(在指定目标中任何对象都未声明的已分配块)。

当目标为分区表时,allocation mode 为:

检查所有表分区分配位图的元数据

检查表分配位图的元数据

验证块映射条目与表的分配位图是否一致

验证表的分区分配位图没有重叠

检查在表的分区分配位图中定义的行是否构成表的存在位图的超集

检查在表的分区分配位图中定义的行是否构成表的分配位图的超集

验证主高速缓存页与 IQ 主存储库页是否一致。

image

注意: 如果在输入参数字符串中指定单个索引、索引类型或表的名称,则 sp_iqcheckdb

不能检查所有分配问题。

image

以分配模式运行:

检测重复块或无主块(使用数据库或特定表或索引作为目标)

如果遇到页头错误

DBCC 选项 resetclocks 仅用于分配模式。resetclocks 与强制恢复一起使用,以将

Multiplex 辅助服务器转换成协调器。有关 Multiplex 功能的信息,请参见《管理:

Multiplex》。一旦内部数据库版本控制时钟落后,resetclocks 将更正这些时钟的值。

除非咨询过 SAP Sybase IQ 技术支持,否则请勿将 resetclocks 选项用于任何其它目

的。

resetclocks 选项必须在单用户模式下运行,并且只能与 DBCC 语句 allocation database

一起使用。resetclocks 的语法为:

sp_iqcheckdb 'allocation database resetclocks'

检查

验证可以读取整个数据库、主高速缓存、特定索引、特定索引类型、特定表、特定分

区或特定 dbspace 的所有数据库页。如果表已分区,则检查模式将检查表的分区分配

位图。

如果在运行查询时返回元数据、空计数或非重复计数错误,则会在检查模式下运行。

备份参考


模 式

描述

验证

验证整个数据库、主高速缓存、特定索引、特定索引类型、特定表、特定分区或特定

dbspace 的非 FP 索引及其相应 FP 索引的内容。如果指定的目标包含 FP 及相应的非 FP

索引的所有数据页,则验证模式会检测以下不一致问题:

缺少键 – 某键在 FP 中,但不在非 FP 索引中。

额外键 – 某键在非 FP 索引中,但不在 FP 索引中。

缺少行 – 某行在 FP 中,但不在非 FP 索引中。

额外行 – 某行在非 FP 索引中,但不在 FP 索引中。

如果指定的目标仅包含 FP 页的一个子集,则验证模式仅可以检测以下不一致问题:

缺少键

缺少行

如果目标是分区表,则验证模式还将验证是否已将表或表分区中的每一行分配给正确

的分区。

如果在运行查询时返回元数据、空计数或非重复计数错误,则会在验证模式下运行。

image

注意: sp_iqcheckdb 不检查参照完整性或修复参照完整性违规。

image

沙漏

SAP Sybase IQ 服务器以单节点模式运行时,您可以将沙漏模式与数据库或 dbspace 目标结合使用,以重置整个数据库或指定 dbspace 目标的分配映射。如果目标是 dbspace,则沙漏操作还必须阻止对已命名 dbspace 的读写操作。数据库或 dbspace 列 表中的所有 dbspace 都必须处于联机状态。

Multiplex 协调器节点上,沙漏模式还检测整个 Multiplex 中的泄漏块、重复块或额 外块。


DBCC 性能:

DBCC 的执行时间根据进行全面数据库检查的数据库的大小、指定的表或索引的数目 以及计算机的大小而有所不同。如果仅检查数据库的子集(即仅检查指定的表、索引 或索引类型),则需要的时间要比检查整个数据库少。

sp_iqcheckdb 沙漏模式的处理时间取决于 dbspace 目标数。 下表总结了四种 sp_iqcheckdb 模式的操作和输出。

14. sp_iqcheckdb 模式的操作和输出


模式

检测到的错误

输出

速度

分配

分配错误

仅限分配统计信息

每小时 4 TB

备份参考


模式

检测到的错误

输出

速度

检查

分配错误 大部分索引错误

所有可用统计信息

每小时 60GB

验证

分配错误 所有索引错误

所有可用统计信息

每小时 15 GB

沙漏

分配错误

仅限分配统计信息

每小时 4 TB


输出:

根据执行模式,sp_iqcheckdb 的输出包括摘要结果、错误、信息性统计信息和修复统 计信息。如果在单个会话中指定多个模式,则输出最多可能包含三个结果集。错误统 计信息用星号 (*****) 表示,并且仅当检测到错误时才会显示。

sp_iqcheckdb 的输出也将被复制到 SAP Sybase IQ 消息文件 .iqmsg。如果 DBCC_LOG_PROGRESS 选项是 ON,则 sp_iqcheckdb 会将进度消息发送到此 IQ 消息 文件,从而使用户可以跟踪 DBCC 操作的执行进度。


示例

检查整个数据库的分配:

image

sp_iqcheckdb 'allocation database'

对索引 i1i2 dbo.t1.i3 执行详细检查。如果不指定新模式,则 sp_iqcheckdb

将对剩余的目标应用相同模式,如以下命令所示:

image

sp_iqcheckdb 'verify index i1 index i2 index dbo.t1.i3'

可以组合所有模式,并可以在单个会话中对数据库运行多项检查。对表 t2 中的分区 p1 执行快速检查,对索引 i1 执行详细检查,并使用一半 CPU 对整个数据库执行分配 检查:

image

sp_iqcheckdb 'check table t2 partition p1 verify index i1 allocation database resources 50'

检查数据库中类型为 FP 的所有索引:

image

sp_iqcheckdb 'check indextype FP database'

验证表 t1 中的 FP HG 索引以及表 t2 中的 LF 索引:

image

sp_iqcheckdb 'verify indextype FP indextype HG table t1 indextype LF table t2'

检查 LVC 单元不一致问题:

image

sp_iqcheckdb 'check index EFG2JKL.ASIQ_IDX_T208_C504_FP'

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

Index Statistics:

** Inconsistent Index: abcd.EFG2JKL.ASIQ_IDX_T208_C504_FP ****** FP

备份参考


image

Indexes Checked: 1

** Unowned LVC Cells: 212 ******

sp_iqcheckdb LVC 单元消息包括:

无主 LVC 单元

重复的 LVC 单元行

未分配的 LVC 单元行

这些消息表明与 VARCHARVARBINARYLONG BINARY (BLOB) LONG VARCHAR

(CLOB) 列的不一致。无主 LVC 单元表示少量的不可用磁盘空间,可安全地忽略。重 复和未分配的 LVC 单元为严重的错误,只能通过删除已损坏的列解决。

若要删除已损坏的列,请使用旧列的副本创建一个新列,然后删除原始列并将新列重 命名为旧列。

image

注意: LVC 是一个宽度大于 255 VARCHAR VARBINARY 列。LONG BINARY

(BLOB) LONG VARCHAR (CLOB) 也使用 LVC

image


输出示例:

运行 sp_iqcheckdb 'allocation database'

image

===================================================================

DBCC Allocation Mode Report

===================================================================

DBCC Status No Errors Detected

===================================================================

Allocation Summary

===================================================================


Blocks Total 25600

Blocks in Current Version 5917

Blocks in All Versions 5917

Blocks in Use 5917

% Blocks in Use 23

===================================================================

Allocation Statistics

===================================================================

Marked Logical Blocks

8320

Marked Physical Blocks

5917

Marked Pages

520

Blocks in Freelist

2071196

Imaginary Blocks

2014079

Highest PBN in Use

1049285

Total Free Blocks

19683

Usable Free Blocks

19382

% Total Space Fragmented

1

% Free Space Fragmented

1

Max Blocks Per Page

16

1 Block Page Count

165

3 Block Page Count

200

4 Block Page Count

1

10 Block Page Count

1

16 Block Page Count

153


备份参考

2

Block

Hole

Count

1

3

Block

Hole

Count

19

6

Block

Hole

Count

12

7

Block

Hole

Count

1

10

Block

Hole

Count

1

15

Block

Hole

Count

1

16

Block

Hole

Count

1220

image

Partition Summary

Database Objects Checked 2

Blockmap Identity Count 2

Bitmap Count 2

===================================================================

Connection Statistics

===================================================================

Sort Records 3260

Sort Sets 2

===================================================================


DBCC Info

===================================================================

DBCC Work units Dispatched

197

DBCC Work units Completed

197

DBCC Buffer Quota

255

DBCC Per-Thread Buffer Quota

255

Max Blockmap ID found

200

Max Transaction ID found

404

image

注意: 报告可指示泄漏的空间。泄漏的空间是按照数据库空闲列表(内部分配映射)

分配的块,但 DBCC 发现它不属于任何数据库对象。

image

备份参考

索引




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