提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系电话: (微信),QQ: 289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371 联系我们获取数据库技术支持!
Email: 289965371@qq.com
扫描下方微信,联系我们:
扫描雨翰数据恢复官方微信获取专业数据库恢复服务

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从https://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站https://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. 实用程序指南

 


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

管理表中的标识间隔

IDENTITY 列包含一个由 Adaptive Server 生成的、表中每一行的唯一 ID 号。由于缺省情况下由服务器生成 ID 号,因此可能偶尔会使 ID 号有很 大的间隔。 identity_gap 参数可控制特定表中的 ID 号及其可能的间隔。

缺省情况下,Adaptive Server 会在内存中分配一个 ID 号块,而不是将每 个 ID 号按需写入磁盘,这样做需要更多的处理时间。服务器会将每个 块的最大号入表的对象分配映射 (OAM) 页。当前分配的号码块已使用 或 “烧毁”后,此号码将用作下一个块的起始点。该块的其它号码保 留在内存中,但不保存磁盘上。当号码被分配到内存,随后因为被指派 到行中或因为某些反常事件 (如系统故障)而被从内存中删除时,这 些号码就认为被 “烧毁”了。

分配 ID 号码块减少了对表的争用,从而提高了性能。但是,在 ID 号码 全部指派完之前,如果服务器出现故障或用 no wait 关机,则未使用的号 码被烧毁。当服务器再次运行时,它会以先前写入磁盘的块的最高号码 为基础,开始为下一号码块编号。依据出现故障前被指派到行中的已分 配号码的多少, ID 号可能会有很大的间隔。

标识间隔也可能由转储和装载活动数据库产生。转储时,数据库对象被 保存到 OAM 页中。如果当前正在使用某个对象,则 maximum used identity value 不在 OAM 页中,因此不会对其进行转储。


控制标识间隔的参数

Adaptive Server 提供了用于控制标识号间隔的参数 (如 8- 3 所述)。

8-3:控制标识间隔的参数

image

image

参数名 范围 使用 说明

identity_gap 特定于表 create table

select into

image

为特定表创建特定大小的 ID 号块。覆盖该表 的 identity burning set factor。使用 identity grab size

identity burning set factor 服务器范

围内


image

identity grab size 服务器范 围内

sp_configure 指出要为每个块分配的总可用 ID 号码的百分 比。使用 identity grab size。如果将表的 identity_gap 设置为 1 或更高值,则 identity burning set factor 对该表无影响。 burning set factor 用于 identity_gap 设置为 0 的所有表。

设置 identity burning set factor 时,以十进制形 式表示数字,然后乘以 10,000,000 (10 7 ) 以得 到用于 sp_configure 的正确值。例如,要每次 释放 15% (.15) 的可能 IDENTITY 列值,指定

的值应为 .15 乘以 10 7 (即 1,500,000):

sp_configure "identity burning set factor", 1500000

sp_configure 为每一进程保留连续的 ID 号码块。使用

identity burning set factor identity_gap

image


identity burning set factor identity_gap 的比较

identity_gap 参数控制特定表的标识间隔的大小。

例如,如果您创建一个名为 books 的表,其中包括书店中所有书籍,则 每本书必须具有 Adaptive Server 自动生成的唯一 ID 号。 books 包括 IDENTITY 列,该列使用缺省数值 (18, 0),提供总共 999,999,999,999,999,999 ID 号。 identity burning set factor 配置参数使用 缺省设置 5000 999,999,999,999,999,999 .05%),即表示 Adaptive Server 分配 500,000,000,000,000 个号码的号码块。

服务器在内存中分配第一批 500,000,000,000,000 个号码,并将该块的最 高号码 (500,000,000,000,000) 存储在表的 OAM 页中。当所有号码均被 指派到行中或烧毁后, Adaptive Server 会取来下一个号码块 (下一批 500,000,000,000,000 个号码),此块从 500,000,000,000,001 开始,并将

1,000,000,000,000,000 存储为该块的最高号码。

如果服务器在行号 500,000,000,000,022 后失败,则只有号码 1

500,000,000,000,022 用作 books ID 号。号码 500,000,000,000,023

1,000,000,000,000,000 被烧毁。当 Adaptive Server 再次启动时,会创建 以存储在表的 OAM 页中的最高号加一 (1,000,000,000,000,001) 开始的 ID 号,留下 499,999,999,999,978 个号码间隔。


减少标识号间隔


identity_gap 1000 创建 books 表。这样会覆盖能产生 500,000,000,000,000 ID 号码的号码块的全服务器范围 identity burning set factor 设置。更改后,服务器会在内存中分配 1000 ID 号码的号码块。

服务器分配第一批的 1000 个号码,并将该块的最高号码 (1000) 存储到 磁盘中。所有号码均被使用后,Adaptive Server 会取来下一批 1000 个号 码,以 1001 开,并将 2000 作为最高号码存储。

如果 Adaptive Server 在行号 1002 后失败,则它使用号码 1000 1002: 号码 1003 2000 将会丢失。当重新启动 Adaptive Server 时,会创建以 存储在表的 OAM 页的最高号加一 (2000) 开始的 ID 号,只留下 998 个号 码间隔。

通过为表设置 identity_gap 而不使用全服务器范围的 table burning set factor, 可极大地减少 ID 号码的间隔。但是,如果将此值设置得过低,服务器 每次都必须将块的最高号码写入磁盘,因此会影响性能。例如,如果 identity_gap 设置为 1,即表示一次分配一个 ID 号,服务器必须在每次创 建行时都写入新号码,这样会在表上出现页锁争用,从而可能会降低性 能。必须找到可获得最佳性能、而对您的具体情况来说间隔值又最低的 最佳设置。


设置特定于表的标识间隔

使用 create table select into 创建表时,应设置特定于表的标识间隔。 此语句创建一个带 identity 列的名为 mytable 的表:

create table mytable (IdNum numeric(12,0) identity) with identity_gap = 10

标识间隔设置为 10,表示将在内存中以十个 ID 号的块为单位分配 ID 号。如果服务器出现故障或没有等待就关闭服务器,那么分配给行的最 后一个 ID 与分配给行的下一个 ID 号之间的差距为十个号码。

如果用 select into 语句从具有特定标识间隔设置的表创建表,则新表不 继承父表的标识间隔设置。而使用 identity burning set factor 设置。若要为 新表指定一个特定的 identity_gap 设置,则应在 select into 语句中指定标 识间隔。可以为新表指定一个与父表相同或不同的标识间隔。

例如,要从带标识间隔的现有表 (mytable) 创建新表 (newtable)

select IdNum into newtable with identity_gap = 20 from mytable


更改特定于表的标识间隔

若要更改特定表的标识间隔,请使用 sp_chgattribute

sp_chgattribute "table_name", "identity_gap", set_number

例如:

sp_chgattribute "mytable", "identity_gap", 20

要将 mytable 改为使用 identity burning set factor 设置而不是 identity_gap 设 置,应将 identity_gap 设置为 0

sp_chgattribute "mytable", "identity_gap", 0

请参见 《参考手册:过程》。


显示特定于表的标识间隔信息

若要查看表的 identity_gap 设置,请使用 sp_help

例如, identity_gap 列 (接近输出末尾)的零值表示未设置特定于表的 标识间隔。 mytable 使用全服务器范围的 identity burning set factor 值。

sp_help mytable

Name Owner Object_type Create_date

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

mytable dbo user table Nov 29 2004 1:30PM


(1 row affected)

. . .

exp_row_size reservepagegap fillfactor max_rows_per_page identity_gap

------------ -------------- ---------- ----------------- ------------ 1 0 0 0 0



sp_help mytable

如果将 mytable identity_gap 改为 20,则在该表 sp_help 输出的 identity_gap

列会显示 20。此设置会覆盖全服务器范围的 identity burning set factor 值。

Name Owner Object_type Create_date

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

mytable dbo user table Nov 29 2004 1:30PM


(1 row affected)

. . .

exp_row_size reservepagegap fillfactor max_rows_per_page identity_gap

------------ -------------- ---------- ----------------- ------------ 1 0 0 0 20


由于其它原因产生的间隔

手动向 IDENTITY 列中插入值、删除行、设置 identity grab size 值以及回 退事务可能会使 IDENTITY 列值产生间隔。设置 identity burning set factor 不会影响这些间隔。

例如,假设有一带有如下值的 IDENTITY 列:

select syb_identity from stores_cal id_col

-------

1

2

3

4

5

可删除 IDENTITY 列值在 2 4 之间的所有行,使列值出现间隔:

delete stores_cal

where syb_identity between 2 and 4 select syb_identity from stores_cal

id_col

------

1

5

为表设置 identity_insert on 之后,表所有者、数据库所有者或系统管理员 可手工插入任何大于 5 的合法数值。例如,如果插入值 55,便会使 IDENTITY 列值产生很大间隔:

insert stores_cal

(syb_identity, stor_id, stor_name) values (55, "5025", "Good Reads") select syb_identity from stores_cal

id_col

-------

1

5

55

如果随后将 identity_insert 设置为 off,则 Adaptive Server 在下一次插入时 为 IDENTITY 列指派值 55 + 1 (即 56)。如果包含 insert 语句的事务被 回退, Adaptive Server 会放弃值 56,并为下一次插入使用值 57


当表插入达到 IDENTITY 列的最大值时

可插入表中的最大行数取决于 IDENTITY 列的精度设置。如果某表达到 该限制,则可以使用较高精度重新创建该表,或者该表的 IDENTITY 列 未用于参照完性,则可以使用 bcp 删除间隔。请参见 225 页的 “达到 IDENTITY 列的最大值




--------------------------------------华丽的分割线-------------------------------------------------------------------------

Sybase SQL Anywhere数据库恢复工具ReadASADB:

之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具: ReadASADB。
此工具支持ASA v5.0, v6.0, v7.0, v8.0, v9.0, v10.0, v11.0, v12.0, v16.0, v17.0等版本。
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具。
恢复Sybase SQL Anywhere的工具在国内处于领先水平。

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,16.x,17.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使用介绍

Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

Sybase SQL Anywhere数据库恢复工具ReadASADB的应用场景:

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
7、*** ERROR *** Assertion failed: 201417 (7.0.4.3541) Invalid count or free space offset detected on a table page
8、Internal database error *** ERROR *** Assertion failed: 201425 (8.0.3.5594) Invalid count or free space offset detected on a free list page -- transaction rolled back.
9、Internal database error *** ERROR *** Assertion failed: 100702 (8.0.1.2600) Unable to modify indexes for a row referenced in rollback log -- transaction rolled back


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

Sybase ASE数据库恢复工具READSYBDEVICE:

一个不依赖数据库管理系统、直接从Sybase数据库设备文件上提取数据的业内领先的恢复工具!
能够从损坏的Sybase ASE设备文件(.dat)上提取数据的非常规恢复工具。

Sybase ASE数据库恢复工具READSYBDEVICE的主要功能:

  1. 被勒索病毒加密数据文件及备份文件情况下的恢复;
  2. 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
  3. 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
  4. delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复 等;
  5. 各种Sybase内部系统表损坏、索引错误的修复;
  6. master数据库损坏而无法正常运行情况下的恢复;
  7. Sybase数据库被标记为可疑,不可用等情况的恢复;
  8. Sybase数据库中数据文件内部出现坏块情况下的恢复;
  9. Sybase数据库无数据文件但有日志文件的情况下的恢复;
  10. Sybase数据库只有数据文件无任何日志文件的情况下的恢复;
  11. Sybase数据文件被误删除情况下的碎片提取恢复;
  12. 磁盘阵列上的Sybase数据库被误格式化情况下的数据库恢复;
  13. 数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
  14. Sybase数据库还原数据库出现失败情况下的恢复;
  15. Sybase数据库只剩下损坏的备份文件情况下的恢复。

Sybase ASE数据库恢复工具READSYBDEVICE支持的版本:

Sybase ASE 11.0.x,11.5.x,11.9.x,12.0.x,12.5.x,15.0.x,15.5.x,15.7.x,16.0.x


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

SQL Server数据库恢复工具SQLRescue:

一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!
能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。

SQL Server数据库恢复工具SQLRescue的主要功能:

  1. 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;
  2. 断电导致数据库文件损坏情况下的恢复;
  3. 硬盘坏道造成数据库损坏情况下的恢复;
  4. 数据文件内部存在坏页情况下的恢复;
  5. 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;
  6. 并闩锁错误、格式化、误删除后导致软件不能使用的情况;
  7. 无法读取并闩锁页sysindexes失败情况下的修复;
  8. 数据文件被误删除情况下的碎片提取恢复;
  9. 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;
  10. master数据库损坏而无法正常运行情况下的恢复;
  11. 数据文件无法附加情况下的数据恢复;
  12. 数据库被标记为可疑,质疑,不可用等情况的恢复;
  13. 数据库sysobjects等系统表损坏情况下的恢复;
  14. 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;
  15. 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;
  16. 数据库被误格式化等情况下的数据库恢复;
  17. 日志收缩造成数据库损坏情况下的恢复;
  18. 仅剩损坏的备份文件情况下的恢复。

SQL Server数据库恢复工具SQLRescue技术特点:

只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。
  1. 从数据文件中直接恢复数据
  2. 不能附加时直接恢复数据并生成新的数据库
  3. 系统表损坏的数据库修复
  4. 快速修复SQL 823错误、连接中断错误

SQL Server数据库恢复工具SQLRescue支持的版本:

Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------