随着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数据库技术问题需要咨询,请联系我!
以下官方手册为ASE 15.7 ESD#2中文版:
- 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
- 新增功能摘要
- 新增功能指南
- ASE 15.7 发行公告
- 配置指南(windows)
- 安装指南(windows)
- 参考手册:构件块
- 参考手册:命令
- 参考手册:过程
- 参考手册:表
- Transact-SQL® 用户指南
- 系统管理指南,卷 1
- 系统管理指南,卷 2
- 性能和调优系列:基础知识
- 性能和调优系列:锁定和并发控制
- 性能和调优系列:监控表
- 性能和调优系列:物理数据库调优
- 性能和调优系列:查询处理和抽象计划
- 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
- 性能和调优系列:利用统计分析改进性能
- 程序员参考 jConnect for JDBC 7.0.7
- Adaptive Server Enterprise 中的 Java
- 组件集成服务用户指南
- Ribo 用户指南
- 内存数据库用户指南
- Sybase Control Center for Adaptive Server® Enterprise
- 安全性管理指南
- 实用程序指南
调优系统临时数据库以获得最佳性能
本节讨论与临时数据库相关的配置问题。
放置系统 tempdb
在确定 tempdb 的放置位置时:
• 应将 tempdb 和重要的应用程序数据库分开放在不同的物理磁盘上。
• 使用可用的最快磁盘。如果您的平台支持固态设备,并且您的应用 程序不适合使用 tempdb,则可以使用这些设备。
• 将 tempdb 扩展到其它设备后,从 system、 default 和 logsegment 段中 删除主设备。
尽管可以将 tempdb 扩展到 master 数据库所在的设备, Sybase 仍建议您 使用单独的设备。而且要记住,使用 Adaptive Server 镜像功能镜像的是 逻辑设备而不是数据库。如果镜像主设备,将创建驻留在主设备上的数 据库的所有部分的一个镜像。如果镜像使用 serial 进行写入,则频繁使 用 tempdb 数据库会对性能产生严重影响。
系统 tempdb 的初始分配
安装 Adaptive Server 时,tempdb 的大小为 4MB ,且全部位于主设备上, 如 图 6-1 所示。 tempdb 通常是系统管理需要增大的第一个数据库。服务 器上的用户越多,它就需要越大。根据需要,可能希望将 tempdb 分条, 使其位于多个设备上。
图 6-1:tempdb 缺省分配
tempdb
数据和日志 (4mb)
d_master
使用 sp_helpdb 来查看 tempdb 的大小和状态。以下示例显示了 tempdb 在 安装时的缺省值:
sp_helpdb tempdb
name db_size owner dbid created status
--------- -------- ------ ------ ----------- --------------------
tempdb 2.0 MB sa 2 May 22, 1999 select into/bulkcopy
device_frag size usage free kbytes
------------ -------- ------------ --------
master 2.0 MB data and log 1248
从 tempdb 段中删除主设备
缺省情况下,tempdb 的 system、default 和 logsegment 段在主设备上的分 配大小为 4MB。在将新设备分配给 tempdb 时,除非将这些设备添加为 专用数据或日志,否则它们会自动划分到这三个段中。为 tempdb 分配第 二台设备后,可以将主设备从 default、 system 和 logsegment 段中删除。 这样可以确保 tempdb 中的工作表和其它临时表不与其它操作争用主设 备资源。
use tempdb
从各段中删除主设备:
1 如果尚未进行此类操作,则将 tempdb 变更到其它设备上。例如:
alter database tempdb on tune3 = 20
2 发出 use tempdb 命令,然后从各段中删除主设备:
sp_dropsegment "default", tempdb, master sp_dropsegment "system", tempdb, master sp_dropsegment "logsegment", tempdb, master
3 要检验这些段是否已不再包括主设备,可对 master 数据库发出以下 命令:
select dbid, name, segmap from sysusages, sysdevices
where sysdevices.vdevno= sysusages.vdevno and dbid = 2
and (status&2=2 or status&3=3))
segmap 列对主设备上的任何分配都应报告 “0”,以表明不存在段 分配:
dbid name segmap
------ --------------- -----------
2 master 0
2 tune3 7
或者发出以下命令:
sp_helpdb 'tempdb'
device_fragments size usage created free kbytes
----------------- ------ ---------- ----------------- ----------
master 4.0 MB data only Feb 7 2008 2:18AM 2376
tune3 20.0 MB data and log May 16 2008 1:55PM 16212
device segment
--------- -----------------------------
master -- unused by any segments -- tune3 default
tune3 logsegment
tune3 system
配置用户创建的临时数据库
应用程序对临时数据库具有各自的资源和空间要求。除非您了解应用程 序要求,并维护符合这些数据库要求的应用程序与数据库或组的绑定, 否则请将所有临时数据库设为同样大小。如果所有临时数据库具有相同 大小,则无论为应用程序或会话分配了哪个数据库,应用程序都不会耗 尽资源或空间。
高速缓存用户临时数据库
通常,可采用相同的方式在组内的临时数据库中配置高速缓存。查询处 理器可以根据这些缓存特性选择查询计划,而且,如果使用具有其它配 置的高速缓存执行该计划,则会降低性能。
一般准则
本节介绍配置临时数据库的一般准则,该准则适用于系统和用户临时数 据库。
如果临时数据库跨多台设备 (如 图 6-2 所示),则可利用某些临时表或 工作表的并行查询性能。
图 6-2:tempdb 跨越磁盘
磁盘 1
磁盘 2 磁盘 3
d_master
tempdb
tempdb
将 tempdb 绑定到其自己的高速缓存
在正常使用 Adaptive Server 的情况下,在创建、填充和删除临时表时, 临时数据库将大量使用数据高速缓存。
将临时数据库分配给其自己的数据高速缓存:
• 防止临时对象上的活动将其它对象刷新出缺省数据高速缓存
• 帮助在多个高速缓存间分布 I/O
使用 sp_cacheconfig 和 sp_poolconfig 可创建指定数据高速缓存,并为大
I/O 配置规定大小的池。仅系统管理员可以配置高速缓存和池。
注释 对大 I/O 的引用位于一台逻辑页大小为 2K 的服务器上。如果服 务器的逻辑页大小为 8K,则用于 I/O 的基本单位为 8K。如果服务器的 逻辑页大小为 16K,则用于 I/O 的基本单位为 16K。
有关配置指定高速缓存和池的说明,请参见 《系统管理指南,卷 2》中 的第 4 章 “配置数据高速缓存”。
配置了高速缓存且服务器已重新启动后,即可将 tempdb 绑定到新的高 速缓存:
sp_bindcache "tempdb_cache", tempdb
确定临时数据库的大小
为临时数据库分配足够空间可为各个并发 Adaptive Server 用户处理以下 进程:
• 用于合并连接的工作表
• 为 distinct、 group by 和 order by, reformatting, or 策略以及实现某些 视图和子查询而创建的工作表
• 散列临时表 (创建这些表时使用 “#”作为表名的第一个字符)
• 临时表的索引
• 临时数据库中的常规用户表
• 由动态 SQL 创建的过程
如果使用临时表来拆分复合连接,某些应用程序可能会更好地执行。此 策略常用于:
• 优化程序不能为连接多于四个表的查询选择良好查询计划的情况
• 连接大量表的查询
• 非常复杂的查询
• 需要将过滤数据作为中间步骤的应用程序 您还可以使用临时数据库执行以下操作:
• 非规范化一些表并放入几个临时表中
• 规范化一个非规范划化的表进行集合处理
根据使用情况确定临时数据库的大小。对于大多数应用程序,应将临时 数据库的大小设置为用户数据库大小的 20-25%,以便提供足够空间供 其使用。
即使在临时数据库中启用 trunc log on checkpoint 数据库选项, Adaptive Server 仍会将对临时数据库的更改写入事务日志。可通过以下方法减少 临时数据库中的日志活动:
• 使用 select into,而不使用 create table 和 insert
• 仅将所需的列选择到临时表
使用 select into
在创建和填充临时数据库中的临时表时,应尽可能使用 select into 命令, 而不使用 create table 和 insert...select。select into/bulkcopy 数据库选项在临 时数据库中缺省为启用状态,以便执行上述操作。
select into 操作只记录最小量的日志,因此运行速度更快。跟踪的只是数据 页的分配,而不是每个数据行的实际更改。系统会完整记录 insert...select 查询中的每个数据插入操作,从而导致开销增加。
如果在临时数据库中创建表的应用程序只使用少量表列,则可以通过以 下方法最大程度地减少日志记录的数量和大小:
• 只选择应用程序所需的列,而不在将数据插入表的查询中使用 select *
• 限制所选的行恰好满足应用程序要求
上述建议还可减小表本身的大小。
优化临时表
临时表的许多用法都简单明了,几乎不需要优化。但是,如果应用程序 需要多次访问临时数据库中的表,则需要对其进行检查,以尽可能优化 策略。通常,它包括使用多个过程或批处理对访问它的表的创建和索引 进行拆分。
在使用表的存储过程或批处理中创建表时,查询优化程序无法确定表的 大小,因为在优化查询时尚未创建该表,如 图 6-3 所示。这适用于临时 表和常规用户表。
图 6-3:优化和创建临时表
查询
语法分析和 规范化
??
??
??
??
查询在此处优化 优化 编译
表在此处创建 执行
结果
优化程序假定任何此类表都有 10 个数据页和 100 行。如果实际上表很 大,此假定可导致优化程序选择一个次优查询计划。
这两种技术可改善临时表的优化:
• 创建临时表的索引
• 将临时表复杂的使用拆分为多个批处理或过程,以便为优化程序提 供信息
创建临时表的索引
您可定义临时表的索引。多数情况下,这些索引可提高使用临时数据库 的查询的性能。优化程序像使用普通用户表的索引一样使用这些索引。 只是要求:
• 创建索引时表中必须包含数据。如果创建临时表并在空表上创建索 引, Adaptive Server 不会创建列统计信息 (如直方图和密度)。如果 创建索引后插入数据行,优化程序所拥有的统计信息将是不完整的。
• 当查询使用索引优化时,该索引必须存在。不能创建一个索引然后 在同一个批处理或过程中的查询中使用它们。查询处理器使用在存 储过程内运行的查询中的存储过程中创建的索引。
• 如果自索引创建以来或自运行 update statistics 以来,已经添加或删除 了行,优化程序可能选择次优计划。
为优化程序提供一个索引可显著提高性能,特别是在创建临时表并对其 执行大量操作的复杂过程中。
您需要采取额外步骤来创建上述过程。如果 select_proc 不存在,则无法 创建 base_proc;而没有临时表,也无法创建 select_proc。
1 在过程外创建临时表。此表可以是空的;但它必须存在,且包含与
select_proc 兼容的列:
select * into #huge_result from ... where 1 = 2
2 按以上所示创建过程 select_proc。
3 删除 #huge_result。
4 创建过程 base_proc。
将 tempdb 的使用拆分为多个过程
例如,此查询在使用 #huge_result 时会导致优化问题:
create proc base_proc as
select *
into #huge_result from ...
select *
from tab,
#huge_result where ...
通过使用两个过程可以获得更好的性能。当 base_proc 过程调用
select_proc 过程时,优化程序可确定表的大小:
create proc select_proc as
select *
from tab, #huge_result where ... create proc base_proc
as
select *
into #huge_result from ...
exec select_proc
如果处理 #huge_result 时需进行多次访问、连接或需要其它进程(如使用 while 循环),则对 #huge_result 创建索引可以提高性能。可在 base_proc 中 创建该索引,以便在优化 select_proc 时使用它。
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)上提取数据的非常规恢复工具
- 适用于所有的SQL Anywhere版本 包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x,17.x
- 适用于所有的UltraLite版本
- 能够恢复出来表结构和数据
- 能够恢复自定义数据类型
- 能够恢复存储过程等对象的语法
- 能够导出到目标数据库
- 能够导出到SQL文件并生成导入脚本
- 支持多种字符集,包括:cp850、cp936、gb18030、utf8等
- 能够恢复未加密或者简单加密类型的数据
- 简单易用
- 限制:不支持AES加密的数据文件
SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍
Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景
各种误操作:
- 误截断表(truncate table)
- 误删除表(drop table)
- 错误的where条件误删数据
- 误删除db或log文件
- 误删除表中的字段
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的主要功能:
- 被勒索病毒加密数据文件及备份文件情况下的恢复;
- 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
- 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
- delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复 等;
- 各种Sybase内部系统表损坏、索引错误的修复;
- master数据库损坏而无法正常运行情况下的恢复;
- Sybase数据库被标记为可疑,不可用等情况的恢复;
- Sybase数据库中数据文件内部出现坏块情况下的恢复;
- Sybase数据库无数据文件但有日志文件的情况下的恢复;
- Sybase数据库只有数据文件无任何日志文件的情况下的恢复;
- Sybase数据文件被误删除情况下的碎片提取恢复;
- 磁盘阵列上的Sybase数据库被误格式化情况下的数据库恢复;
- 数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
- Sybase数据库还原数据库出现失败情况下的恢复;
- 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.xSQL Server数据库恢复工具SQLRescue:
一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。
SQL Server数据库恢复工具SQLRescue的主要功能:
- 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;
- 断电导致数据库文件损坏情况下的恢复;
- 硬盘坏道造成数据库损坏情况下的恢复;
- 数据文件内部存在坏页情况下的恢复;
- 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;
- 并闩锁错误、格式化、误删除后导致软件不能使用的情况;
- 无法读取并闩锁页sysindexes失败情况下的修复;
- 数据文件被误删除情况下的碎片提取恢复;
- 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;
- master数据库损坏而无法正常运行情况下的恢复;
- 数据文件无法附加情况下的数据恢复;
- 数据库被标记为可疑,质疑,不可用等情况的恢复;
- 数据库sysobjects等系统表损坏情况下的恢复;
- 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;
- 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;
- 数据库被误格式化等情况下的数据库恢复;
- 日志收缩造成数据库损坏情况下的恢复;
- 仅剩损坏的备份文件情况下的恢复。
SQL Server数据库恢复工具SQLRescue技术特点:
只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。- 从数据文件中直接恢复数据
- 不能附加时直接恢复数据并生成新的数据库
- 系统表损坏的数据库修复
- 快速修复SQL 823错误、连接中断错误
SQL Server数据库恢复工具SQLRescue支持的版本:
Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。+-------------------------------------华丽的分割线-------------------------------------------------------------------------