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

 


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

用于管理空间分配的页

除数据、索引和用于存储数据的 LOB 页外,Adaptive Server 还使用其它 类型的页管理存储、跟踪空间分配和定位数据库对象。 sysindexes 表还 存储在访问数据时使用的指针。

管理空间分配和 sysindexes 指针的页用于:

加速查找数据库中对象的进程。

加速为对象分配空间和释放空间的进程。

Adaptive Server 提供了在邻近对象已用空间处再为其分配更多空 间的方法。由于减少了磁头移动,因此这有助于提高性能。

这些页跟踪数据库对象所用的磁盘空间:

全局分配映射 (GAM) 页包含整个数据库的分配位图。

分配页可在 256 页或 0.5MB 的组内跟踪空间使用情况和对象。

对象分配映射 (OAM) 页包含用于对象的扩充的有关信息。表和索引 的各个分区至少有一个 OAM 页用于跟踪对象页在数据库中的存储 位置。

• OAM 页管理分区表的空间分配。


全局分配映射页


每个数据库都有一个 GAM,用于存储数据库的所有分配单元的位图, 每个分配单元 1 位。当分配单元没有可用于存储对象的自由扩充时, GAM 中的相应位将设置为 1

这种机制能加速为对象分配新的空间。用户无法查看 GAM 页;它在系 统目录中显示为 sysgams 表。


分配页


创建数据库或向数据库添加空间时,该空间被分成由 256 个数据页组成

的分配单元。每个分配单元中的第一页为分配页。 0 页和所有 256 的整 数倍的页为分配页。

分配页通过记录扩充中存储的对象的分区 ID、对象 ID 和索引 ID,以及 已用和可用页数,来跟踪分配单元上每个扩充中的空间。分配页还存储 表或索引的相应 OAM 页的页 ID


对象分配映射页


表、索引和文本链的每个分区都有一个或多个对象分配映射 (OAM) 页, 这些页存储在分配给表或索引的页中。如果表有多个 OAM 页,则这些 页以链的形式链接。OAM 页存储指向含有该对象页的分配单元的指针。

该链中的第一页用于存储分配提示,以指示链中哪一 OAM 页存储拥有 可用空间的分配单元的信息。这提供了为对象分配额外空间并使新空间 接近对象已使用的页的快捷方式。


OAM 页和分配页管理对象存储的方式

2-1 显示了 OAM 页和分配页管理分配单元、扩充和对象的方式。

图中显示了两个分配单元,一个起始于 0 页,一个起始于第 256 页。 每个单元的第一页为分配页。

表存储在四个扩充上,在第一个分配单元上起始于第 1 页和第 24 页,

在第二个分配单元上起始于第 272 页和第 504 页。

表的第一页为表的 OAM 页。它指向每个分配单元(对象使用其页) 的分配页,因此它指向第 0 页和第 256 页。

分配页 0 和分配页 256 存储扩充所属的表的对象 ID、索引 ID 和分区

ID。分配页 0 指向表的第 1 页和第 24 页,分配页 256 指向第 272

和第 504 页。


image

OAM

0

256

OAM

0

256

2-1OAM 页和分配页指针


image

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

..

.

248

249

250

251

252

253

254

255

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

..

.

248

249

250

251

252

253

254

255

image 保留页 image 分配页

其他


256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

..

.

504

505

506

507

508

509

510

511


页分配将对象的页放在一起

Adaptive Server 会尝试将每个对象 (例如表分区、索引或表的文本链或 图像链)的页分配放在一起。

通常,当 Adaptive Server 需要新页时:

如果对象的当前扩充包含可用页, Adaptive Server 将使用此页。

如果当前扩充中没有可用页,但分配给同一分配单元内的对象的另 一个扩充中有可用页, Adaptive Server 将使用此页。

如果当前分配单元没有包含分配给对象的可用页的扩充,但有可用 扩充, Adaptive Server 将分配可用扩充的第一个可用页。

如果当前分配单元已满,Adaptive Server 将扫描对象的 OAM 页,以 查找其中扩充包含可用页的另一个分配单元,并使用第一个可用页。

如果没有 OAM 条目指示存在可用页,Adaptive Server 会将 OAM 条 目与全局分配映射页进行比较,以查看任意分配单元是否有可用扩 充。 Adaptive Server 将分配第一个可用扩充的第一个可用页。


如果所有 OAM 条目都用于已满的分配单元,Adaptive Server 将搜索 全局分配映射,以查找至少包含一个可用扩充的分配单元。Adaptive Server 会将该分配单元的 OAM 条目添加到对象的 OAM 中,同时分 配可用扩充,并使用该扩充的第一个可用页。


image

注释 类似 bcp reorg rebuild 之类使用大规模分配的操作不会在已分配 扩充中查找可用页,而是会分配已满的可用扩充。大规模分配通常无法 使用每个分配单元的第一个扩充。第一个扩充仅有 7 个可用页,因为其 第一页用于保存分配页的结构。

image


使用 sysindexes syspartitions 的数据访问

sysindexes 表可存储已建索引和未建索引的表的信息。以下信息在

sysindexes 中各占一行:

所有页锁定表 — 如果此表没有聚簇索引,indid 列为 0,如果有聚簇 索引,则为 1

• DOL 锁定表 — 对于此表, indid 始终为 0

非聚簇索引 — 以及对 DOL 锁定表创建的每个聚簇索引。

包含一个或多个 LOB 列的表 — 对于 LOB 结构,索引 ID 始终为 255

syspartitions 存储每个表和索引分区的相关信息,其中每个分区各占一行。

Adaptive Server 15.0 及后续版本中,syspartitions 的各行存储指向表或 索引的指针,以加快访问对象的速度。 2-2 显示了在访问数据期间如 何使用这些指针。

2-2:访问数据期间 syspartitions 指针的使用情况

image

image

列 用于表访问 用于索引访问

image

root 如果 indid 0,且表是已分区的所有 页锁定表,则 root 指向堆的最后一页。

first 指向所有页锁定表页链中的第一个数 据页。

image

doampg 指向表中的第一个 OAM 页。

用于查找索引树的根页。


指向 DOL 锁定表上非聚簇索引或聚 簇索引中的第一个叶级页。

image

ioampg 指向索引的第一个 OAM 页。

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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------