随着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
- 安全性管理指南
- 实用程序指南
使用事务
begin transaction 和 commit transaction 命令指示 Adaptive Server 将任意数 量的单独命令作为单个单元进行处理。 rollback transaction 撤消事务,并 回退到起点或保存点。使用 save transaction 可在事务中定义保存点。
除将 SQL 语句组合为一个单元进行处理外,每个事务而非每个单独的 命令导致每次系统开销,因此事务可提高性能。
任何用户都可以定义事务。任何事务命令都没有权限要求。
通过将 ddl in tran 数据库选项设置为 true,可以在事务中使用某些数据定 义语言命令,如 create table、 grant 和 alter table。如果在 model 数据库中 的 ddl in tran 为真,对于在 model 中将 ddl in tran 设置为真之后所创建的所 有数据库而言,允许在其事务中使用上述这些命令。要检查 ddl in tran 的 当前设置,请使用 sp_helpdb。
警告!应小心使用数据定义命令。唯一在事务中使用数据定义语言命令 须经调整的情况是 create schema 进行对齐。数据定义语言命令持有系统 表锁 (例如 sysobjects)。如果要在事务中使用数据定义语言命令,则 应使事务保持简短。
在事务中应避免对 tempdb 使用数据定义语言命令,否则可能导致系统 性能降低甚至停止。应始终将 tempdb 中的 ddl in tran 设置为 false。
要将 ddl in tran 设置为 true,请输入:
sp_dboption database_name,"ddl in tran", true
然后在该数据库中执行 checkpoint 命令。
第一个参数指定要在其中设置选项的数据库的名称。执行 sp_dboption 时, 必须使用 master 数据库。任何用户都可以执行不带参数的 sp_dboption 来 显示当前选项设置。但是,要设置选项,您必须是系统管理员或数据库 所有者。
只有 sp_dboption 的 ddl in tran 选项设置为 true 时,才允许在事务中使用以 下命令:
• create default
• create index
• create procedure
• create rule
• create schema
• create table
• create trigger
• create view
• drop default
• drop index
• drop procedure
• drop rule
• drop table
• drop trigger
• drop view
• grant
• revoke
不能在事务中使用更改 master 数据库或创建临时表的系统过程。 不要在事务中使用以下命令:
• alter database
• alter table...partition
• alter table...unpartition
• create database
• disk init
• dump database
• dump transaction
• drop database
• load transaction
• load database
• reconfigure
• select into
• update statistics
• truncate table
不能在事务中使用以下系统过程:
• sp_helpdb、 sp_helpdevice、 sp_helpindex、 sp_helpjoins、 sp_helpserver、 sp_lookup 和 sp_spaceused (因为它们会创建临时表)
• sp_configure
• 更改 master 数据库的系统过程
begin transaction 和 commit transaction 命令可以包含任意数量的 SQL 语句 和存储过程。这两个语句的语法为:
begin {transaction | tran} [transaction_name]
commit {transaction | tran | work} [ transaction_name]
其中, transaction_name 是指派给事务的名称,该名称必须符合标识符 规则。
关键字 transaction、 tran 和 work (在 commit transaction 中)具有相同含 义;在使用时可以相互替换。但是, transaction 和 tran 是 Transact-SQL 扩展;只有 work 符合 SQL 标准。
例如:
begin tran
statement procedure statement
commit tran
如果事务当前不处于活动状态,则 commit transaction 不会影响 Adaptive Server。
如果提交事务之前必须取消此事务 (由于某些故障或用户更改),则必 须撤消所有已经完成的语句或过程。有关在处理期间执行回退的影响, 请参见 第 659 页的表 23-2。
在执行 commit transaction 之前,随时可以使用 rollback transaction 命令取 消或回退事务。使用保存点可以取消整个事务或部分事务。但是,不能 取消已经提交的事务。
rollback transaction 的语法为:
rollback {transaction | tran | work} [ transaction_name | savepoint_name]
保存点是用户放置在事务中的一个标记,用于表示事务可回退到的点。 在提交整个批处理之前,通过将不需要的部分回退到某个保存点,可以 只提交批处理的某些部分。
可以通过在事务中放置 save transaction 命令插入保存点:
save {transaction | tran} savepoint_name
该保存点名必须符合标识符的规则。
如果 rollback transaction 命令不带 savepoint_name 或 transaction_name,则 事务将回退到批处理中的第一个 begin transaction。
以下是使用 save transaction 和 rollback transaction 命令的方法:
begin tran
statements 组 A
save tran mytran
statements 组 B
rollback tran mytran 回退组 B
statements 组 C
commit tran 提交组 A 和组 C
发出 commit transaction 之前,只要不遇到另一个 begin transaction 语句, Adaptive Server 就会将所有后续语句视为事务的一部分。遇到该语句时, Adaptive Server 会将所有后续语句视为新的嵌套事务的一部分。请参见 第 646 页的 “嵌套事务 ”。
如果事务当前不是处于活动状态,则 rollback transaction 或 save transaction
不会影响 Adaptive Server,也不会返回错误消息。
也可以在存储过程或触发器中使用 save transaction 创建事务,这样,它 们可被回退而不影响批处理或其它过程。例如:
create proc myproc as begin tran
save tran mytran
statements
if ...
begin
rollback tran mytran
/*
** Rolls back to savepoint.
*/
commit tran
/*
** This commit needed; rollback to a savepoint
** does not cancel a transaction.
*/ end
else commit tran
/*
** Matches begin tran; either commits
** transaction (if not nested) or
** decrements nesting level.
*/
除非正向一个保存点回退,否则只能在最外层的一对 begin/commit 或
begin/rollback 语句中使用事务名。
警告! 在嵌套事务语句中使用事务名时,事务名可能被忽略或导致错 误。如果要在从其它事务中调用的存储过程或触发器中使用事务,则不 要使用事务名。
值 含义
全局变量 @@transtate 跟踪事务的当前状态。 Adaptive Server 通过跟踪 在语句执行之后发生的所有事务更改来确定要返回的状态。
表 23-1:@@transtate 值
0 事务正在进行。事务有效;已成功执行了前一语句。
1 事务已经成功。事务已完成且已提交其更改。
2 语句已中止。前一语句已中止;对事务无影响。
3 事务已中止。事务已中止且已回退任何更改。
Adaptive Server 不会清除每一语句之后的 @@transtate。在事务中,可 以使用语句之后的 @@transtate (例如 insert)来确定事务是已成功还是 被中止,从而确定事务是否有效。下面的示例在事务执行期间 (insert 成功后)以及提交事务之后检查 @@transtate:
begin transaction
insert into publishers (pub_id) values ("9999") (1 row affected)
select @@transtate
----------
0
(1 row affected)
commit transaction select @@transtate
----------
1
(1 row affected)
以下示例在 insert 不成功之后 (由于规则冲突)和事务回退之后检查
@@transtate:
begin transaction
insert into publishers (pub_id) values ("7777")
Msg 552, Level 16, State 1:
A column insert or update conflicts with a rule bound to the column.The command is aborted.The conflict occured in database ’pubs2’, table ’publishers’, rule ’pub_idrule’, column ’pub_id’.
select @@transtate
----------
2
(1 row affected)
rollback transaction select @@transtate
----------
3
(1 row affected)
Adaptive Server 只有在响应事务采取的操作时才会更改 @@transtate。 语法和编译错误不会影响 @@transtate 的值。
可以在其它事务中嵌套事务。当嵌套 begin transaction 和 commit transaction 语句时,实际上由最外层对语句开始并提交事务。内部的语句对只跟踪 嵌套级别。Adaptive Server 直到发出与最外层 begin transaction 相匹配的 commit transaction 时才提交此事务。通常,当包含 begin / commit 语句对的 存储过程或触发器相互调用时,才发生这种事务 “嵌套”。
@@trancount 全局变量可跟踪事务的当前嵌套级别。 begin transaction 最 初隐式或显式地将 @@trancount 设置为 1。每个后续 begin transaction 将
@@trancount 递增,而 commit transaction 将其递减。触发一个触发器也 将使 @@trancount 递增,并且可用一个可以触发触发器的语句来开始事 务。除非 @@trancount 等于 0,否则不会提交嵌套事务。
例如,以下嵌套语句组直到最后的 commit transaction,才由 Adaptive Server 提交该事务:
begin tran
select @@trancount
/* @@trancount = 1 */ begin tran
select @@trancount
/* @@trancount = 2 */ begin tran
select @@trancount
/* @@trancount = 3 */ commit tran
commit tran commit tran
select @@trancount
/* @@ trancount = 0 */
如果在嵌套 rollback transaction 语句时不包括事务名或保存点名,则将回 退到最外层的 begin transaction 语句并取消该事务。
以下示例显示指定事务的方法:
begin transaction royalty_change
/* A user sets out to change the royalty split */
/* for the two authors of The Gourmet Microwave.*/
/* Since the database would be inconsistent */
/* between the two updates, they must be grouped */
/* into a transaction.*/ update titleauthor
set royaltyper = 65
from titleauthor, titles where royaltyper = 75
and titleauthor.title_id = titles.title_id and title = "The Gourmet Microwave"
update titleauthor set royaltyper = 35
from titleauthor, titles where royaltyper = 25
and titleauthor.title_id = titles.title_id and title = "The Gourmet Microwave"
save transaction percent_changed
/* After updating the royaltyper entries for */
/* the two authors, the user inserts the */
/* savepoint "percent_changed," and then checks */
/* to see how a 10 percent increase in the */
/* price would affect the authors’ royalty */
/* earnings.*/ update titles
set price = price * 1.1
where title = "The Gourmet Microwave"
select (price * royalty * total_sales) * royaltyper from titles, titleauthor, roysched
where title = "The Gourmet Microwave"
and titles.title_id = titleauthor.title_id and titles.title_id = roysched.title_id rollback transaction percent_changed
/* The transaction rolls back to the savepoint */
/* with the rollback transaction command.*/
/* Without a savepoint, it would roll back to */
/* the begin transaction.*/ commit transaction
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。+-------------------------------------华丽的分割线-------------------------------------------------------------------------