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

 


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

使用 dump load 命令

遇到介质故障 (如磁盘崩溃)时,仅当您有数据库的定期备份及其 事务日志的情况下才可恢复这些数据库。完整恢复依赖于定期使用 dump database dump transaction 命令备份数据库以及使用 load database load transaction 命令恢复它们。下面将对这些命令进行简 要描述,有关详细信息,请参见 13 章 “备份和恢复用户数据 库” 14 章 “恢复系统数据库


image

警告! 切勿使用操作系统复制命令复制操作数据库设备。对复制的 设备运行 Adaptive Server 可能导致数据库损坏。关闭 Adaptive Server,或者使用 quiesce database 命令保护复制操作。

image


转储命令可成功完成执行,即使数据库已被损坏。在备份数据库之 前,请使用 dbcc 命令检查它的一致性。请参见 11 章 “检查数据 库一致性


image

警告!如果直接转储到磁带,则不要在该磁带上存储任何其它类型 的文件 (UNIX 备份、目标文件,等等)。如果不这样,将使 Sybase 转储文件失效。但是,如果转储到 UNIX 文件系统,则可以 将结果文件存档到磁带中。

image


进行例行数据库转储: dump database

dump database 命令可复制整个数据库,包括数据和事务日志。

dump database 不会将日志截断。

dump database 允许动态转储,这意味着,用户可以在执行转储时继 续更改数据库。因此,可以方便地定期备份数据库。


进行例行事务日志转储: dump transaction

使用 dump transaction 命令可定期备份事务日志。 dump transaction 类 似于许多操作系统提供的增量备份。它复制事务日志,并提供自上 一次事务日志转储以来对数据库所进行的所有更改的记录。 dump transaction 复制完日志后,会截断其中不活动的部分。


dump transaction 比完全数据库备份所花费的时间和存储空间要少, 一般更为经常使用。用户可以在转储数据库时继续对该数据库进行 更改。只有在数据库将其日志存储在单独的段上时,才可运行 dump transaction

遇到介质故障后,使用 dump transaction with no_truncate 选项备份 事务日志。这样,可提供一直到发生故障时的事务日志的记录。


设备出现故障后复制日志: dump tran with no_truncate

如果数据设备出现故障,并且数据库不可访问,则使用 dump transaction with no_truncate 选项获取日志的当前副本。此选项不会 截断日志。仅当事务日志在一个单独的段上,且 master 数据库可访 问的情况下,才可使用此选项。


恢复整个数据库: load database

使用 load database 命令可装载使用 dump database 创建的备份。可以 将转储装载到先前存在的数据库中,或使用 for load 选项创建一个新 数据库。创建新数据库时,所分配的空间至少要与分配给原始数据 库的空间相等。

load database 命令将数据库状态设置为 “脱机”。这意味着在装载 数据库之前不必使用 sp_dboption no chkpt on recoverydbo use only read only 选项。但是,在装载数据库和随后装载事务日志期间, 任何人都不能使用数据库。若要使用户可以访问该数据库,请发出 online database 命令。

装载数据库后, Adaptive Server 可能需要:

将所有未用的页 “置零”(如果正在装入的数据库比被转储的 数据库大)。

完成恢复,将事务日志的更改应用到数据。

根据未分配页或长事务的数量,这可能需要几秒钟时间;对于非常 大型的数据库,可能需要数个小时。 Adaptive Server 会发出消息, 说明它正在对页 “置零”,或已开始恢复。这些消息通常存储于缓 冲区中,若要查看它们,请使用:

set flushmessage on


将更改应用到数据库: load transaction

装载数据库之后,使用 load transaction 命令按各个事务日志转储的 创建顺序装载它们。此进程通过重新执行事务日志中记录的更改来 重建数据库。如有必要,可以通过使用 load transaction until_time 选项将数据库向前滚动到其事务日志中某个特定时间,开始恢复数 据库。

load database load transaction 命令之间,用户不能对数据库进行 更改,因为 load database 已将状态设置为 “脱机”。

您只能装载与相关数据库位于相同释放级别的事务日志转储。

装载完事务日志转储的整个序列后,数据库会显示上一次事务日志 转储时提交的所有事务。


使用户可以使用数据库: online database

当装载序列完成后,将数据库的状态改为 “联机”,以便用户可以 使用数据库。除非发出 online database 命令,否则仍旧无法访问由 load database 装载的数据库。

在发出 online database 之前,一定要装载全部所需的事务日志。


跨平台转储和装载数据库

Adaptive Server 允许您跨体系结构规模不同的平台转储和装载数据 库。这意味着您可以从大型平台到小型平台,或从小型平台到大型 平台执行 dump database load database

在大型系统中,存储类型 (如整型或长整型)的最重要字节在较低 地址空间。反之,对于小型系统,存储类型的最重要字节在较高地 址空间。


image

注释 在跨体系结构规模不同的平台执行 dump database load database 时,用户和系统数据不需要转换。转储和装载数据库时, 对操作没有任何限制。

image


Adaptive Server 在执行 load database 的过程中,自动检测数据库转 储文件所在起始系统的体系结构类型,然后执行必要的转换。而且 它还支持从较早版本 (如 11.912.0 12.5 版)进行装载。转储和 装载过程可以从 32 位平台向 64 位平台执行,反之亦然。


支持的平台:


大型平台

Sun Solaris

IBM AIX

HPPA

HPIA

HP-

UX

小型平台

Linux IA

Windows

Sun

Solaris

x86


对于某些平台组合,执行 load database 之后,存储过程和其它编 译对象在初次执行时需要从 syscomments 中的 SQL 文本重新编译。


转储数据库


对于跨平台的转储和装载,在运行 dump database 之前,请使用以下 过程将数据库的状态更改为事务性抑制状态:

1 执行 dbcc checkdb dbcc checkalloc 以检验数据库是否在顺利 运行。

2 使用 sp_dboption 将数据库置于单用户模式。

3 使用 sp_flushstats 将统计数据刷新为 systabstats

4 等待 10 30 秒钟,该时间的长短取决于数据库的大小和活动。

5 对该数据库运行 checkpoint 以刷新已更新的页。

6 运行 dump database


装载数据库


装载数据库后, Adaptive Server 会自动标识转储文件上的规模类 型,并在 load database online database 命令执行期间执行全部所需 的转换。

Adaptive Server 转换索引行后,索引行的顺序可能不正确。在执行 online database 的过程中, Adaptive Server 将用户表上的下列索引标 记为可疑索引:

• APL 表上的非聚簇索引

• DOL 表上的聚簇索引

• DOL 表上的非聚簇索引


在执行跨平台转储和装载操作期间,将按如下方式处理可疑分区:

在跨两个字节顺序类型不同的平台执行 load database 后,首次执 行 online database 命令的过程中,散列分区被标记为可疑分区。

循环分区 (已使用 unichar varchar 分区键在内部生成分区条 件)上的任何全局聚簇索引都会被标记为可疑索引。

数据库联机后,使用 sp_post_xpload 可修复可疑分区和索引。


关于转储和装载数据库和事务的限制

dump transaction load transaction 不允许跨平台使用。

不支持跨平台向 / 从远程 Backup Server 执行 dump database

load database

不能跨平台装载有口令保护的转储文件。

如果针对已分析的 XML 对象执行 dump database load database,则必须在 load database 完成后再次分析文本。

只能将转储装载到与从中转储它们的服务器具有相同排序顺序 的服务器。例如,您无法将转储从使用词典顺序、区分大小 写、区分重音排序顺序的服务器装载到使用词典顺序、不区分 大小写、不区分重音排序顺序的服务器。

对于版本早于 11.9 Adaptive Server,不能跨平台执行 dump database load database

• Adaptive Server 不能转换存储为 binaryvarbinary image 列的 嵌入数据结构。

不允许对 master database 执行跨平台的 load database 操作。

执行 load database 之后,存储过程和其它编译对象在初次执行 时需要从 syscomments 中的 SQL 文本重新编译。

如果您无权从文本重新进行编译,则拥有该权限的人必须使用

dbcc upgrade_object 从文本重新进行编译才能升级对象。


image

注释 如果将 master 数据库中的 syslogins 系统表中的登录记录从 Solaris 迁移到 Linux,则可以将 bcp 与字符格式配合使用。Solaris 平 台上的登录口令与此版本中没有跟踪标志的 Linux 平台上的登录口 令兼容。对于所有其它组合和平台,由于口令不兼容,因此需要重 新创建登录记录。

image


性能注释


为了快速访问表的数据行,对索引行进行了排序。包含行标识符的 索引行被视为二进制,可用于快速访问用户表。

在同一体系结构平台中,索引行的顺序保持有效,并且选择条件的 搜索顺序采用正常途径。但是,当在不同的体系结构间转换索引行 时,优化的执行顺序无效,这会导致跨平台转储和装载期间用户表 上的索引无效。

装载来自不同体系结构的数据库转储 (例如从大型平台转储到小型 平台)时,某些索引将被标记为可疑:

• APL 表上的非聚簇索引

• DOL 表上的聚簇索引

• DOL 表上的非聚簇索引

要修复目标系统上的索引,在从不同的体系结构转储装载之后,您 可以:

删除并重新创建所有索引,或者

使用 sp_post_xpload

一般而言,需要进行计划以在大型表上重新创建索引,并且这将是 一个冗长的过程。

sp_post_xpload 验证索引,删除无效索引,然后通过一条命令在数据 库上重新创建已删除的索引。因为 sp_post_xpload 执行许多操作, 所以删除并重新创建索引所需的时间会较长。将 sp_post_xpload 用 于小于 10G 的数据库。对于大于 10G 的数据库,Sybase 建议您删除 并重新创建索引。


将数据库移到另一 Adaptive Server

您可以使用 dump database load database 将数据库从一个 Adaptive Server 移至另一个 Adaptive Server。但是,必须要确保目标 Adaptive Server 上的设备分配情况与原始 Adaptive Server 上的设备分配情况 相匹配。否则,新数据库中的系统段和用户定义的段将与原始数据 库中的那些段不匹配。

若要在将数据库转储装载到新的 Adaptive Server 时保留设备分配状 态,使用的指令应与由于设备故障而恢复用户数据库时所用的指令 相同。请参见 365 页的 “检查空间使用情况


此外,将系统数据库移到不同设备上时,应遵循以下一般准则:

移动 master 数据库之前,务必取消主设备的镜像。如果不这样 做,在您用新设备启动 Adaptive Server 时,Adaptive Server 会尝 试使用旧的镜像设备文件。

移动 master 数据库时,应使用与原设备的大小相同的新设备, 以避免 sysdevices 中的分配错误。

若要移动 sybsecurity 数据库,请先将新数据库置于单用户模式, 然后再将旧数据装载到该数据库中。


升级用户数据库


可以从版本 11.9 或任何更高版本的 Adaptive Server 将转储装载到当 前版本的 Adaptive Server。在发出 online database 命令之前,不会升 级所装载的数据库。

升级用户数据库的步骤与升级系统数据库的步骤相同:

1 使用 load database 装载 11.9 版或更高版本的 Adaptive Server 的 数据库转储。 load database 将数据库状态设置为 “脱机”。

2 使用 load transaction 命令来按顺序 装载上次数据库转储后生成 的所有事务日志。在执行第 3 步之前,装载所有事务日志。

3 使用 online database 升级数据库。 online database 命令会升级数 据库,因为其当前状态与 Adaptive Server 的当前版本不兼容。 升级完成后,数据库状态被设置为 “联机”,这样该数据库便 可供使用。

4 对已升级的数据库进行转储。必须在 dump database 命令发生 后,才允许执行 dump transaction 命令。

请参见 《参考手册:命令》。


使用特殊 dump transaction 选项

在某些情况下,以上所述的简单模型不适用。 12-1 说明何时使用 特殊的 with no_log with truncate_only 选项,而不用标准的 dump transaction 命令。


image

警告! 12- 1 中的说明使用特殊的 dump transaction 命令。需 要特别指出的是,应将 dump transaction with no_log 作为最后一种手 段来使用,并仅在 dump transaction with no_truncate 失败后使用此命 令一次。 dump transaction with no_log 命令仅释放事务日志中非常少 的空间。如果在输入 dump transaction with no_log 后继续装载数据, 日志可能会被完全填满,从而导致随后的 dump transaction 命令失 败。应使用 alter database 命令为数据库分配额外的空间。

image


12-1:何时使用 dump transaction with truncate_only dump transaction with no_log

image

情形 Use

image

日志与数据在同一段时。 dump transaction with truncate_only 截断日志

image

dump database 复制包括日志在内的整个数据库

在不用关心当前事务的恢复时

(例如,在早期开发环境中)。

image

由于日志空间不足而导致转储事务日志的常规 方法 (标准的 dump transaction 命令或 dump transaction with truncate_only)失败时。

dump transaction with truncate_only 截断日志

dump database 复制整个数据库

dump transaction with no_log 截断日志,而不记录事件

之后立即使用 dump database 来复制包括日志在内的整 个数据库

image


使用特殊装载选项标识转储文件

使用 with headeronly 选项提供磁带上的指定文件或第一个文件的标 头信息。使用 with listonly 选项返回有关磁带上所有文件的信息。这 些选项实际不装载磁带上的数据库或事务日志。


image

注释 这些选项是互斥的。如果同时指定两者,则 with listonly 优先。

image


从备份恢复数据库


12-3 说明恢复星期一下午 4:30 创建的数据库,之后立即进行转

储操作的进程。完全数据库转储在每天下午 5:00 进行。事务日志转 储在每天上午 10:00、中午 12:00、下午 2:00 和下午 4:00 进行:

12-3:恢复数据库,方案一

image

image

image

image

image

image

image

image

image

image

image

image

执行例行转储 从转储恢复数据库

星期一,下午 4:30


星期一,下午 5:00

磁带 1 (180MB)


星期二,上午 10:00

磁带 2 (45MB)


星期二,中午 磁带 3 (45MB)


星期二,下午 2:00

磁带 4 (45MB)


星期二,下午 4:00

磁带 5 (45MB)


星期二,下午 5:00

磁带 6 (180MB)


create database


dump database


dump transaction


dump transaction


dump transaction


dump transaction


dump database

星期二,下午 6:15

磁带 7


星期二,下午 6:20

磁带 6


星期二,下午 6:35

磁带 7


星期二,下午 6:50


dump transaction with no_truncate


load database


load transaction


online database


星期二,下午 6:00 设备数据出现故障!


如果存储数据的磁盘在星期二下午 6:00 出现故障,应遵循以下步骤 来恢复数据库:

1 使用 dump transaction with no_truncate 获取当前事务日志转储。

2 使用 load database 装载最新的数据库转储,即磁带 6load database 将数据库的状态设置为 “脱机”。

3 使用 load transaction 应用最新的事务日志转储,即磁带 74 使用 online database 将数据库状态设置为 “联机”。


12-4 说明数据设备在星期二下午 4:59 出现故障后 (在操作员按 预定计划进行每晚的数据库转储之前),如何恢复数据库:

12-4:恢复数据库,方案二

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

执行例行转储 从转储恢复数据库


星期一,下午 4:30


create database

星期二,下午 5:15

磁带 6

dump transaction with no_truncate


星期一,下午 5:00

磁带 1 (180MB)


星期二,上午 10:00

磁带 2 (45MB)


星期二,中午 磁带 3 (45MB)


dump database


dump transaction


dump transaction

星期二,下午 5:20

磁带 1


星期二,下午 5:35

磁带 2


星期二,下午 5:40

磁带 3


load database


load transaction


load transaction


星期二,下午 2:00

磁带 4 (45MB)


星期二,下午 4:00

磁带 5 (45MB)


dump transaction


dump transaction

星期二,下午 5:45

磁带 4


星期二,下午 5:50

磁带 5


星期二,下午 5:55


load transaction


load transaction

星期二,下午 4:59 设备数据出现故障!


星期二,下午 5:00

磁带 6


星期二,下午 6:00

load transaction

磁带 6

dump database

online database


若要恢复数据库,请执行以下操作:

1 使用 dump transaction with no_truncate 在磁带 6(将用于常规数据 库转储的磁带)上获取当前的事务日志转储。

2 使用 load database 装载最新的数据库转储,即磁带 1load database 将数据库状态设置为 “脱机”。

3 使用 load transaction 装载磁带 234 5,以及最新的事务日 志转储,即磁带 6

4 使用 online database 将数据库状态设置为 “联机”。




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