随着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
- 安全性管理指南
- 实用程序指南
JDBC 2.0 Optional Package(《JDBC 2.0 选件工具包》)(旧称 JDBC 2.0 Standard Extension API (《JDBC 2.0 标准扩展 API》))中定义了多个 JDBC 2.0 驱动程序可实现的功能。 jConnect 6.05 版及更高版本已实现了 以下选件工具包扩展功能:
(使用 jConnect 支持的任何 Sybase DBMS)
(使用 jConnect 支持的任何 Sybase DBMS)
● 分布式事务管理支持 仅用于 Adaptive Server。
注释 Sybase 建议使用 JNDI 1.2,它可与 Java 1.1.6 及更高版本兼容。
参考
JDBC 2.0 Optional Package (《 JDBC 2.0 选件工具包》)(旧称 JDBC 2.0 Standard Extension API (《 JDBC 2.0 标准扩展 API 》))的第 5 章 “JNDI and the JDBC API”(JNDI 与 JDBC API)。
相关接口
● javax.sql.DataSource
● javax.naming.Referenceable
● javax.naming.spi.ObjectFactory
此功能为 JDBC 客户端提供了按标准方法获取数据库连接的替代方法。不 再调用 Class.forName (“com.sybase.jdbc4.jdbc.SybDriver”),然后将 JDBC URL 传递到 DriverManager 的 getConnection( ) 方法,客户端可使用逻辑名 访问 JNDI 命名服务器来检索 javax.sql.DataSource 对象。此对象负责装载 驱动程序,并与它代表的物理数据库建立连接。客户端代码更简单并且 是可重用的,因为特定于供应商的信息已放入 DataSource 对象中。
DataSource 对象的 Sybase 实现是 com.sybase.jdbcx.SybDataSource (有关 详细信息,请参见 javadocs)。此实现通过使用 JavaBean 组件的设计模 式支持以下标准属性:
● databaseName
● dataSourceName
● description
● networkProtocol
● password
● portNumber
● serverName
● user
注释 roleName 不受支持。
jConnect 提供 javax.naming.spi.ObjectFactory 接口的实现,因此 DataSource 对象可根据命名服务器条目的属性构造。给定 javax.naming.Reference, 或 javax.naming.Name 和 javax.naming.DirContext 时,此 factory 可构造 com.sybase.jdbcx.SybDataSource 对象。若要使用此 factory,请将 java.naming.object.factory 系统属性设置为包括 com.sybase.jdbc4.SybObjectFactory。
用法
1a. 管理员进行的配 置:LDAP
可以在不同的应用程序中,以不同的方式使用 DataSource。下面的几小 节中介绍所有选项并提供一些代码示例,以指导您完成该过程。有关详 细信息,请参见 JDBC 2.0 Optional Package (《JDBC 2.0 选件工具包》)
(旧称 JDBC 2.0 Standard Extension API (《JDBC 2.0 标准扩展 API》)) 以及 Oracle Java Web 站点上的 JNDI 文档。
jConnect 自 4.0 版本开始已经支持 LDAP 连接。因此,建议的方法 (不 要求自定义软件)是使用 LDAP 数据交换格式 (LDIF) 将 DataSources 配 置为 LDAP 条目。例如:
dn:servername:myASE, o=MyCompany, c=US 1.3.6.1.4.1.897.4.2.5:TCP#1# mymachine 4000
1.3.6.1.4.1.897.4.2.10:PACKETSIZE=1024&user=me&password=secret 1.3.6.1.4.1.897.4.2.11:userdb
1b. 由客户端访问 这是典型的 JDBC 客户端应用程序。唯一的区别是获取对 DataSource 对 象的引用的方式是通过访问命名服务器,而不是通过访问 DriverManager 并提供 JDBC URL。获取连接后,客户端代码就和所有其它 JDBC 客户 端代码相同了。代码非常通用,且设置对象 factory 属性 (可设置为环 境的一部分)时仅引用 Sybase。
jConnect 安装包含了示例程序 sample2/SimpleDataSource.java 以说明 DataSource 的使用。此示例仅用于参考,也就是说,除非适当地配置环 境并编辑此示例,否则不能运行它。 SimpleDataSource.java 包含以下重 要代码:
import javax.naming.*; import javax.sql.*; import java.sql.*;
// set necessary JNDI properties for your environment (same as above) Properties jndiProps = new Properties();
// used by JNDI to build the SybDataSource jndiProps.put(Context.OBJECT_FACTORIES,
"com.sybase.jdbc4.jdbc.SybObjectFactory");
// nameserver that JNDI should talk to jndiProps.put(Context.PROVIDER_URL, "ldap:some_ldap_server:238/" + "o=MyCompany,c=Us");
// used by JNDI to establish the naming context jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
// obtain a connection to your name server
Context ctx = new InitialContext(jndiProps);
DataSource ds = (DataSource) ctx.lookup("servername=myASE");
// obtains a connection to the server as configured earlier.
// in this case, the default username and password will be used Connection conn = ds.getConnection();
// do standard JDBC methods
...
如果已经在虚拟机中定义属性,则不必将 Properties显式传递给 InitialContext 构造函数,也就是说,要么在将 Java 设置为浏览器属性的 一部分时传递,要么使用下面的方法传递:
java -Djava.naming.object.factory=com.sybase.jdbc4.jdbc.SybObjectFactory
有关设置环境属性的详细信息,请参见 Java VM 文档。
2a.编程配置 此阶段通常由为其公司执行数据库系统管理或应用程序集成的人员来完 成。目的是定义一个数据源,然后以一个逻辑名部署到命名服务器。如 果需要重新配置服务器 (例如,移到其它计算机、端口等等),管理员 运行此配置实用程序 (概述如下),并将此逻辑名重新分配给新的数据 源配置。因此,客户端代码不会更改,因为它只认识此逻辑名。
import javax.sql.*; import com.sybase.jdbcx.*;
.....
// create a SybDataSource, and configure it
SybDataSource ds = new com.sybase.jdbc4.jdbc.SybDataSource(); ds.setUser("my_username");
ds.setPassword("my_password"); ds.setDatabaseName("my_favorite_db"); ds.setServerName("db_machine"); ds.setPortNumber(4000);
ds.setDescription("This DataSource represents the Adaptive Server Enterprise server running on db_machine at port 2638. The default username and password have been set to 'me' and 'mine' respectively. Upon connection, the user will access the my_favorite_db database on this server.");
Properties props = newProperties() props.put("REPEAT_READ","false"); props.put("REQUEST_HA_SESSION","true"); ds.setConnectionProperties(props);
// store the DataSource object.Typically this is
// done by setting JNDI properties specific to the
// type of JNDI service provider you are using.
// Then, initialize the context and bind the object. Context ctx = new InitialContext(); ctx.bind("java:comp/env/jdbc/myASE", ds);
设置 DataSource 后,需要决定信息的存储位置和存储方式。 SybDataSource 提供了 java.io.Serializable 和 javax.naming.Referenceable 来 帮助您作出决定,但仍需管理员根据使用的 JNDI 服务提供程序来决定 如何存储数据。
2b. 由客户端访问 客户端通过采用配置 DataSource 的方法来设置 DataSource 对象的 JNDI 属性,从而检索该对象。客户端需要一个可转换该对象的可用对象 factory,因为它会被存储 (例如,序列化)到 Java 对象中。
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/myASE"); Connection conn = ds.getConnection();
参考
JDBC 2.0 Optional Package(《JDBC 2.0 选件工具包》)(旧称 JDBC 2.0 Standard Extension API (《JDBC 2.0 标准扩展 API》))的第 6 章 “Connection Pooling”(连接池)。
相关接口
● javax.sql.ConnectionPoolDataSource
● javax.sql.PooledConnection
概述
传统数据库应用程序可与用于应用程序的每次会话的数据库创建一个连 接。不过,使用此应用程序时,基于 Web 的数据库应用程序可能需要 多次打开和关闭新连接。
处理基于 Web 的数据库连接的一个有效方法是使用连接池,它可维护 打开的数据库连接并管理在不同用户请求间共享的连接,从而维护性能 并减少空闲连接的数目。对于每个连接请求,连接池首先确定池中是否 有空闲连接。如果有,连接池会返回空闲连接,而不是与数据库建立新 连接。
提供 com.sybase.jdbc4.jdbc.ConnectionPoolDataSource 类来与连接池实现交 互。使用 ConnectionPoolDataSource 时,池实现会监听 PooledConnection。 当您关闭连接或有错误破坏了连接时,会通知该实现。此时,池实现会 决定如何处理 PooledConnection。
如果没有连接池,事务会:
1 创建与数据库的连接。
2 向数据库发送查询。
3 获得结果集。
4 显示结果集。
5 破坏连接。 有连接池时,序列大致如下:
1 查看连接 “池”中是否存在未用连接。
2 如果有,则使用此连接;否则创建新连接。
3 向数据库发送查询。
4 获得结果集。
5 显示结果集。
6 将连接返回 “池”。用户仍然调用 “close( )”,但连接保持打开状 态,且池会得到 close 请求的通知。
与每次客户端需要建立与数据库的连接时都创建一个新的连接相比,重 新使用连接的开销要少。
为允许第三方实现连接池, jConnect 实现让 ConnectionPoolDataSource 接口 生成 PooledConnections,类似于 DataSource 接口生成 Connections 的方法。
池实现使用 ConnectionPoolDataSource 的 getPooledConnection( ) 方法创建 “真正”的数据库连接。然后,池实现将自己注册为针对 PooledConnection 的监听器。
目前,当客户端请求连接时,池实现就会调用可用 PooledConnection 上 的 getConnection( )。当客户端完成连接并调用 close 时,池实现就会通过 ConnectionEventListener 接口得到通知,告知连接空闲,可以重用。
如果客户端因为某种原因破坏了数据库连接,池实现也会通过
ConnectionEventListener 接口得到通知,这样池实现就会将连接从池中删除。
有关详细信息,请参见 JDBC 2.0 Optional Package (《JDBC 2.0 选件工 具包》)(旧称 JDBC 2.0 Standard Extension API (《JDBC 2.0 标准扩展 API》))中的 “Appendix B”(附录 B)。
管理员进行的配置:
LDAP
此方法与 “ 用于命名数据库的 JNDI ”中描述的 “ 1a. 管理员进行的配 置: LDAP ”相似,只是向 LDIF 条目中输入了附加行。在下面的示例 中,添加的代码行以粗体显示以供参考。
dn:servername=myASE, o=MyCompany, c=US 1.3.6.1.4.1.897.4.2.5:TCP#1# mymachine 4000
1.3.6.1.4.1.897.4.2.10:PACKETSIZE=1024&user=me&password=secret 1.3.6.1.4.1.897.4.2.11:userdb
1.3.6.1.4.1.897.4.2.18:ConnectionPoolDataSource
通过中间层客户端进行 访问
...
此过程初始化三个属性 (如第 78 页所示的
INITIAL_CONTEXT_FACTORY、 PROVIDER_URL 和
OBJECT_FACTORIES),并检索 ConnectionPoolDataSource 对象。有关 更完整的代码示例,请参见 sample2/SimpleConnectionPool.java。基本区 别是:
ConnectionPoolDatabase cpds = (ConnectionPoolDataSource) ctx.lookup("servername=myASE");
PooledConnection pconn = cpds.getPooledConnection();
参考
此功能为 Adaptive Server 提供了用于执行分布式事务的标准 Java API。 注释 此功能设计用于大型多层环境。
请参见 JDBC 2.0 Optional Package (《JDBC 2.0 选件工具包》)(旧称 JDBC 2.0 Standard Extension API (《JDBC 2.0 标准扩展 API》))的第 7 章 “Distributed Transactions”(分布式事务)。
相关接口
● javax.sql.XADataSource
● javax.sql.XAConnection
● javax.transaction.xa.XAResource
背景和系统要求
● 因为在 Sybase Adaptive Server 12.0 和更高版本中 jConnect 会直接与 资源管理器通信,所以安装必须具有分布式事务管理支持。
● 任何想参与分布式事物的用户都必须具有 “dtm_tm_role”授权, 否则事务将失败。
● 若要使用分布式事务,必须在 /sp 目录中安装存储过程。请参见
《jConnect for JDBC 安装指南》第 1 章中的 “安装存储过程”。
图 2-2:12.x 版本中的分布式事务管理支持
中间层组 件
客户端 应用程序
ASE 12.x |
|
DTM |
ASE 12.x |
|
DTM |
JTA TDS
jConnect
管理员进行的配置:
LDAP
此方法与 第 93 页的 “用于命名数据库的 JNDI”中描述的 “ 1a. 管理员 进行的配置: LDAP”相似,只是向 LDIF 条目中输入了附加行。在下 面的示例中,添加的代码行显示为粗体。
dn:servername:myASE, o=MyCompany, c=US 1.3.6.1.4.1.897.4.2.5:TCP#1# mymachine 4000
1.3.6.1.4.1.897.4.2.10:PACKETSIZE=1024&user=me&password=secret 1.3.6.1.4.1.897.4.2.11:userdb
1.3.6.1.4.1.897.4.2.18:XADataSource
通过中间层客户端进行 访问
...
此过程初始化三个属性 (INITIAL_CONTEXT_FACTORY、 PROVIDER_URL 和 OBJECT_FACTORIES),并检索 XADataSource 对 象。例如:
XADataSource xads = (XADatasource) ctx.lookup("servername=myASE"); XAConnection xaconn = xads.getXAConnection();
或覆盖用户名和口令的缺省设置:
...
XADataSource xads = (XADatasource) ctx.lookup("servername=myASE"); XAConnection xaconn = xads.getXAConnection("my_username","my_password");
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。+-------------------------------------华丽的分割线-------------------------------------------------------------------------