随着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
- 安全性管理指南
- 实用程序指南
锁定和性能
锁定通过限制并发行为来影响 Adaptive Server 的性能。同时用户数 量的增加会加剧锁争用,从而造成性能降低。在以下情况下,锁可 以影响性能:
• 多个进程等待锁释放。在一个进程等待另一个进程完成其事务 并释放锁期间,总响应时间和吞吐量会受到影响。
• 事务导致频繁的死锁。死锁将导致事务中止,且必须由应用程 序重新启动事务。如果经常发生死锁,应用程序的吞吐量会深 受影响。
若要有助于降低死锁频率,请更锁定方案更改为数据页或数据 行锁定,或者重新设计事务访问数据的方式。
• 创建索引会锁定表。创建聚簇索引会将所有用户锁在表外,直 到索引创建完成;创建非聚簇索引会将所有更新锁在表外,直 到索引创建完成。
无论使用哪种方式,都应在服务器上几乎没有活动的时候进行。
• 关闭延迟死锁检测会导致螺旋锁争用。
将 deadlock checking period 设置为 0 会导致更频繁的死锁检查。 死锁检测进程在查找死锁时,将持有内存中锁结构上的螺旋锁。
在事务繁多的生产环境中,不要使用 deadlock checking period
参数。
使用 sp_sysmon 和 sp_object_stats
在以下的许多章节中都会建议更改配置参数,以减少锁争用。
使用 sp_object_stats 或 sp_sysmon 可确定锁争用是否是个问题。其次, 使用这些存储过程可确定减少锁争用的调优如何影响系统。
有关使用 sp_object_stats 的信息,请参见 第 63 页的 “标识存在并发问题 的表 ”。
有关使用 sp_sysmon 查看锁争用的详细信息,请参见 Performance and Tuning Series: Monitoring Adaptive Server with sp_sysmon (《性能和调优 系列:使用 sp_sysmon 监控 Adaptive Server》)中的 “锁管理”。
如果存在锁争用问题,可以使用 Adaptive Server Monitor 或监控表通过 检查每个对象的锁来发现锁定问题。
减少锁争用
锁争用会影响 Adaptive Server 的吞吐量和响应时间。在数据库设计期间 考虑使用锁定 (例如,避免在查询期间连接大量表),在应用程序设计 期间监控锁定。
通过更改争用程度高的表的锁定方案,或者重新设计应用程序或锁争用 程度最高的表,来解决地址争用。例如:
• 添加索引以减少争用 (尤其是减少删除和更新引起的争用)。
• 保持事务简短以减少持有锁的时间。
• 检查 “热点”,尤其要注意在所有页锁定堆表上的插入 (堆表是没 有聚簇索引的表)。
添加索引以减少争用
对于仅数据锁定表,搜索参数上没有有用索引的 update 或 delete 语句将 导致表扫描,从而在整个扫描期间持有排它表锁。如果数据修改任务还 更新其它表:
• 该任务可能被 select 查询或其它更新阻塞。
• 该任务可能被阻塞,并且在持有大量锁时必须等待。
• 该任务可能阻塞其它任务或与其它任务发生死锁。
为查询创建有用的索引可使数据修改语句使用页锁或行锁,从而改善对 表的并发访问。如果不能为长时间的 update 或 delete 事务创建索引,则可 在游标中执行该操作,并频繁使用 commit transaction 语句减少页锁数目。
保持事务简短
任何获取锁的事务都尽量保持简短。特别是,应避免事务在持有锁时等 待用户交互。
表 2-1:示例
begin tran
使用页级锁定 使用行级锁定
select balance
from account holdlock where acct_number = 25
update account
set balance = balance + 50 where acct_number = 25
commit tran
共享意图表锁 共享页锁
如果用户现在去吃午饭了, 那么没有人可以更新持有该 行的页上的行。
排它意图表锁 数据页上的更新页锁后紧跟 数据页上的排它页锁
没有人可以读取持有该行的 页上的行。
共享意图表锁 共享行锁
如果用户现在去吃午饭了, 那么没有人可以更新该行。
排它意图表锁 更新行锁及随后的 排它行锁
没有人可以读取该行。
在事务中应尽可能避免网络通信,因为网络传输速度比 Adaptive Server
慢。下面的示例显示了一个从 isql 执行的事务,分为两个包发送。
begin tran update account
set balance = balance + 50 where acct_number = 25
go
update account
set balance = balance - 50 where acct_number = 45 commit tran
go
isql 批处理发送至 Adaptive Server
持有锁等待提交
isql 批处理发送至 Adaptive Server
释放锁
对影响所有页锁定表上的非聚簇索引键的数据修改而言,保持事务简短 特别重要。
非聚簇索引为密集索引:数据级的上一级别为表中的每一行包含一行。 对表的所有 insert 和 delete,以及对键值的任何更新,都至少影响一个 非聚簇索引页 (如果发生页面拆分或页面收缩,还会影响页链中的相 邻页)。
锁定数据页可能降低访问少量行的速度,但是常用索引页上的锁可能会 阻塞对大量行的访问。
避免产生 “热点”
当所有更新都发生在某个页上时就会出现热点,例如所有页锁定堆表中 就会出现热点 (在所有页锁定堆表上,所有插入都发生在页链的最后一 页上)。
例如,每个人都可以更新的无索引历史表经常会在最后一页上出现锁争 用。 sp_sysmon 的输出样本表明,堆表上 11.9% 的插入需要等待锁:
Last Page |
Locks |
on |
Heaps |
||||
Granted |
3.0 |
0.4 |
185 |
88.1 % |
|||
0.4 |
0.0 |
25 |
11.9 % |
若要避免这种情况:
• 更改数据页锁定或数据行锁定的锁定方案。
这些锁定方案没有链式数据页,所以它们可以在发生阻塞时为插入 分配额外的页。
• 使用循环策略对表进行分区。将堆表分区可以在表中创建多个页链, 这样就可以为插入操作提供多个最后页。
由于有多个最后页可用,所以对表的并发插入很少会相互阻塞。分 区可提高堆表的并发性,而且无需为不同的用户组创建单独的表。
有关对表进行分区的详细信息,请参见 Performance and Tuning Series: Physical Database Tuning (《性能和调优系列:物理数据库调优》) 中的 “用分区提高插入性能”。
• 创建聚簇索引以在表中的数据页之间分配更新。
与分区类似,这种解决方法可以为表创建多个插入点。不过,这种 方法也会因需要维护表中的行的物理顺序而产生开销。
其它锁定原则
• 使用每个应用程序所需要的最低级别锁定。只在必要时使用隔离级 别 2 或 3。
其它事务的更新可能会延迟,直到使用隔离级别 3 的事务在事务结 束时释放所有共享锁。
只在非重复读取或幻像可能影响结果时使用隔离级别 3。
如果只有几个查询要求隔离级别 3,请在这些查询中使用 holdlock 关 键字或 at isolation serializing 子句,而不要对整个事务使用 set transaction isolation level 3。
如果事务中的大部分查询都要求隔离级别 3,请使用 set transaction isolation level 3,但对其它可以以隔离级别 1 执行的查询使用 noholdlock 或 at isolation read committed。
• 若要在活动表上执行大量插入、更新或删除,可以通过在使用游标 并频繁提交的存储过程内执行操作来减少阻塞。
• 如果应用程序必须返回一行,等待用户交互,然后更新该行,请考 虑使用时间戳和 tsequal 函数,而不要使用 holdlock。
• 如果使用第三方软件,请仔细检查应用程序中的锁定模式,看是否 存在并发问题。
其它调优方法也有助于减少锁争用。例如,如果一个进程持有某个页上 的锁,而且必须执行物理 I/O 才能读取另一页,与要读取的页已在高速 缓存中的情况相比,该进程持有锁的时间要长得多。在这种情况下,更 好地利用高速缓存或使用大 I/O 均可以减少锁争用。还可以通过改进索 引和跨磁盘均匀分配物理 I/O 来减少锁争用。
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。+-------------------------------------华丽的分割线-------------------------------------------------------------------------