远程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) 检查数据库的逻辑和物理一致性,并提供 统计、计划和修复功能。

有些 dbcc 命令只适用于共享磁盘集群。请参见针对各集群分别列出的

dbcc 语法。

语法 dbcc addtempdb (dbid | database_name)

dbcc checkalloc [(database_name[, fix | nofix])] dbcc checkcatalog [(database_name[, fix])

dbcc checkdb [(database_name[, skip_ncindex])]

dbcc checkindex ({table_name | table_id}, index_id

[, bottom_up[, partition_name | partition_id]]) dbcc checkstorage [(database_name)]

dbcc checktable (table_name | table_id

[, skip_ncindex | fix_spacebits | "check spacebits" | bottom_up | NULL[, partition_name | partition_id)

dbcc checkverify (dbname[, tblname[, ignore_exclusions]]) dbcc complete_xact (xid, {["commit", "1pc"] | "rollback"}) dbcc dbrepair (database_name, dropdb)

dbcc engine ({offline, [enginenum] | "online"}) dbcc fix_text ({table_name | table_id})

dbcc forget_xact (xid)

dbcc indexalloc (table_name | table_id, index_id

[, optimized | fast | NULL [, fix | nofix | NULL [, partition_name | partition_id]]])

dbcc monitor (increment, <group name>) dbcc monitor (decrement, <group name>) dbcc monitor (reset, <group name>)

dbcc pravailabletempdbs

dbcc rebuild_text (table_name | table_id | "all"[, column[, text_page

[, data_partition_name | data_partition_id]]]) dbcc reindex ({table_name | table_id})

dbcc serverlimits dbcc stackused

dbcc tablealloc (table_name | table_id [, full | optimized | fast | NULL

[, fix | nofix | NULL [, data_partition_name | data_partition_id]]])


dbcc textalloc (table_name | table_id [, full | optimized | fast | NULL

[, fix | nofix | NULL [, data_partition_name | data_partition_id]]]) dbcc {traceon | traceoff} (flag [, flag ...])

dbcc tune ({ascinserts, {0 | 1} , table_name | cleanup, {0 | 1} |

cpuaffinity, start_cpu {, on| off} | des_greedyalloc, dbid, object_name,

" {on | off}" | deviochar vdevno, "batch_size" | des_bind, dbid, object_name

des_unbind, dbid, object_name

doneinproc {0 | 1}})

dbcc upgrade_object [ ( dbid | dbname

[,[database.[owner].]compiled_object_name' | 'check' | 'default' | 'procedure' | 'rule' | 'trigger' | 'view'

[, 'force' ] ] )

仅适用于集群的 dbcc 语法:

dbcc nodetraceon(trace_flag_number) dbcc nodetraceoff(trace_flag_number)

dbcc set_scope_in_cluster("cluster"|"instance"|"scope") dbcc quorum

参数 addtempdb

将一个临时数据库添加到可用临时数据库的全局列表。如果数据库不 存在或不是临时数据库,则会产生错误。如果数据库已经是列表的成 员,则会显示信息性消息。

dbid

是数据库 ID

database_name

是要检查的数据库名。如果不提供数据库名,则 dbcc 使用当前数据库。

checkalloc 检查指定数据库,来确定正确分配了所有页,且使用了所有分配的 页。如果不提供数据库名,则 checkalloc 检查当前数据库。它通常使 用 optimized 报告选项 (请参见 tablealloc)。

checkalloc 报告分配和使用的空间量。

fix | nofix

确定 dbcc 是否修正发现的分配错误。 checkalloc 的缺省模式是 nofix。 必须将数据库置于单用户模式才能使用 fix 选项。有关 Adaptive Server 中页分配的详细信息,请参见 《系统管理指南》。


checkcatalog

在系统表中和系统表之间检查一致性。例如, checkcatalog 确认 syscolumns 中的每一个类型在 systypes 中都有一个匹配的条目, sysobjects 中的每个表和视图在 syscolumns 中都至少有一列,且 syslogs 中的最后一个检查点是有效的。请参见 276 页的 “ dbcc checkcatalog 执行的检查 。您可以在存档数据库中使用 checkcatalog,但不是 fix 版本的 checkcatalog

checkcatalog 还报告已定义的任何段。如果不提供数据库名,则

checkcatalog 检查当前数据库。

fix


确定 dbcc 是否修复它所找到的 sysindexes 错误。 checkcatalog 的缺省 模式是不修复错误。必须将数据库置于单用户模式才能使用 fix 选项。 新的 sysindexes 检查可能会产生新的错误,它们不是由低于 12.5.2 版 的 Adaptive Server 中的 dbcc checkcatalog 引起的。

checkdb

运行与 checktable 相同的检查,但是检查指定数据库中的每个表,包 括 syslogs。如果不提供数据库名,则 checkdb 检查当前数据库。您可 以在存档数据库中使用 checkdb

skip_ncindex

导致 dbcc checktable dbcc checkdb 跳过对用户表上非聚簇索引的检 查。缺省情况下是检查所有索引。

checkindex

运行与 checktable 相同的检查,但是只检查指定的索引。您可以在存 档数据库中使用 checkindex

bottom_up

(仅针对仅数据锁定表)当在 checkindex 中指定此选项时,按照自下 而上的顺序检查索引。 bottom_up 检查涉及检验每个数据行是否有对 应的索引行。

partition_name | partition_id

为要检查的数据分区的名称或 ID。如果指定分区,则 dbcc 跳过全局 索引。

checkstorage

检查指定数据库的分配、对象分配映射 (OAM) 页条目、页一致性、 文本值列、文本值列的分配以及文本列链。每个 dbcc checkstorage 操 作的结果都存储在 dbccdb 数据库中。有关使用 dbcc checkstorage 的详 细信息,以及有关从 dbccdb 创建、维护和生成报告的详细信息,请 参见 《系统管理指南》。


checktable 检查指定的表,来查看索引和数据页是否正确链接,索引的排序顺序 是否正确,所有指针是否一致,每页上的数据信息是否合理,以及页 偏移是否合理。您可以在存档数据库中使用 checktable

dbcc checktable 的某些更改会引用虚拟散列表:

除了执行常规检查外, checktable 还会验证散列区域中数据和

OAM 页的布局是否正确。

不在为每个布局的 OAM 页保留的扩充中分配数据页。

只在分配单元的第一个扩充中分配 OAM 页。

table_name | table_id

是要检查的表的名称或对象 ID

fix_spacebits 用于使用数据页或数据行锁定的表,并检查空白位的有效性,以及修 正任何无效的空白位。空间位按页存储,并指示页中可用于新的插入 的空间。

check spacebits 检查使用数据页或数据行锁定表的表中的空白位。如果指定 check spacebits,则 dbcc 不检查非聚簇索引。

checkverify

检验针对指定的数据库最后一次运行 dbcc checkstorage 的结果。有关 使用 dbcc checkverify 的详细信息,请参见 《系统管理指南》。

ignore_exclusions

启用或禁用排除列表。值为缺省值 0 (启用排除列表)或 1 (禁用排 除列表)。

complete_xact

通过提交或回退其工作尝试完成一个事务。 Adaptive Server 保留 master.dbo.systransactions 表中关于所有尝试完成的事务的信息,因此 外部事务协调器能够知道事务是如何完成的。


image

警告!尝试完成处于就绪状态的事务时,可能会在整个分布式事务中 造成不一致的结果。系统管理员尝试提交或回退事务的决定可能会与进 行协调的 Adaptive Server 或协议的决定相矛盾。

image


xid

systransactions.xactname 列中的事务名称。也可以用 sp_transactions

确定有效的 xid 值。


1pc

通过正在协调此完成过程的外部事务管理器, 1pc 尝试完成一个进行 单阶段提交协议 (不是常规的两阶段提交协议)优化的事务。此选 项允许尝试提交未处于就绪状态的事务。

forget_xact

删除来自 master.dbo.systransactions 的尝试完成事务的完成状态。 forget_xact 可以在系统管理员不希望协调服务知道正尝试完成的事务 时,或者是当外部事务协调器不可用于清除 systransactions 中的提交 状态时使用。


image

警告! 不要在常规 DTP 环境中使用 dbcc forget_xact,因为应该允许外部 事务协调器检测尝试完成的事务。 X/Open XA 兼容的事务管理器和 Adaptive Server 事务协调服务可自动清除 systransactions 中的提交状态。

image


dbrepair ( database_name, dropdb)

删除损坏的数据库。不能对损坏的数据库执行 drop database

发出此 dbcc 语句时,任何人都不能使用正被删除的数据库 (包括发 出此语句的用户)。

engine

Adaptive Server 引擎脱机或联机。如果未指定 enginenum,则 dbcc engine (offline) 会使编号最高的引擎脱机。请参见 《系统管理指南》 中的 “管理多处理器服务器”。

fix_text

Adaptive Server 字符集从任意字符集更改为新的多字节字符集之后 升级 text 值。

更改为多字节字符集会使 text 数据的管理更为复杂。由于 text 值可以 大到占据多页,所以 Adaptive Server 必须能够处理跨越页边界的字 符。为此,服务器需要有关每个 text 页的其它信息。系统管理员或表 所有者必须在每个包含 text 数据的表上运行 dbcc fix_text,才能计算所 需的新值。请参见 《系统管理指南》。


indexalloc 检查指定索引,来确定正确分配了所有页,且使用了所有分配的页。 这是 checkalloc 的较小版本,可对单个索引进行相同的完整性检查。 您可以在存档数据库中使用 indexalloc

indexalloc 生成与 tablealloc 相同的三种类型的报告:fulloptimized fast。如果未指定任何类型或者使用 null Adaptive Server 将使用 optimizedfix | nofix 选项也可用于 indexalloc,就像用于 tablealloc 一样。


image

注释 注意:只有包括报告的类型值 (fulloptimizedfast null)时, 才可以指定 fixnofix

image


table_name | table_id

是表名或表的对象 ID

indid

是执行 dbcc indexalloc 期间所检查的索引的 ID

fix_spacebits

用于 datapages datarows lockscheme 类型的表,并检查空间位的有 效性,以及修正任何无效的空间位。空间位按页存储,并指示页中可 用于新的插入的空间。

check spacebits

检查数据页或数据行锁定表的空白位。如果指定 check spacebits,则 dbcc 不检查非聚簇索引。

full

报告所有类型的分配错误。

optimized

根据索引的对象分配映射 (OAM) 中列出的分配页生成报告。它不报 告也无法修正 OAM 页中未列出的分配页中的未引用扩充。 optimized 选项是缺省选项。

fast

不生成分配报告,但对已引用而未在扩充中分配的页生成例外报告

2521 级别错误)。

fix | nofix

确定 indexalloc 是否修正表中发现的错误。对除系统表中的索引外的 所有索引来说缺省值是 fix,系统表中的索引的缺省值是 nofix。若要将 fix 选项用于系统表,必须先将数据库设置为单用户模式。

只有包括报告的类型值 (fulloptimizedfast null)时才可以指定 fix nofix


partition_name | partition_id

如果指定了分区 ID,则分配检查将在由 (indid, partition id) 所标识的分 区上执行。

pravailabletempdbs

显示可用临时数据库的全局列表。

rebuild_text

textunitext image 数据重建或创建内部 Adaptive Server 12.0 或更 高版本数据结构。此数据结构可使 Adaptive Server 在数据查询期间执 行随机访问和异步预取。您可以对数据库中的所有表、单个表或数据 分区运行 rebuild_text

table_name | table_id | "all"

是表名或表的对象 ID,或者数据库中的所有对象。

column

是文本列的 ID 或列名。 dbcc rebuild_text 会重建此列的每个文本值的 内部数据结构。

text_page

是第一个文本页的逻辑页码。 dbcc rebuild_text 会重建此文本页的内部 数据结构。

data_partition_name | data_partition_id

为数据分区的名称或 ID。如果指定了 text_page,则忽略 data_partition_name (或 data_partition_id)。

monitor increment, group name

increment 命令将指定组中的监控计数器的使用量计数增加 1decrement 命令将指定组中的监控计数器的使用量计数减少 1reset 命 令将指定组中的监控计数器的使用量计数设置为 0。这将关闭此组的 监控数据的收集。

group name 可以是下列值之一:

all – 通过选择 @@monitors_active 全局变量确定 all 组的使用量 计数,该组包含大部分监控计数器。

spinlock_s – 由 dbcc resource 命令报告的 spinlock_s 的使用量计数。

appl – 由 dbcc resource 命令报告的 appl 的使用情况计数。


reindex

通过运行 dbcc checktable 的快速版本,检查用户表索引的完整性。它 可以和表名或表的对象 ID (来自 sysobjects id 列)一起使用。 reindex 在发现第一个与索引相关的错误时会显示消息,然后删除并重 新创建可疑索引。当 Adaptive Server 的排序顺序已经更改,且索引由 Adaptive Server 标记为 “可疑”后,系统管理员或表所有者必须运行 dbcc reindex

dbcc 发现损坏的索引时,它会删除并重新创建相应的索引。如果 表的索引已经是正确的,或者表没有索引,则 dbcc reindex 不重建索 引,而是输出信息性消息。

如果怀疑表包含损坏的数据,则 dbcc reindex 将中止。发生这种情况时, 错误消息会指示用户运行 dbcc checktabledbcc reindex 不允许重建系统表 索引。如果有必要,在排序顺序更改后重新启动 Adaptive Server,然后 作为恢复操作的一个自动执行的部分检查并重建系统索引。

stackused

报告自从服务器首次启动以来所使用的最大堆栈内存量。

serverlimits

显示 Adaptive Server 对多种实体施加的限制,包括标识符的长度以及 不同对象的最大数量 (如表中的列数、表上的索引数、页大小、行开 销等)。使用这些信息可确定 Adaptive Server 进程的各种大小特性。

tablealloc 检查指定的表或数据分区,以确定正确分配了所有页,且所有分配的 页都已在使用。这是 checkalloc 的较小版本,可对单个表进行相同的 完整性检查。它可以和表名或表的对象 ID (来自 sysobjects id 列) 一起使用。您可以在存档数据库中使用 tablealloc。有关 tablealloc 输出 的示例,请参见 《系统管理指南》。

可使用 tablealloc 生成的三种类型的报告:fulloptimized fast。如果 未指定任何类型或者使用 nullAdaptive Server 将使用 optimized

textalloc

检查数据库中的 text image 页的分配完整性。可将 dbcc textalloc 用 于存档数据库。

full

等同于表级 checkalloc,它报告所有类型的分配错误。 optimized

根据表的对象分配映射 (OAM) 页中列出的分配页生成报告。它不报

告也无法修正 OAM 页中未列出的分配页中的未引用扩充。 optimized

选项是缺省选项。


fast

不生成分配报告,但对已引用而未在扩充中分配的页生成例外报告

2521 级别错误)。

fix | nofix

确定 tablealloc 是否修正了表中发现的分配错误。除系统表外的所有表 的缺省值是 fix,系统表的缺省值是 nofix。若要将 fix 选项用于系统表, 必须先将数据库设置为单用户模式。

只有包括报告的类型值 (fulloptimizedfast null)时才可以指定 fix nofix

data_partition_name | data_partition_id 为要检查的数据分区的名称或 ID。如果指定了分区,则 dbcc tablealloc 将跳过全局索引。

traceon | traceoff

在查询优化期间切换诊断显示。值 3604 3605 分别切换为向用户会 话以及向错误日志发送跟踪输出。

tune

启用或禁用在特殊性能情况下使用的调优标志。每次重新启动 Adaptive Server 时,必须重新发出 dbcc tune。有关各选项的详细信 息,请参见 《性能和调优指南:基础知识》。

upgrade_object

从存储在 syscomments 表中的文本升级编译对象。upgrade_object 参数 有:

image

参数 说明

dbid 指定数据库 ID。如果不指定 dbid,将升级当前数据库中的所有编译对象。 dbname 指定数据库名。如果不指定 dbname,将升级当前数据库中的所有编译对象。 compiled_object_name 要升级的具体编译对象的名称。如果使用完全限定名,则 dbname database

须匹配,且必须用引号将完全限定名括起来。如果该数据库包含两个以上同名的

编译对象,则应使用完全限定名称。否则,将分析所有同名对象,如果未发现错 误则进行升级。

check 升级所有检查约束和规则。参照约束不是编译对象,不需要升级。

default 升级所有声明缺省值和用 create default 命令创建的缺省值。

procedure 升级所有存储过程。

rule 升级所有规则和检查约束。

trigger 升级所有触发器。

view 升级所有视图。


image

参数 说明

force 指定要升级指定的对象,不管其中是否包含 select * 子句。除非能确认 select * 语句不 会返回意外结果,否则不要使用 force 选项。force 选项不会升级以下对象:包含保留 字的对象、包含截断的源文本或丢失的源文本的对象、引用不存在的临时表的对象 或者与带引号标识符设置不匹配的对象。必须先修复这些对象,然后再升级。


关键字 checkdefaultprocedureruletrigger view 指定要升级的编 译对象类。当指定了一个类后,指定数据库中的所有该类对象都将被 升级,前提条件是 dbcc upgrade_object 没有发现错误或潜在问题区域。

check

检查指定数据库的 syscomments 中指定的编译对象的语法。不在出现

select 时引发错误。

对于 upgrade_object,将升级所有检查约束和规则。参照约束不是编 译对象,不需要升级。

force

强制 syscomments 中的对象进行升级,即使没有必要升级也是如此。

object_name

为编译对象的名称。

object_type

Adaptive Server 编译的下列对象类型之一:procedurefunctionviewtriggerdefaultrule 以及 condition

compiled_object_name 是要升级的具体编译对象的名称。如果使用完全限定名称,则 database_name database 必须匹配,且必须用引号括住完全限定名 称。如果该数据库包含两个以上同名的编译对象,则应使用完全限定 名称。否则,将分析所有同名对象,如果未发现错误则进行升级。

default

升级所有声明缺省值和用 create default 命令创建的缺省值。

procedure

升级所有存储过程。

rule

升级所有规则和检查约束。

trigger

升级所有触发器。


view

升级所有视图。

关键字 checkdefaultprocedureruletrigger view 指定要升级的 编译对象类。当指定了一个类后,指定数据库中的所有该类对象都 将被升级,前提条件是 dbcc upgrade_object 没有发现错误或潜在问题 区域。

force

指定要升级指定的对象,不管其中是否包含 select * 子句。除非能确 认 select * 语句不会返回意外结果,否则不要使用 force 选项。 force 选 项不会升级以下对象:包含保留字的对象、包含截断的源文本或丢失 的源文本的对象、引用不存在的临时表的对象或者与带引号标识符设 置不匹配的对象。必须先修复这些对象,然后再升级。

trace_flag_number

是要启用或禁用的跟踪标志的编号。

cluster

dbcc 命令范围设置为集群。后续的 dbcc 命令将在整个集群范围内 产生影响。

instance

dbcc 命令范围设置为当前实例。后续的 dbcc 命令只影响本地实例。

scope

显示 dbcc 命令的当前范围,即 cluster instance

示例 示例 1 检查 pubs2 以查找页分配错误:

dbcc checkalloc (pubs2)

示例 2 检查 pubs2 的数据库一致性并将信息放入 dbccdb 数据库:

dbcc checkstorage (pubs2)

示例 3 检查 salesdetail 表:

dbcc checktable (salesdetail) Checking salesdetail

The total number of pages in partition 1 is 3. The total number of pages in partition 2 is 1. The total number of pages in partition 3 is 1. The total number of pages in partition 4 is 1.

The total number of data pages in this table is 10. Table has 116 data rows.

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


示例 4 尝试中止事务 “distributedxact1”:

dbcc complete_xact (distributedxact1, "rollback")

示例 5 更改字符集后升级 blurbs 的文本值:

dbcc fix_text (blurbs)

示例 6 在禁用排除列表的情况下在数据库 my_db 中对表 tab 运行

checkverify

dbcc checkverify(my_db, tab)

示例 7 在启用排除列表的情况下在数据库 my_db 中对表 tab 运行 dbcc checkverify

dbcc checkverify (my_db, tab, 0)

示例 8 在禁用排除列表的情况下在数据库 my_db 中对表 tab 运行 dbcc checkverify,请输入:

dbcc checkverify (my_db, tab, 1)

示例 9 master.dbo.systransactions 中删除事务 “distributedxact1”的信息:

dbcc forget_xact (distributedxact1)

示例 10 返回有关索引 (其 titleauthor 表上的 indid 值为 2)的分配的完整 报告,并修复所有分配错误:

dbcc indexalloc ("pubs..titleauthor", 2, full)

示例 11 显示可用临时数据库的全局列表:

dbcc pravailabletempdbs

Available temporary databases are: Dbid:2

Dbid:4 Dbid:5 Dbid:6 Dbid:7

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

示例 12 blurbs 表中的所有 text image 列重建或创建内部 Adaptive Server 数据结构:

dbcc rebuild_text (blurbs)

示例 13 检查位于 smallsales 分区 (包含小于 5000 的所有图书销售额) 的 titles 表部分。


dbcc checktable (titles, NULL, "smallsales")

示例 14 dbcc reindex titles 表中发现了一个或多个损坏的索引:

dbcc reindex (titles)

One or more indexes are corrupt.They will be rebuilt.

示例 15 检查自从 Adaptive Server 启动以来所使用的最大堆栈内存量:

dbcc stackused

示例 16 升级 listdb 数据库中的所有存储过程:

dbcc upgrade_object(listdb, 'procedure')

示例 17 升级 listdb 数据库中的所有规则和检查约束。应使用双引号括住

rule,因为 set quoted identifiers off

dbcc upgrade_object(listdb, list_proc)

image

示例 18 显示简化的输出,其中显示 Adaptive Server 中的各种限制形式:

dbcc serverlimits

Limits independent of page size:

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


Server-wide, Database-specific limits and sizes

Max engines per server 128

Max number of logins per server :2147516416

Max number of users per database :2146484223

Max number of groups per database :1032193 Max number of user-defined roles per server 1024

Max number of user-defined roles per (user) session 127

Min database page size :2048

Max database page size :16384

...


Database page-specific limits

APL page header size 32

DOL page header size 44

Max reserved page gap 255

Max fill factor 100

Table, Index related limits

Max number of columns in a table/view 1024

Max number of indexes on a table 250


Max number of user-keys in a single index on an unpartitioned table :31 Max number of user-keys in a single local index on a partitioned table :31

...

General SQL related


Max size of character literals, sproc parameters :16384

Max size of local @variables in T-SQL :16384

Max number of arguments to stored procedures :2048

Max number of arguments to dynamic SQL :2048

Max number of aggregates in a COMPUTE clause 254

...


Maximum lengths of different Identifiers


Max length of server name 30

Max length of host name 30

Max length of login name 30

Max length of user name 30

...


Limits as a function of the page size:

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


Item dependent on page size : 2048 4096 8192 16384

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


Server-wide, Database-specific limits and sizes

Min number of virtual pages in master device

:11780

22532

45060

90116

Default number of virtual pages in master device

:23556

45060

90116

180228

Min number of logical pages in master device

:11776

11264

11264

11264

Min number of logical pages in tempdb :2048 1536 1536 1536


Table-specific row-size limits


Max possible size of a log-record row on APL log page :2014 4062 8158 16350


Physical Max size of an APL data row, incl row-overheads :1962 4010 8106 16298

Physical Max size of a DOL data row, incl row-overheads :1964 4012 8108 16300


Max user-visible size of an APL data row :1960 4008 8104 16296

Max user-visible size of a DOL data row :1958 4006 8102 16294

Max user-visible size of a fixed-length column in an APL table :1960 4008 8104 16296


Max user-visible size of a fixed-length column in a DOL table :1958 4006 8102 16294

...


image

注释 注意:若要显示服务器中的完整限制列表,请执行 dbcc traceon (3604)获取客户端会话的输出。

image



sp_transactions

示例 19 为此表返回经过优化的分配报告,但不修复任何分配错误:

dbcc tablealloc (publishers, null, nofix)

示例 20 smallsales 分区执行分配检查。检查 smallsales 上的所有本地索 引,而将全局索引排除在外:

dbcc tablealloc (titles, null, null, smallsales)

示例 21 使用 sp_transactions 来确定因为未处于 “就绪”状态而未尝试提 交的单阶段提交事务的名称。接下来,本示例解释如何使用 1pc 参数来 成功提交事务:

xactkey type coordinator starttime

state connection dbid spid loid failover srvnname namelen xactname

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

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

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

0xbc0500000b00000030c316480100 External XA Feb 2 2004 1:07PM

Done-Detached Detached 1 0 2099 Resident Tx NULL 88

28_u7dAc31Wc380000000000000000000000000000000001HFpfSxkDM000FU_00003M00

00Y_:SYBBEV0A_LRM

(1 row affected)


(return status = 0)

如果您尝试提交此事务,则 Adaptive Server 将发出错误消息:

dbcc complete_xact ("28_u7dAc31Wc380000000000000000000000000000000001HFpfSxkDM000FU_00003M000 0Y_:SYBBEV0A_LRM", "commit"))

Adaptive Server 发出的错误消息为:

Msg 3947, Level 16, State 1: Server 'PISSARRO_1251_P', Line 1:

A heuristic completion related operation failed.Please see errorlog for more details.

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


因为此事务处于 “完成”状态,检验此事务已提交后,可以使用单阶段 提交协议优化来尝试完成此事务。可以使用 dbcc complete_xact ( 1pc) 参数提交此事务:

dbcc complete_xact ("28_u7dAc31Wc380000000000000000000000000000000001HFpfSxkDM000FU_00003M000

0Y_:SYBBEV0A_LRM", "commit", "1pc")

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

可以用 dbcc forget_xact 命令从 systransactions 中删除此事务:

dbcc forget_xact ("28_u7dAc31Wc380000000000000000000000000000000001HFpfSxkDM0 00FU_00003M0000Y_:SYBBEV0A_LRM")

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

如果再次运行 sp_transactions,则上一事务不会出现:

sp_transactions

xactkey type coordinator starttime state connection dbid spid loid failover srvnname namelen xactname

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

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

(0 row affected)

示例 22 启用跟踪标志 3604

dbcc nodetraceoff(3604)

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

示例 23 dbcc 范围设置为集群:

dbcc set_scope_in_cluster('cluster')

示例 24 dbcc 范围设置为实例:

dbcc set_scope_in_cluster('instance')

示例 25 显示 dbcc 命令的当前范围:

dbcc set_scope_in_cluster('scope')

用法 dbcc checkstorage 如果用于非散列表的除第一个数据页之外的任何 数据页为空,则报告软故障。然而,dbcc checkstorage 不为虚拟散列 表的散列区域报告此软故障。虚拟散列表的散列区域中的任何数据 页均可为空。


可在数据库处于活动状态时运行 dbcc,但是不能使用 dbrepair (database_name, dropdb) 选项以及带 fix 选项的 dbcc checkalloc

dbcc 在检查数据库对象时会锁定它们。有关在使用 dbcc 时尽可能减 少性能问题的信息,请参见 《系统管理指南》中的 dbcc 讨论。

执行 dbcc 命令时,用户不能访问存档数据库。如果您在 dbcc 命令 的执行过程中试图访问存档数据库,则会收到一条消息,说明数据 库正处于单用户模式。

大多数 dbcc 命令都可用于内存数据库和宽松持久性数据库。

对于处于联机或脱机状态下的存档数据库,可以使用 dbcc 命令的变 体。然而,您只能对联机存档数据库使用带有 fix 选项的 dbcc

若要用用户名或数据库名限定表或索引的名称,请将限定的名称用 单引号或双引号引起来。例如:

dbcc tablealloc ("pubs2.pogo.testtable")

不能在用户定义的事务中运行 dbcc reindex

dbcc fix_text 可以生成大量的日志记录,这些记录可能会填满事务日 志。 dbcc fix_text 设计为在一系列小事务中进行更新:万一出现日志 空间故障,则只有少量工作丢失。如果日志空间已用完,则清除日 志,并使用在初始 dbcc fix_text 失败时升级的同一个表重新启动 dbcc fix_text

如果您使用的是已复制的数据库,并且需要将转储从以前版本的

Adaptive Server 装载到当前版本中,请使用 dbcc dbrepair。例如:

将转储从早期版本的 Adaptive Server 的生产系统装载到当前版 本的 Adaptive Server 的测试系统,或者,

在热备份应用程序中,使用早期版本的 Adaptive Server 的活动 数据库中的数据库转储初始化当前版本的 Adaptive Server 的备 用数据库。

如果试图在更改为多字节字符集后在 text 值上使用 selectreadtext writetext,且没有运行 dbcc fix_text,则命令会失败,并会有一个 错误消息指示您在表上运行 dbcc fix_text。但是,更改了字符集之 后,即使不运行 dbcc fix_text,您也可以删除 text 行。

dbcc 输出是作为消息或错误而不是作为结果行发送的。客户端程序 和脚本应该检查相关的错误处理程序。

如果表是分区的, dbcc checktable 返回有关每个分区的信息。


已升级到 Adaptive Server 12.x 版或更高版本的 text image 数据不会 自动从原来的存储格式升级。若要提高查询性能,并启用对这些数 据的预取,请对已升级的 text image 列使用 rebuild_text 关键字。

过去使用的堆栈内存量仅能指出将来可能需要的堆栈内存量。 Adaptive Server 所需的堆栈内存可能比过去所用的还要多。定期运 行 dbcc stackused 可了解当前堆栈的内存使用情况。

dbcc upgrade_object check 用于检测升级 Adaptive Server 前由 Adaptive Server 缺陷引起的 syscomments 文本损坏。这种 syscomments 文本损 坏后果严重,因为它会导致升级过程失败。

如果 dbcc upgrade_object check 报告任何错误,则必须删除并重新创 建 compiled_object

dbcc complete_xact

dbcc complete_xact 使系统管理员能够在外部事务协调器无法提交或回退 分布式事务的环境中提交或回退分布式事务。在低于 Adaptive Server 15.0 的版本中,除非事务处于 “就绪”状态,否则不能尝试提交,事 务协调器使用两阶段提交协议来提交事务。但是在某些情况下,事务协 调器可能需要使用单阶段提交协议来优化事务的提交。

1pc 尝试完成一个进行单阶段提交协议 (不是常规的两阶段提交协议) 优化的事务,它通过正在协调此完成过程的外部事务管理器来执行该操 作。尝试提交此类事务要求事务处于 “完成” (done) 状态 (由 sp_transactions 报告)。


image

注释 尝试完成事务之前,系统管理员应该尽一切努力确定协调事务管 理器是提交还是回退了分布式事务。

image


dbcc checkcatalog 执行的检查

dbcc checkcatalog 检查:

对于 sysindexes 中映射到域、散列或列表分区表的每一行,在 sysobjects 中都存在满足下列条件的一行:sysindexes.conditionid 等于 sysobjects.iddbcc checkcatalog 还对 sysindexes 中映射到带有分区条 件的循环分区表的每一行执行此检查。

对于 sysindexes 中映射到域、散列或列表分区表的每一行,在 sysprocedures 中都存在满足下列条件的一行:sysindexes.conditionid 等于 sysprocedures.iddbcc checkcatalog 还对 sysindexes 中映射到带 有分区条件的循环分区表的每一行执行此检查。


对于 sysindexes 中映射到域、散列或列表分区表的每一行,在 syspartitionkeys 中存在满足下列条件的一行:sysindexes.id 等于 syspartitionkeys.id sysindexes.indid 等于 syspartitionkeys.indiddbcc checkcatalog 还对 sysindexes 中映射到带有分区条件的循环分区表的 每一行执行此检查。

对于 sysindexes 中的每一行, syspartitions 中存在同时满足下面两个 条件的一行或多行:sysindexes.id 等于 syspartitions.id sysindexes.indid 等于 syspartitions.indid

对于 sysobjects 中类型为 N 的每一行,在 sysindexes 中都存在

sysindexes.conditionid 等于 sysobjects.id 的一行。

对于 syspartitions 中的每一行,在 sysindexes 中存在满足下列条件的 一行:syspartitions.id 等于 sysindexes.id syspartitions.indid 等于 sysindexes.indid

对于 syspartitionkeys 中的每一行,在 sysindexes 中存在满足下列条件 的一行:syspartitionkeys.id 等于 sysindexes.id syspartitionkeys.indid 等于 sysindexes.indid

对于 syspartitions 中的每一行,在 syssegments 中存在满足以下条件 的一行:syspartitions.segments 等于 syssegments.segment

对于 systabstats 中的每一行,在 syspartitions 中都存在满足下列条件 的一行:syspartitions.id 等于 systabstats.idsyspartitions.indid 等于 systabstats.indid syspartitions.partitionid 等于 systabstats.partitionid

文本索引 ( indid =255) systabstats 中没有条目。

对于 sysstatistics 中的每一行,在 sysobjects 中都存在满足以下条件 的一行:sysstatistics.id 等于 sysobjects.id

对于 sysobjects 中的每个加密密钥行, Adaptive Server 都会检查

sysencryptkeys 中是否有定义该密钥的行。

对于标记为加密的 syscolumns 中的每个列, Adaptive Server 都将在

sysobjects sysencryptkeys 中检验密钥。

dbcc checkcatalog 确保:

对于 sysencryptkeys 中的每个密钥副本,sysencryptkeys 中均存在 对应的基本密钥。如果不存在基本密钥,则 Adaptive Server 会 发出错误消息。

对于每个密钥副本, sysusers 中均存在对应的 uid。如果不存在 uid,则 Adaptive Server 会发出错误消息。



Checking syslogs

对于列中定义的每个解密缺省值,sysobjects sysattributes 中均 存在对应的解密缺省值。如果不存在对应的解密缺省值,则 Adaptive Server 会发出错误消息。

使用 dbcc checktable

如果日志段位于它自己的设备上,那么对 syslogs 表运行 dbcc checktable

将报告已用的日志和可用空间。例如:

The total number of data pages in this table is 1.

*** NOTICE:Space used on the log segment is 0.20 Mbytes, 0.13%.

*** NOTICE:Space free on the log segment is 153.4 Mbytes, 99.87%.

DBCC execution completed. If dbcc printed error messages, see your system administrator.

如果日志段不在自己的设备上,就会显示以下消息:

*** NOTICE: Notification of log space used/free cannot be reported because the log segment is not on its own device.

除了执行常规检查外, checktable 还会验证在创建表期间执行的预分配 是否正确:

预分配的页数与为指定的 max hash key 值分配的数据页总数匹配。

在预分配方案指定只允许对象分配映射 (OAM) 页的扩充中,不对 数据页进行预分配。

只在分配单元的第一个扩充中分配 OAM 页。

使用 dbcc nodetraceoff dbcc nodetraceon (仅限集群)

dbcc traceon dbcc traceoff 对整个集群应用跟踪标志,而 dbcc nodetraceoff dbcc nodetraceon 在本地应用跟踪标志。

使用 dbcc quorum (仅限集群)

dbcc quorum 输出传送到:

启动 Adaptive Server 的终端 (缺省情况下)

客户端会话 (如果打开了跟踪标志 3604 3605

dbcc quorum 接受整数参数作为要输出的视图记录数。例如,若要输 出 20 条最新的视图记录,请使用:

dbcc quorum(20)

如果不包括参数, dbcc quorum 将输出 10 条最新的视图记录。

发出 dbcc quorum (-1) 则可查看所有记录。


用于共享磁盘集群的 dbcc checkstorage 的限制:

dbcc checkstorage 中不能包括仅限实例的命名高速缓存。如果您这 样做, dbcc checkstorage 将发出以下错误消息:

The cache %1! cannot be used because it is an instance only cache

若要针对本地临时数据库运行 dbcc checkstorage,必须从拥有本地 临时数据库的同一实例中运行该命令。

由于性能原因, Cluster Edition 中的 dbcc checkstorage 可能不在集群 中查询页的最新版本。这可能会导致 Cluster Edition 比其它版本报 告更多软故障。

对于由单个实例更新数据库的明确分区的应用程序, dbcc checkstorage 的行为与早期非 Adaptive Server Cluster Edition 版本相同。

标准 符合 ANSI SQL 的级别Transact-SQL 扩展。

权限 dbcc 命令的权限检查因您的细化权限设置而异。有关每个 dbcc 命令 的权限要求,请参见 1-17


image

注释 如果符合下表中列出的 dbcc 命令的任何一个要求 (权限或所有 权),便可运行该命令。

image


1-17: dbcc 命令的权限要求

DBCC 命令名

权限要求

细化权限已禁用

细化权限已启用

addtempdb

数据库所有者

sa_role

数据库所有者

own database

checkalloc

dbcc checkalloc

数据库所有者

sa_role

dbcc checkalloc

checkcatalog

dbcc checkcatalog

数据库所有者

sa_role

dbcc checkcatalog

checkdb

dbcc checkdb

数据库所有者

sa_role

dbcc checkdb

checkindex

dbcc checkindex

表所有者

sa_role

dbcc checkindex

表所有者


DBCC 命令名

权限要求

细化权限已禁用

细化权限已启用

checkstorage

dbcc checkstorage

数据库所有者

sa_role

dbcc checkstorage

checktable

dbcc checktable

表所有者

sa_role

dbcc checktable

表所有者

checkverify

dbcc checkverify

数据库所有者

sa_role

dbcc checkverify

complete_xact

sa_role

manage server

dbrepair dropdb

数据库所有者

sa_role

数据库所有者

own database

engine

sa_role

manage server

fix_text

dbcc fix_text

对象所有者

sa_role

dbcc fix_text

对象所有者

forget_xact

sa_role

manage server

indexalloc

dbcc indexalloc

表所有者

sa_role

dbcc indexalloc

表所有者

monitor

sa_role

manage server

rebuild_text

表所有者

sa_role

表所有者

manage database

reindex

dbcc reindex

表所有者

sa_role

dbcc reindex

表所有者

stackused

sa_role

manager server

tablealloc

dbcc tablealloc

表所有者

sa_role

dbcc tablealloc

表所有者

textalloc

dbcc textalloc

表所有者

sa_role

dbcc textalloc

表所有者


DBCC 命令名

权限要求

细化权限已禁用

细化权限已启用

traceon | traceoff nodetraceon | nodetraceoff


set tracing

monitor qp performance

set switch

跟踪标志 – 36043605

sa_role

所有其它跟踪标志

sa_role

• set switch

tune ascinserts

dbcc tune

表所有者

sa_role

dbcc tune

表所有者

tune 所有其它参数

dbcc tune

sa_role

dbcc tune

upgrade_object

对象所有者

数据库所有者

sa_role

manage database

对象所有者

set_scope_in_cluster

sa_role

manage cluster

quorum

sa_role

manage cluster


审计 sysaudits event extrainfo 列中的值如下:

image

事件 审计选项 审计的命令或访问权限 extrainfo 中的信息

81 dbcc dbcc 角色 – 当前活动角色

关键字或选项 – 任一 dbcc 关键字 (例如

checkstorage)和该关键字的选项

先前值 NULL

当前值 NULL

其它信息 NULL

代理信息 set proxy 有效时的初始登录名


另请参见 命令 drop database .

系统过程 sp_configure, sp_helpdb.




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