远程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 进行更新。有些全局变量是会话特有的,而有些则是服务器 实例特有的。例如, @@error 包含系统为给定的用户连接生成的最 后一个错误号。

若要指定应用程序环境变量,请参见 get_appcontext

set_appcontext

若要查看任何全局变量的值,请输入:

select variable_name

例如:

select @@char_convert

许多全局变量报告自 Adaptive Server 最近一次启动以来,系统发生 的活动。 sp_monitor 显示一些全局变量的当前值。

3-1 列出了 Adaptive Server 可用的全局变量:

3-1Adaptive Server 的全局变量

全局变量

定义

@@active_instances

返回集群中活动实例的数目。

@@authmech

一个只读变量,表示鉴定用户所用的机制。

@@bootcount

返回 Adaptive Server 安装程序已启动的次数。

@@boottime

返回 Adaptive Server 上次启动的日期和时间。

@@bulkarraysize

返回使用批量复制接口进行传输之前缓冲到本地服务器内存中的行数。它仅用 于组件集成服务,以使用 select into 将行传输到远程服务器。请参见 《组件集 成服务用户指南》

@@bulkbatchsize

返回使用批量接口通过 select into proxy_table 传输到远程服务器的行数。仅用于 组件集成服务,以便通过 select into 将行传输到远程服务器。请参见 《组件集 成服务用户指南》

@@char_convert

如果字符集转换无效,则返回 0。如果字符集转换有效,则返回 1

@@cis_rpc_handling

如果 cis rpc handling 关闭,则返回 0。如果 cis rpc handling 打开,则返回 1。请 参见 《组件集成服务用户指南》

@@cis_version

返回组件集成服务的日期和版本。

image


全局变量 定义

@@client_csexpansion 返回从服务器字符集转换为客户端字符集时使用的扩展因子。例如,如果它包 含一个值 2,则服务器字符集中的字符在转换为客户端字符集后最多可以占用 原来字节数的两倍。

@@client_csid 如果客户端字符集从未初始化,则返回 -1 ;如果客户端字符集已初始化,则 通过 syscharsets 返回连接的客户端字符集 ID

@@client_csname 如果客户端字符集从未初始化,则返回 NULL ;如果客户端字符集已初始化, 则返回用于连接的字符集名称。

@@clusterboottime 返回首次启动集群的日期和时间,即使最初启动集群的实例已关闭

@@clustercoordid 返回当前集群事务协调器的实例 ID

@@clustermode 返回字符串:“共享磁盘集群” (shared-disk cluster)

@@clustername 返回集群的名称

@@cmpstate 返回在高可用性环境下 Adaptive Server 的当前模式。不用于非高可用性环境中。

连接 返回用户尝试登录的次数。

@@cpu_busy 返回自 Adaptive Server 上次启动起,CPU 执行 Adaptive Server 工作所花费的时 间 (以时钟周期计)。

@@cursor_rows 为可滚动游标专门设计的全局变量。该变量显示游标结果集中的总行数。它返 回以下值:

• -1 — 游标是:

动态 — 因为动态游标会反映所有的更改,所以符合该游标的条件的行数 会不断变化。您永远都无法保证会检索所有符合条件的行。

semi_sensitive 并且是可滚动的,但尚未完全填充滚动工作表 — 检索到该 值时,符合该游标的条件的行数是未知的。

• 0 — 没有打开游标,没有行符合上次打开的游标的条件,或者上次打开的游 标已关闭或已释放。

n — 上次打开的或获取的游标结果集已完全填充。返回的值是游标结果集中 的总行数。

@@curloid 返回当前会话的锁所有者的 ID

@@datefirst 使用 set datefirst n 进行设置,其中 n 1 7 之间的一个值。返回 @@datefirst 的当前值,该值指示将每个星期的哪一天指定为第一天,其数据类型为 tinyint

Adaptive Server 中,缺省值为星期日 (根据 us_language 缺省值),您可以 通过指定 set datefirst 7 来进行设置。有关这些设置和值的详细信息,请参 见 set 命令的 datefirst 选项。

@@dbts 返回当前数据库的时间戳。

时间戳列始终按照 big-endian 字节顺序显示值,但在小端平台上, @@dbts little-endian 字节顺序显示。要将小端 @@dbts 值转换为可与时间戳列比较的大 端值,请使用:

reverse(substring(@@dbts,1,2)) + 0x0000 + reverse(substring(@@dbts,5,4))

image


全局变量 定义

错误 返回系统最近一次生成的错误号。

@@errorlog 返回指向 Adaptive Server 错误日志所在目录的完整路径,该路径是相对于

$SYBASE 目录 (在 NT 上为 %SYBASE%)的路径。

@@failedoverconn 如果与主协同服务器的连接发生了故障切换而转到辅助协同服务器上执行,则 返回一个大于 0 的值。仅用于高可用性环境,并且因会话而异。

@@fetch_status 返回:

• 0 — 获取操作成功

• -1 — 获取操作失败

• -2 — 该值留作以后使用

@@guestuserid 返回 guest 用户的 ID

@@hacmpservername 返回高可用性设置中的协同服务器的名称。

@@haconnection 如果连接启用了故障切换属性,则返回一个大于 0 的值。这是一个因会话而异 的属性。

@@heapmemsize 返回堆内存池的大小,单位为字节。有关堆内存的详细信息,请参见 《系统 管理指南》

@@identity 返回最近一次生成的 IDENTITY 列值。

@@idl e 返回 Adaptive Server 自上次启动起空闲的时间 (以时钟周期计)。

@@instanceid 返回从中执行它的实例的 ID

@@instancename 返回从中执行它的实例的名称

@@invaliduserid 对于无效的用户 ID 返回 -1

@@io_bus y 返回 Adaptive Server 执行输入和输出操作所花费的时间 (以时钟周期计)。

@@ isolation 返回当前 Transact-SQL 程序特定于会话的隔离级别值 (01 3)。

@@jsinstanceid Job Scheduler 正在其中运行或启用后将在其中运行的实例的 ID

@@kernel_addr 返回包含内核区域的第一个共享内存区域的起始地址。返回结果的格式为: 0x

地址指针值

@@kernel_size 返回属于第一个共享内存区域的一部分的内核区域的大小。

@@kernelmod e 返回为 Adaptive Server 配置的模式 (线程或进程)。

@@langid 返回当前在整个服务器范围内使用的语言的语言 ID,该值在

syslanguages.langid 中指定。

@@language 返回当前使用的语言的名称,该名称在 syslanguages.name 中指定。

@@lastkpgendate 返回按 sp_passwordpolicy 的 “keypair regeneration period”策略选项所设置的那 样生成最后一个密钥对的日期和时间。

@@lastlogindate @@lastlogindate 可供每个用户登录会话使用,包括 datetime 数据类型,其值为 当前会话建立之前的登录帐户的 lastlogindate 列。此变量特定于每个登录会话, 可供该会话用于确定帐户的上次登录。如果以前未使用过该帐户,或者 “sp_passwordpolicy 'set', enable last login updates”为 0,则 @@lastlogindate 的值 为 NULL

image


全局变量 定义

@@lock_timeout 使用 set lock wait n 进行设置。返回当前的 lock_timeout 设置,单位为毫秒。

@@lock_timeout 返回值 n。缺省值为无超时。如果会话开始时没有执行任何 set lock wait n,则 @@lock_timeout 会返回 -1

@@lwpid 返回最近运行的轻量过程的对象 ID

@@max_connections 返回在当前计算机环境下可同时与 Adaptive Server 连接的最大数目。您可以使 用 number of user connections 配置参数将 Adaptive Server 的连接数配置为任何小 于或者等于 @@max_connections 的值。

@@max_precision 返回由服务器设置的 decimal numeric 数据类型所使用的精度级别。该值固定 为常数 38

@@maxcharlen 返回 Adaptive Server 的缺省字符集中一个字符的最大长度,单位为字节。

@@maxgroupid 返回最大的组用户 ID

@@maxpagesize 返回服务器的逻辑页大小。

@@maxspid 返回 spid 的最大有效值。

@@maxsuid 返回最大的服务器用户 ID

@@maxuserid 返回最大的用户 ID

@@mempool_addr 返回全局内存池表的地址。返回结果的格式为:0x 地址指针值。此变量仅供 内部使用。

@@min_poolsize 返回命名高速缓存池的最小大小,单位为千字节。该值是根据 DEFAULT_POOL_SIZE 的值(为 256)和 max database page size 的当前值进行 计算得出的。

@@mingroupid 返回最小的组用户 ID

@@minspid 返回 1,即 spid 的最小值。

@@minsuid 返回最小的服务器用户 ID

@@minuserid 返回最小的用户 ID

@@monitors_active 减少 sp_sysmon 显示的消息数。

@@ncharsize 返回当前服务器的缺省字符集中一个字符的最大长度,单位为字节。

@@nestlevel 返回当前的嵌套级别。

@@nextkpgendate 返回按 sp_passwordpolicy 的 “keypair regeneration period”策略选项所设置的那 样预定生成下一个密钥对的日期和时间。

@ @nodeid 返回当前安装的 48 位节点标识符。Adaptive Server 在第一次使用主设备时生成 一个 nodeid,并唯一地标识一个 Adaptive Server 安装。

@@optgoal 返回查询优化的当前优化目标设置。

@@optoptions 返回活动选项的位图。

选项 返回以十六进制表示的会话的 set 选项。

@@optlevel 返回当前的优化级别设置。

@@opttimeoutlimit 返回查询优化当前的优化超时限制设置。

@@ospid (仅限线程化模式)返回服务器的操作系统 ID

@@pack_received 返回 Adaptive Server 读取的输入包的数目。


全局变量

定义

@@pack_sent

返回 Adaptive Server 写入的输出包的数目。

@@packet_errors

返回 Adaptive Server 读写数据包时检测到的错误数。

@@pagesize

返回服务器的虚拟页大小。

@@parallel_degree

返回当前的最大并行度设置。

@@plwpid

返回最近准备的轻量过程的对象 ID

@@probesuid

对于 probe 用户 ID 返回值 2

@@procid

返回当前执行过程的存储过程 ID

@@quorum_physname

返回仲裁设备的物理路径

@@recovery_state

根据以下这些返回值,指出 Adaptive Server 是否正在进行恢复:

• NOT_IN_RECOVERYAdaptive Server 未处于启动恢复或故障切换恢复状

态。恢复已完成,且所有可以联机的数据库都已处于联机状态。

• RECOVERY_TUNINGAdaptive Server 正在进行恢复 (启动或故障切

换),且正在调节最佳恢复任务数。

• BOOTIME_RECOVERYAdaptive Server 正在进行启动恢复,并且已经完

成了调节最佳恢复任务数,但不是所有数据库都已恢复。

• FAILOVER_RECOVERAdaptive Server 正处于某次 HA 故障切换过程中的恢

复状态,并且已经完成了调节最佳恢复任务数。所有数据库都还没有联机。

@@remotestate 返回高可用性环境中主协同服务器的当前模式。有关返回的值,请参见 《在 高可用性环境中使用 Sybase 故障切换》

image

@@repartition_degree 返回当前的动态重新分区程度设置。

@@resource_granularity 返回查询优化的最大资源使用情况提示设置。

@@rowcount 返回上次查询所影响的行数。指定游标是仅向前游标还是可滚动游标将影响

@@rowcount 的值。

如果游标是缺省的不可滚动游标,则 @@rowcount 的值只能向前按一递增,直 至读取完结果集中的行。这些行是从基础表中读取到客户端的。 @@ rowcount 的最大值是结果集中的行数。

在缺省游标中, @@rowcount 由不返回或不影响行的任何命令 (如 if set 命 令)设置为 0,或者由不影响任何行的 update delete 语句设置为 0

如果游标是可滚动游标,则 @@rowcount 无最大值。每次执行 fetch 时,无论 方向如何,该值都会继续增加,并且没有最大值。可滚动游标中的

@@rowcount 值反映的是从结果集中读取到客户端的行数,而不是从基础表中 读取到客户端的行数。

@@scan_parallel_degree 返回用于非聚簇索引扫描的当前最大并行度设置。

@@servername 返回 Adaptive Server 的名称。

@@setrowcount 返回 set rowcount 的当前值。

image


全局变量 定义

@@shmem_flags 返回共享内存区域的属性。此变量仅供内部使用。总共有 13 个不同的属性值, 分别对应于整数中的 13 位。从低位到高位表示的有效值分别为: MR_SHAREDMR_SPECIALMR_PRIVATEMR_READABLEMR_WRITABLEMR_EXECUTABLEMR_HWCOHERENCYMR_SWCOHERENCMR_EXACTMR_BESTMR_NAILMR_PSUEDOMR_ZERO

@@spid 返回当前进程的服务器进程 ID

@ @sqlstatus 返回执行 fetch 语句时产生的状态信息 (警告例外)。

@@ssl_ciphersuite 如果 SSL 未用于当前连接,则返回 NULL ;否则,它返回在当前连接的 SSL

握手期间您选择的密码成套程序的名称。

@@stringsize 返回从 toString() 方法返回的字符数据的数量。缺省值为 50,最大值为 2GB。 值 0 指定缺省值。有关详细信息,请参见 《组件集成服务用户指南》

@@sys_tempdbid 返回正在执行的实例的有效本地系统临时数据库的数据库 ID

@@system_busy Adaptive Server 正在运行系统任务的时钟周期数 1

@ @system_view 返回特定于会话的系统视图设置 (“实例”或 “集群”)

@@tempdbid 返回为会话指定的临时数据库的有效临时数据库 ID (dbid)

@@textcolid 返回 @@textptr 所引用列的列 ID

@@textdataptnid 返回一个文本分区的分区 ID,该文本分区包含由 @@textptr 引用的列。

@@textdbid 返回一个数据库的数据库 ID:该数据库包含的对象具有被 @@textptr 引用的列。

@@textobjid 返回一个对象的对象 ID,该对象包含被 @@textptr 引用的列。

@@textptnid 返回一个数据分区的分区 ID,该分区包含由 @@textptr 引用的列。

@@textptr 返回某个进程上次插入或更新的 textunitext image 列的文本指针 (与

textptr 函数不同)。

@@textptr_parameters 如果 textptr_parameters 配置参数的当前状态为关闭,则返回 0。如果 textptr_parameters 的当前状态为打开,则返回 1。有关详细信息,请参见 《组 件集成服务用户指南》

@@t extsize 返回 select 返回的 textunitext image 数据的字节数限制。isql 的缺省限制为 32K

字节;缺省值取决于客户端软件。它可以用 set textsize 为某个会话进行更改。

@@textts 返回 @@textptr 所引用列的文本时间戳。

@@thresh_hysteresis 返回激活阈值所要求的可用空间的减小量。此数量也称作停滞值 (以 2K 数据 库页为单位)。它确定阈值在数据库段中可放置的接近程度。

@@timeticks 返回每个时钟周期中的微秒数。每个时钟周期的时间量与计算机有关。

@@total_errors 返回 Adaptive Server 读写数据时检测到的错误数。

@@total_read 返回 Adaptive Server 的磁盘读取操作的数目。

@@total_write 返回 Adaptive Server 的磁盘写入操作的数目。

@@tranchained 如果 Transact-SQL 程序的当前事务模式为非链式,则返回 0。如果 Transact-SQL 程序的当前事务模式为链式,则返回 1

@@trancount 返回当前用户会话中事务的嵌套级别。


image

全局变量 定义

@@transactional_rpc 如果对远程服务器的 RPC 操作是事务型的,则返回 0。如果对远程服务器的 RPC 操作不是事务型的,则返回 1。请参见 《参考手册》中的 enable xact coordination set option transactional_rpc。另外,请参见 《组件集成服务用户 指南》

@@transtate 返回当前用户会话执行某个语句之后事务的当前状态。

@@unicharsize 返回 2,它是 unichar 类型的字符的大小。

@@user_busy Adaptive Server 正在运行用户任务的时钟周期数 1

@@version 返回 Adaptive Server 当前版本的日期、版本字符串等信息。

@@version_as_integer 返回 Adaptive Server 当前版本的最近升级版本的版本号,用整数表示。例如, 如果运行的是 Adaptive Server 版本 12.512.5.0.3 12.5.1

@@version_as_integer 将返回 12500

@@version_number 返回 Adaptive Server 当前版本的完整版本号,用整数表示。


1@@user_busy + @@system_busy 的值应等于 @@cpu_busy 的值


 



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