远程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 checkstorage 之前的准备工作

使用 dbcc checkstorage 之前,请配置 Adaptive Server 并设置 dbccdb

数据库。 11-3 按使用的先后顺序总结了各个步骤和命令。

以下各节详细描述了每个操作。本节中的示例假设服务器使用 2K

逻辑页。


11-3:使用 dbcc checkstorage 之前的准备工作

image

image

对于此操作 请参见 使用此命令

1. 为目标数据库获取有关数据库 大小、设备(如果 dbccdb 不存 在)、工作空间大小、高速缓存 大小和工作进程数的建议。

image

2. 如有必要,调整 Adaptive Server

使用的工作进程数。


image

image

3.(可选)为 dbcc 创建一个命名 高速缓存。

253 页的“计划资源”

255 页的“计划工作空间 大小”


257 页的“配置工作 进程”


258 页的“为 dbcc 设置命 名高速缓存”

use master sp_plan_dbccdb


sp_configure

number of worker processes memory per worker processes sp_cacheconfig

image

4. 配置缓冲池。 259 页的“配置一个 8 页 的 I/O 缓冲池”

image

5. 如果 dbccdb 已存在,则应在创 建新的 dbccdb 数据库之前将它和 所有与其关联的设备全部删除。

sp_poolconfig drop database

6. 初始化用于存储 dbccdb 数据和 日志的磁盘设备。

image

7.(可选)在数据磁盘设备上创建

image

dbccdb

260 页的“为 dbccdb 分配 磁盘空间”

disk init


create database

8.(可选)添加磁盘段。 260 页的“用于工作空间

的段”

image

9. 填充 dbccdb 数据库并安装 dbcc

存储过程。

use dbccdb


isql -Usa -P -i

$SYBASE/$SYBASE_ASE/scripts

/installdbccdb


image

注释 dbcc checkstorage 对磁盘上的数据库运行检查。如果损坏仅在 内存中,dbcc 可能检测不到损坏。为确保连续两个 dbcc checkstorage 命令之间的一致性,应首先运行 checkpoint。请注意,运行 checkpoint 可能会使瞬时内存损坏成为磁盘损坏。

image


计划资源


dbccdb 选择适当的设备和大小对于执行 dbcc checkstorage 操作很 重要。sp_plan_dbccdb 根据 dbccdb 是否存在为指定的目标数据库提 供配置建议。可以使用这些信息来配置 Adaptive Server 和设置 dbccdb 数据库。


sp_plan_dbccdb 输出的示例

如果 dbccdb 不存在,sp_plan_dbccdb 将返回:

dbccdb 的最小大小

适用于 dbccdb 的设备

scan text 工作空间的最小大小

高速缓存的最小大小

工作进程数

建议的高速缓存大小值是近似值,因为 dbccdb 的最佳高速缓存大小 取决于目标数据库中页分配的模式。以下示例来自使用 2K 逻辑页 的服务器,它显示了当 dbccdb 不存在时,对 pubs2 数据库运行 sp_plan_dbccdb 所产生的输出:

sp_plan_dbccdb pubs2 Recommended size for dbccdb is 4MB.

Recommended devices for dbccdb are:

Logical Device Name Device Size Physical Device Name sprocdev 28672 /remote/SERV/sprocs_dat

tun_dat 8192 /remote/SERV/tun_dat

tun_log 4096 /remote/SERV/tun_log


Recommended values for workspace size, cache size and process count are: dbname scan ws text ws cache process count

pubs2 64K 64K 640K 1

(return status = 0)


如果 dbccdb 已存在,sp_plan_dbccdb 将返回:

dbccdb 的最小大小

现有 dbccdb 数据库的大小

scan text 工作空间的最小大小

高速缓存的最小大小

工作进程数


以下示例显示当 dbccdb 已存在时,对 pubs2 数据库运行 sp_plan_dbccdb

所产生的输出:

sp_plan_dbccdb pubs2

Recommended size for dbccdb database is 23MB (data = 21MB, log = 2MB). dbccdb database already exists with size 8MB.

Recommended values for workspace size, cache size and process count are: dbname scan ws text ws cache process count

pubs2 64K 48K 640K 1

(return status = 0)

如果计划检查多个数据库,应为目标数据库使用最大的数据库的名 称。如果没有提供目标数据库名,sp_plan_dbccdb 将为 master..sysdatabases 中列出的所有数据库返回配置值:

sp_plan_dbccdb Recommended size for dbccdb is 4MB.

dbccdb database already exists with size 8MB.


Recommended values for workspace size, cache size and process count are:


dbname


master

scan


64K

ws

text


64K

ws

cache


640K

process count


1

tempdb

64K

64K

640K

1

model

64K

64K

640K

1

sybsystemprocs

384K

112K

1280K

2

pubs2

64K

64K

640K

1

pubs3

64K

64K

640K

1

pubtune

160K

96K

1280K

2

sybsecurity

96K

96K

1280K

2

dbccdb

112K

96K

1280K

2

请参见《参考手册:过程》中的“sp_plan_dbccdb”。


计划工作空间大小


dbccdb 需要两个工作空间:scan text。这些工作空间的空间需求 取决于要检查的最大数据库的大小。若要运行并发 dbcc checkstorage 操作,需设置额外的工作空间。


确定要检查的最大数据库的大小


不同的数据库可以使用相同的工作空间。因此,工作空间必须足够 大,以能够适合要使用的最大的数据库。


image

注释 sp_plan_dbccdb 建议工作空间大小 — 下面关于确定工作空间 大小的细节仅供参考。

image


目标数据库中的每一页由 scan 工作空间中的一个 18 字节的行表示。 此工作空间应该大约是目标数据库大小的 1.1%

目标数据库中的每个非空 text 列在 text 工作空间中插入一个 22 字节 的行。如果目标数据库中有 n 个非空 text 列,则 text 工作空间的大 小必须至少是 (22 * n ) 字节。非空 text 列的数目是动态的,所以需要 为 text 工作空间分配足够的空间以适应将来的需求。text 工作空间 所需的最小空间是 24 页。


可以同时使用的工作空间的数目

可以配置 dbccdb 以在多个数据库上同时运行 dbcc checkstorage。只 有在第二个和随后的 dbcc checkstorage 操作有自己专用的资源时, 此方法才可行。若要执行并发 dbcc checkstorage 操作,每项操作必 须具有自己的 scan text 工作空间、工作进程和保留的高速缓存。

工作空间所需的全部空间取决于对用户数据库是串行检查还是并发 检查。如果 dbcc checkstorage 操作以串行方式运行,则最大的 scan text 工作空间可用于所有用户数据库。如果 dbcc checkstorage 操作 以并发方式运行,则 dbccdb 应设置为可以适合将并发使用的最大工 作空间。通过增加将并发检查的最大数据库的大小,可以确定工作 空间大小。

请参见《参考手册:表》中的“dbccdb 表”。


工作空间自动扩展


sp_dbcc_updateconfig.. automatic workspace expansion 选项指示

checkstorage 是否在必要时自动调整工作空间的大小。

开始运行 checkstorage 时,会验证工作空间的大小。如果需要更多 空间,并且启用了 automatic workspace expansion,当相应的段上有 足够的可用空间时,checkstorage 会自动扩展工作空间。如果需要更 多空间,并且未启用 automatic workspace expansioncheckstorage 将 退出并显示信息性消息。


1(缺省值)将启用 automatic workspace expansion。值 0 将禁用

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


缺省的 scan 工作空间和 text 工作空间

运行 installdbccdb 脚本时,会创建缺省的 scan 工作空间和 text 工作 空间。缺省 scan 工作空间的名称为 def$scan$ws,其大小为 256K。 缺省 text 工作空间的名称为 def$text$ws,其大小为 128K。如果尚未 配置缺省工作空间并且目标数据库尚未配置工作空间值,将使用这 些缺省工作空间。


配置工作进程


以下参数可影响 dbcc checkstorage

max worker processes — 使用 sp_dbcc_updateconfig 设置此参数。 它为每个目标数据库更新 dbcc_config 表中 max worker processes 的值。

number of worker processes — 使用 sp_configure 设置此配置参数。 它更新 server_name.cfg 文件。

memory per worker process — 使用 sp_configure 设置此配置参数。 它更新 server_name.cfg 文件。

max worker processes 为每个目标数据库指定 dbcc checkstorage 使用的 工作进程最大数,而 number of worker processes 指定 Adaptive Server 支持的工作进程总数。工作进程不是专用来运行 dbcc checkstorage 操作的。

number of worker processes 的值设置得足够高,使之支持 max worker processes 指定的进程数。工作进程数低会降低性能并减少 dbcc checkstorage 的资源消耗。dbcc checkstorage 使用的进程数不能 多于数据库使用的数据库设备数。高速缓存大小、CPU 性能和设备 大小表明的工作进程数可能较低。如果没有为 Adaptive Server 配置 足够的工作进程数,dbcc checkstorage 将不能运行。

maximum parallel degree maximum scan parallel degree 对于 dbcc checkstorage 的并行功能没有影响。将 maximum parallel degree 设置 为 1 时,不会禁用 dbcc checkstorage 中的并行度。

dbcc checkstorage 需要多个工作进程,所以 number of worker processes

必须至少设置为 1 以支持父进程和工作进程。


sp_plan_dbccdb 根据数据库大小、设备数和其它因素推荐工作进程 数的值。可使用较小的值来限制系统上的负载。dbcc checkstorage 使用的工作进程可能会少于 sp_plan_dbccdb 推荐的或您自己配置的 工作进程。

使用更多的工作进程并不能保证更好的性能。以下情况说明了两种 不同配置的效果:

一个 8GB 的数据库在磁盘 A 上有 4GB 数据,在磁盘 BCDEFGH I 上各有 0.5GB 数据。

如果有 9 个工作进程是活动的,则运行 dbcc checkstorage 所需时间 为 2 小时,这也是用来检查磁盘 A 的时间。其它 8 个工作进程分别 在 15 分钟内完成检查,并等待磁盘 A 工作进程完成检查。

如果有两个工作进程是活动的,运行 dbcc checkstorage 仍然需要 2 小 时。第一个工作进程处理磁盘 A,另一个工作进程处理磁盘 BCDEFGH I。这种情况下无需等待,可以更有效地利用 资源。

memory per worker process Adaptive Server 中支持的工作进程指定 总的内存分配量。缺省值足够用于 dbcc checkstorage


dbcc 设置命名高速缓存

如果为 dbcc checkstorage 使用命名高速缓存,可能需要调整 Adaptive Server 配置参数。

dbcc checkstorage 运行期间,工作空间将临时绑定到也读取目标数 据库的高速缓存。使用专用于 dbcc 的命名高速缓存将会尽可能减少 数据库检查对其他用户的影响,并可提高性能。可为同时运行的每 个 dbcc checkstorage 操作创建一个单独的高速缓存,也可以创建一 个足够大的高速缓存以适应并发操作的全部需求。最佳性能所需的 容量大小取决于目标数据库的大小及该数据库中数据的分布。dbcc checkstorage 要求命名高速缓存中的每个工作进程都至少具有 640K 的缓冲区(每个缓冲区是一个扩充)。

为获得最佳性能,应将专用高速缓存的大部分指派给缓冲池,而且 不要对高速缓存分区。建议的高速缓存大小是缓冲池的最小大小。 对此值增加一页缓冲池空间。


如果将一个高速缓存专用于 dbcc checkstorage,则此命令要求的大 小不会大于一页缓冲池的最小值。如果高速缓存是共享的,则可以 通过在运行操作之前增加缓冲池的大小,并在操作完成之后减其大 小来提高 dbcc checkstorage 的性能。缓冲池的要求与共享高速缓存 的要求一样。然而,虽然共享高速缓存可以满足大小要求,但高速 缓存中的其它要求可能会限制可供 dbcc checkstorage 使用的缓冲区, 并大大影响 checkstorage Adaptive Server 的整体性能。


image

注释 由于为 dbcc checkstorage 指定专用的高速缓存分区时 Adaptive Server 可能会发出错误消息 9946 9947,因此 Sybase 建议您为 dbcc checkstorage 指定专用的命名高速缓存。

image


若要为 Adaptive Server 配置一个用于 dbcc checkstorage 操作的命名高 速缓存,请使用 sp_cacheconfig sp_poolconfig 。请参见 4 章“配 置数据高速缓存”


配置一个 8 页的 I/O 缓冲池

dbcc checkstorage 要求一个其大小为一个扩充的 I/O 缓冲池。使用 sp_poolconfig 配置缓冲池大小并检验缓冲池是否配置正确。缓冲池 大小存储在 dbcc_config 表中。

dbcc checkstorage 缓冲池的大小等于页大小乘以 16。不同页大小的

dbcc checkstorage 缓冲池要求分别为:

2KB 页服务器)*8 个扩充)= 16k 缓冲池

4KB 页服务器)*8 个扩充)= 32k 缓冲池

8KB 页服务器)*8 个扩充)= 64k 缓冲池

16KB 页服务器)*8 个扩充)= 128k 缓冲池

下例显示了如何使用 sp_poolconfig 在配置为 2K 逻辑页的服务器上为 “master_cache”设置 16K 缓冲池。命名高速缓存是为 master 数据 库创建的。

1> sp_poolconfig "master_cache", "1024K", "16K" 2> go

(return status = 0)

下例显示已为专用高速缓存“master_cache”设置了缓冲池:

1> sp_poolconfig "master_cache"

2> go


Cache Name Status Type Config Value Run Value

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

master_cache Active Mixed 2.00 Mb 2.00 Mb

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

Total 2.00 Mb 2.00 Mb

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

Cache: master_cache, Status: Active, Type: Mixed Config Size: 2.00 Mb, Run Size: 2.00 Mb

Config Replacement: strict LRU, Run Replacement: strict LRU IO Size Wash Size Config Size Run Size APF Percent

-------- --------- ------------ ------------ ----------- 2 Kb 512 Kb 0.00 Mb 1.00 Mb 10

16 Kb 192 Kb 1.00 Mb 1.00 Mb 10

(return status = 0)

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


dbccdb 分配磁盘空间

dbccdb 数据库要求额外的磁盘存储空间。由于 dbcc checkstorage 将大 量使用 dbccdb,所以应该将 dbccdb 置于与其它数据库设备不同的设 备上。


image

注释 不要在主设备上创建 dbccdb。确保用于 dbccdb 的日志设备和 数据设备是分开的。

image


用于工作空间的段


通过将段专用于工作空间,可以控制工作空间的位置并提高 dbcc checkstorage 性能。将新段专门供工作空间使用时,应使用 sp_dropsegment 从缺省段解除这些新段附带的设备的映射。


创建 dbccdb 数据库

创建 dbccdb 数据库

1 master 数据库中运行 sp_plan_dbccdb,获取有关目标数据库的 数据库大小、设备、工作空间大小、高速缓存大小和工作进程 数的建议。


有关 sp_plan_dbccdb 提供的信息的细节,请参见 253 页的“计 划资源”

2 如果 dbccdb 已存在,则应在创建新的 dbccdb 数据库之前将它和 所有与其关联的设备全部删除:

use master go

if exists (select * from master.dbo.sysdatabases where name = "dbccdb")

begin


end go


print "+++ Dropping the dbccdb database" drop database dbccdb

3 初始化用于 dbccdb 数据和日志的磁盘设备:

use master go

disk init

name = "dbccdb_dat",

physname = "/remote/disks/masters/", size = "4096"

go

disk init

name = "dbccdb_log",

physname = "/remote/disks/masters/", size = "1024"

go

4 在已在步骤 3 中初始化的数据磁盘设备上创建 dbccdb

use master go

create database dbccdb on dbccdb_dat = 6

log on dbccdb_log = 2

go

5 (可选)将用于 scan text 工作空间的段添加到 dbccdb 数据设 备上:

use dbccdb go

sp_addsegment scanseg, dbccdb, dbccdb_dat go

sp_addsegment textseg, dbccdb, dbccdb_dat go



use dbccdb| go|

6 dbccdb 创建表并初始化 dbcc_types 表:

isql -Ujms -P***** -iinstalldbccdb

installdbccdb 在试图创建表之前检查数据库是否存在。它只创建 dbccdb 中尚未存在的那些表。如果任何一个 dbccdb 表被损坏, 请使用 drop table 将其删除,然后使用 installdbccdb 重新创建。

7 创建并初始化 scan text 工作空间:

sp_dbcc_createws dbccdb, scanseg, scan_pubs2, scan, "64K"| sp_dbccvreatews dbccdb, textseg, text_pubs2, text, "64K"

安装完 dbccdb 之后,必须更新 dbcc_config 表。




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