远程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. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

实施高可用性故障切换支持

jConnect 支持 Adaptive Server 故障切换功能。


image

注释 高可用性系统中的 Sybase 故障切换与连接故障切换功能不同。如 果希望同时使用这两个功能, Sybase 强烈建议您仔细 阅读本节内容。

image


概述

Sybase 故障切换允许配置两台 Adaptive Server 作为协同服务器。如果主 协同服务器发生故障,该服务器的设备、数据库和连接可以由辅助协同 服务器接管。

可以对称或非对称地配置高可用性系统:

非对称 配置包括两台 Adaptive Server,它们在物理上位于不同的计 算机上,但彼此相连,以便当一台服务器出现故障时,可以由另一 台服务器承担它的工作负荷。辅助 Adaptive Server 充当 “热备 份”,它只有在出现故障切换时才工作。

对称 配置也包括两台在不同计算机上运行的 Adaptive Server。但当 出现故障切换时,其中每一个 Adaptive Server 都可以充当另一个 Adaptive Server 的主协同服务器或辅助协同服务器。在此配置中, 每一个 Adaptive Server 都具有完整的功能,都具有各自的系统设 备、系统数据库、用户数据库和用户登录。

在上述两种设置中,两台计算机都被配置为双向访问,这样使两台计算 机都可以看到并访问对方的磁盘。


可以在 jConnect 中启用故障切换,然后将客户端应用程序连接到进行过 故障切换配置的 Adaptive Server。如果主服务器故障切换到辅助服务 器,客户端应用程序也会自动切换到辅助服务器并重新建立网络连接。


image

注释 有关详细信息,请参见 Adaptive Server Enterprise 中针对 Adaptive Server

的 《在高可用性系统中使用 Sybase 故障切换》手册。

image


要求、依赖性和限制


必须配置两个 Adaptive Server 才能进行故障切换。

当客户端发生故障切换时,只保留在发生故障切换前提交给数据库 的更改。

必须将 REQUEST_HA_SESSION jConnect 连接属性设置为 “true

(请参见 9 页的 “连接属性)。

发生故障切换时 jConnect 事件通知不起作用。请参见 72 页的 “使用事件通知

请关闭所有不再使用的语句。 jConnect 会存储有关语句的信息以启 用故障切换。未关闭的语句将导致内存泄漏。


jConnect 中实现故障切换

可使用以下两种方法在 jConnect 中实现故障切换支持:

使用两个连接属性 (REQUEST_HA_SESSION

SECONDARY_SERVER_HOSTPORT),并按以下方式设置:

REQUEST_HA_SESSION 设置为 “true”。

SECONDARY_SERVER_HOSTPORT 设置为辅助服务器监听 的主机名和端口号。请参见 9 页的 “连接属性”和 “SECONDARY_SERVER_HOSTPORT”连接属性。

使用 JNDI 连接到服务器。请参见 “使用 JNDI 连接到服务器 。在 JNDI 所需的目录服务信息文件中加入一个主服务器条目和一个辅助 服务器条目。主服务器条目有一个引用辅助服务器条目的属性 (HA OID)

使用 LDAP 作为 JNDI 的服务提供程序时,此 HA 属性可以有以下三 种可能的形式:


a 相对区分名 (RDN)此形式假定与此属性值结合使用的搜索库

(通常由 java.naming.provider.url 属性提供)足以标识辅助服务 器。例如,假定主服务器位于 “hostname:4200”上,而辅助服 务器位于 “hostname:4202”上:

dn:servername=haprimary, o=Sybase, c=US 1.3.6.1.4.1.897.4.2.5: TCP#1#hostname 4200

1.3.6.1.4.1.897.4.2.15: servername=hasecondary objectclass:sybaseServer

dn:servername=hasecondary, o=Sybase, c=US 1.3.6.1.4.1.897.4.2.5: TCP#1#hostname 4202

objectclass:sybaseServer

b 区分名 (DN) –此形式假定 HA 属性的值唯一标识辅助服务器, 因此可能复制也可能不复制在搜索库中找到的值。例如:

dn:servername=haprimary, o=Sybase, c=US 1.3.6.1.4.1.897.4.2.5: TCP#1#hostname 4200

1.3.6.1.4.1.897.4.2.15: servername=hasecondary, o=Sybase, c=US ou=Accounting

objectclass:sybaseServer

dn:servername=hasecondary, o=Sybase, c=US, ou=Accounting 1.3.6.1.4.1.897.4.2.5: TCP#1#hostname 4202

objectclass:sybaseServer

请注意, hasecondary 位于树的其它分支上 (请参见附加的

ou=Accounting 限定符)。

c Full LDAP URL –此形式对搜索库没有任何假定。 HA 属性应是 用于标识辅助服务器的完全限定 LDAP URL (它甚至可以指向 不同的 LDAP 服务器)。例如:

dn:servername=hafailover, o=Sybase, c=US 1.3.6.1.4.1.897.4.2.5: TCP#1#hostname 4200

1.3.6.1.4.1.897.4.2.15: ldap://ldapserver:386/servername=secondary, o=Sybase, c=US ou=Accounting

objectclass:sybaseServer

dn:servername=secondary, o=Sybase, c=US, ou=Accounting 1.3.6.1.4.1.897.4.2.5: TCP#1#hostname 4202

objectclass:sybaseServer

d JNDI 所需的目录服务信息文件中,将 REQUEST_HA_SESSION 连接属性设置为 “true”,以使每次 建立连接时都启用故障切换会话。


使用 REQUEST_HA_SESSION 连接属性表明连接客户端希望与 配置为用于故障切换的 Adaptive Server 开始一个故障切换会 话。将此属性设置为 true 指示 jConnect 将尝试进行故障切换登 录。如果没有设置此连接属性,即使正确配置了服务器,也不 会启动故障切换会话。 REQUEST_HA_SESSION 的缺省值是 false

像设置其它任何连接属性一样设置此连接属性。建立连接后将 不能重置此属性。

如果希望请求故障切换会话时具有更大的灵活性,可以对客户端应 用程序进行编码,使其在运行期设置 REQUEST_HA_SESSION

以下示例演示为 LDAP 目录服务下的数据库服务器 “SYBASE11” 输入的连接信息,其中 “tahiti”是主服务器,“moorea”是辅助协 同服务器:

dn:servername=SYBASE11,o=MyCompany,c=US 1.3.6.1.4.1.897.4.2.5:TCP#1#tahiti 3456

1.3.6.1.4.1.897.4.2.10:REPEAT_READ=false&PACKETSIZE=1024

1.3.6.1.4.1.897.4.2.10:CONNECTION_FAILOVER=false

1.3.6.1.4.1.897.4.2.11:pubs2

1.3.6.1.4.1.897.4.2.9:Tds

1.3.6.1.4.1.897.4.2.15:servername=SECONDARY

1.3.6.1.4.1.897.4.2.10:REQUEST_HA_SESSION=true


dn:servername=SECONDARY, o=MyCompany, c=US 1.3.6.1.4.1.897.4.2.5:TCP#1#moorea 6000

使用 JNDI LDAP 请求连接:

jConnect 使用 LDAP 服务器的目录确定主服务器和辅助服务器 的名称和位置:

/* get the connection */

Connection con = DriverManager.getConnection ("jdbc:sybase:jndi:ldap://ldap_server1:389" +

"/servername=Sybase11,o=MyCompany,c=US",props);

或者

指定搜索库:

props.put(Context.PROVIDER_URL, "ldap://ldap_server1:389/ o=MyCompany, c=US");

Connection con=DriverManager.getConnection ("jdbc:sybase:jndi:servername=Sybase11", props);


登录到主服务器


如果 Adaptive Server 没有配置为用于故障切换或者不能批准故障切换会 话,客户端将无法登录并会显示以下警告:

'The server denied your request to use the high- availability feature.


Please reconfigure your database, or do not request a high-availability session.'


故障切换到辅助服务器


发生故障切换时将抛出 SQL 例外 JZ0F2

'Sybase high-availability failover has occurred.The current transaction is aborted, but the connection is still usable.Retry your transaction.

然后客户端使用 JNDI 自动重新连接到辅助数据库。 注意:

客户端连接到的数据库的标识和任何提交的事务都会得到保留。

部分读取的结果集、游标和存储过程调用将丢失。

发生故障切换时,应用程序可能需要重新启动过程或返回到上一个 完成的事务或活动。


故障恢复到主服务器


有时客户端会从辅助服务器故障恢复到主服务器。何时发生故障恢复是 由系统管理员决定的,他在辅助服务器上发出 sp_failback 之后,客户端 即可期望在主服务器上发生同样的行为和结果,如 44 页的 “故障切 换到辅助服务器”所述。




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