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

 


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

load transaction

说明 装载使用 dump transaction 创建的事务日志的备份副本。

语法 进行例行日志装载:

load tran[saction] database_name

from [compress::]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes,

dumpvolume = volume_name, file = file_name]

[stripe on [compress::]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, dumpvolume = volume_name, file = file_name]

[[stripe on [compress::]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, dumpvolume = volume_name, file = file_name]]...]

[with {

density = density_value, blocksize = number_bytes, compression,

dumpvolume = volume_name, file = file_name,

[dismount | nodismount], [nounload | unload],

notify = {client | operator_console}

}]]

返回标头或文件信息但不装载备份日志:

load tran[saction] database_name

from [compress::]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes,

dumpvolume = volume_name, file = file_name]

[stripe on [compress::]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, dumpvolume = volume_name, file = file_name]

[[stripe on [compress::]stripe_device


[at backup_server_name] [density = density_value, blocksize = number_bytes, dumpvolume = volume_name, file = file_name]]...]

[with {

density = density_value, blocksize = number_bytes, compression,

dumpvolume = volume_name, file = file_name,

[dismount | nodismount], [nounload | unload], listonly [= full], headeronly,

notify = {client | operator_console} until_time = datetime}]]

将事务日志装载到存档数据库中:

load tran[saction] database_name

from dump_device

[[stripe on stripe_device] ...]

(仅限 Tivoli Storage Manager)您的站点许可使用 Tivoli Storage Manager

时装载事务日志的副本。

load transaction database_name

from syb_tsm::[[-S source_sever_name][-D source_database_name]

::]object_name [blocksize = number_bytes] [stripe on syb_tsm::[[-S source_sever_name]

[-D source_database_name]::]object_name

[blocksize = number_bytes]]

[[stripe on syb_tsm::[[-S source_sever_name]

[-D source_database_name]::]object_name

[blocksize = number_bytes]]...] [with {

blocksize = number_bytes, passwd = password, listonly [= full],

headeronly,

notify = {client | operator_console}, until_time = datetime

} ]


参数 database_name

从转储的事务日志备份副本中接收数据的数据库的名称。接收数据库 的日志段的大小至少要与转储数据库的日志段的大小相同。可将数据 库的名称指定为文字、局部变量或存储过程参数。对于存档数据库, database_name 是要将事务日志装载到的存档数据库。


compress::

调用存档事务日志的解压缩。有关 compress 选项的详细信息,请参 见 《系统管理指南》中的 “备份和恢复用户数据库”。


image

注释 Sybase 建议首选使用本机 "compression = compress_level" 选项,旧 选项 "compress::compression_level" 其次。如果对 dump database 使用了该 本机选项,则在装载数据库时无需使用 "compress::compression_level"

image


from stripe_device 从中装载事务日志的转储设备的名称。有关指定转储设备时使用何种 形式的信息,请参见 485 页的 “指定转储设备 。有关支持的转储 设备的列表,请参见 Adaptive Server 安装和配置指南。

at backup_server_name

在转储设备附加到的计算机上运行的远程 Backup Server 的名称。对于 使用接口文件的平台, backup_server_name 必须出现在接口文件中。

from dump_device

是本地磁盘事务日志转储。

density = density_value

替换磁带设备的缺省密度。 忽略该选项。

blocksize = number_bytes

替换转储设备的缺省块大小。如果在 UNIX 系统上指定块大小,它应 该与用来进行转储的块大小相同。

dumpvolume = volume_name

ANSI 磁带标签的卷名字段。打开磁带时,load transaction 会检查此 标签,如果装载了错误的卷,则会生成错误消息。

file = file_name 是磁带卷上特定数据库转储的名称。如果在生成转储时未记录转储文 件名,可使用 listonly 显示有关所有转储文件的信息。

stripe on stripe_device

是附加的转储设备。最多可以使用 32 个设备,其中包括在 to stripe_device 子句中指定的设备。 Backup Server 同时从所有设备装载 数据,从而减少了所需时间和卷更改次数。有关如何指定转储设备的 信息,请参见 485 页的 “指定转储设备


compression 指示您正在装载的日志已被压缩为远程服务器上的文件。无需为 load transaction 指定压缩级别。

with compression 选项不同于 compress 选项,后者用来从本地文件装载 压缩的日志。


image

注释 Sybase 建议首选使用本机 "compression = compress_level" 选项,旧 选项 "compress::compression_level" 其次。如果对 dump database 使用了该 本机选项,则在装载数据库时无需使用 "compress::compression_level"

image


dismount | nodismount

(在支持逻辑卸下的平台上)确定磁带是否保持装入状态。缺省情况 下,在装载完成时将卸下装载所用的全部磁带。使用 nodismount 命令 可使磁带供其它装载或转储使用。

nounload | unload 确定装载完成后是否回绕磁带。缺省情况下磁带不回绕,从而使您可 以从同一磁带卷进行更多的装载。为要从多转储卷装载的最后一个转 储文件指定 unload。这样,在装载完成后就会回绕并卸载磁带。

listonly [= full] 显示有关磁带卷上所有转储文件的信息,但不装载事务日志listonly 标识数据库和设备、转储日期和时间以及转储可被覆盖的日期和时 间。 listonly = full 提供有关转储的其它详细信息。两个报告都按 ANSI 磁带标签进行排序。

列出卷上的文件之后,Backup Server 发出卷更改请求。操作员可以安 装另一个磁带卷,也可以终止所有转储设备的列表操作。

在当前实现中, listonly 会替换 headeronly


image

警告!请不要对 1/4 英寸盒式磁带使用 load transaction with listonly

image


headeronly

显示单个转储文件的标头信息,但不装载数据库headeronly 显示有 关磁带上第一个文件的信息,除非使用 file = file_name 选项另指定一 个文件名。转储标头表示:

转储类型 (数据库或事务日志)

数据库 ID

文件名

执行转储的日期

字符集

排序顺序

页数

下一个对象 ID

日志中的检查点位置

最早的 begin transaction 记录的位置

旧的和新的序列日期

notify = {client | operator_console}

替换缺省的消息显示目标。

在提供操作员终端功能的操作系统上,始终会将卷更改消息发送 到运行 Backup Server 的计算机的操作员终端上。使用 client 可将 其它 Backup Server 消息发送到启动 dump database 的终端会话。

在不提供操作员终端功能的操作系统 (如 UNIX)上,消息将发 送到启动 dump database 的客户端。使用 operator_console 将消息 发送到运行 Backup Server 的终端。

until_time 装载事务日志中指定时间之前的事务日志。只有在指定时间前提交的 事务被保存到数据库中。

syb_tsm

是调用 libsyb_tsm.so 模块的关键字,该模块用于实现 Backup Server

TSM 之间的通信。

object_name

TSM 服务器上备份对象的名称。


-S source_server_name

Adaptive Server 与目标 Adaptive Server 不同时,指定源 Adaptive Server 的名称。装载操作的目标服务器与用于转储操作的源服务器不 同时,该参数是必需的。

-D source_database_name 源数据库与目标数据库不同时,指定源数据库的名称。装载操作的目 标数据库与转储操作的源数据库不同时,该参数是必需的。

示例 示例 1 为数据库 pubs2 磁带装载事务日志:

load transaction pubs2 from "/dev/nrmt0"

示例 2 使用 Backup Server REMOTE_BKP_SERVER 装载 pubs2 数据库的 事务日志:

load transaction pubs2

from "/dev/nrmt4" at REMOTE_BKP_SERVER stripe on "/dev/nrmt5" at REMOTE_BKP_SERVER stripe on "/dev/nrmt0" at REMOTE_BKP_SERVER

示例 3 装载 pubs2 2008 3 20 日上午 10:51:43:866 之前的事务日志。

load transaction pubs2 from "/dev/ntmt0"

with until_time = "mar 20, 2008 10:51:43:866am"

示例 4 将事务从 TSM 备份对象 “demo2.1”装载到 testdb 数据库。源数据 库和目标数据库相同。有关信息,请参见 371 页的 “ dump transactio n”:

load transaction testdb from "syb_tsm::demo2.1"

示例 5 目标数据库 (pubs2) 与源数据库 (testdb) 不同时,从 TSM 备份对象 “obj1.1”装载事务:

load transaction pubs2 from "syb_tsm::

-D testdb::obj1.1"

用法 如果在使用 sp_hidetext 之后执行跨平台的 dump load,则必须手动 删除并重新创建所有隐藏对象。

listonly headeronly 选项显示有关转储文件的信息,但不装载这些 转储文件。

转储和装载通过 Backup Server 执行。

1-26 描述了用于从备份中恢复数据库的命令和系统过程:


1-26: 用于恢复数据库的命令

image

使用此命令 要进行此操作

create database for load 创建一个用于装载转储的数据库。

load database 从转储中恢复数据库。

load transaction 对恢复的数据库应用最近的事务。

online database 在完成常规装载序列或将数据库升级到最新版本的 Adaptive Server 后,使

公共用户可以访问数据库。

load {database | transaction} with

{headeronly | listonly}

标识磁带上的转储文件。

sp_volchanged 响应 Backup Server 卷更改消息。


限制

不能装载在版本低于 11.9 的服务器上生成的转储。

数据库和事务日志必须处于同一版本级别。

按时间顺序装载事务日志。

不能从空设备 (UNIX 上为 /dev/null)装载。

不能在执行升级的 online database 命令之后使用 load transaction。升 级数据库的正确顺序是:load databaseload transactiononline database

不到所有事务日志都装载完成,请不要发出 online database。命令序 列是:

a Load database

b Load transaction (必要时重复)

c Online database

然而,要在保持对数据库的只读访问的同时装载其它事务日志 (典 型的 “热备份”情况),请使用 dump tran for standby_access 选项生 成事务转储。然后可以为只读访问发出 online database for standby_access

不能在用户定义的事务中使用 load transaction 命令。

恢复数据库

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

装载最近的数据库转储

按顺序 装载自上次数据库转储以来生成的所有事务日志转储

发出 online database 使数据库对公共用户可用


每次添加或删除跨数据库约束或者删除包含跨数据库约束的表时, 都请转储上述两个受影响的数据库。


image

警告!装载这些数据库的早期转储会导致数据库损坏。

image


有关备份和恢复 Adaptive Server 数据库的详细信息,请参见 《系统 管理指南》。

将数据库恢复到指定的时间

可对大多数能够装载或转储的数据库使用 until_time 选项。 until_time 不适用于数据和日志位于同一设备上的数据库,如 master 数据库。 此外,也不能对自上次 dump database 以来拥有过截断的日志的数据 库 (例如 tempdb)使用该选项。

until_time 选项十分有用,因为:

它可以使数据库与特定时间保持一致。例如,在含有决策支持 系统 (DSS) 数据库和联机事务处理 (OLTP) 数据库的环境中,系 统管理员可以将 DSS 数据库回退到指定的以前的时间,以在早 期版本和当前版本之间比较数据。

如果用户无意之间损坏了数据 (例如删除了重要的表),则可 以使用 until_time 选项通过将数据库向前滚动到损坏数据之前的 那个点来取消错误命令。

若要在数据已经损坏之后有效地使用 until_time 选项,则必须知道发 生错误的确切时间。通过在发生错误后立即执行 select getdate () 命 令可以查出该时间。若要获得精确到毫秒的时间,请使用 convert 函 数,例如:

select convert (char (26), getdate (), 109)

- ---------- ---------- -----

Feb 26 1997 12:45:59:650PM

在使用 until_time 装载事务日志之后, Adaptive Server 会重新启动数 据库的日志序列。这意味着,在您再次转储该数据库之前,不能在 执行 load transaction 命令后使用 until_time 装载之后的事务日志。要 另外转储一个事务日志,请先转储数据库。

只有在指定时间之前提交的事务被保存到数据库中。然而,在某些 情况下,在 until_time 指定不久之后提交的事务也应用到数据库数 据。当几个事务同时提交时可能发生此种情况。事务的顺序可能不 以时间顺序写到事务日志中。在这种情况下,时间顺序混乱的事务 会反映在已恢复的数据中。时间差应少于 1 秒。

有关将数据库恢复到指定时间的详细信息,请参见 《系统管理指 南》。


装载时将用户锁在外面

不能使用装载中的数据库。如果您正在装载数据库,则该数据库不 能使用。不同于 load databaseload transaction 不会更改数据库的脱 机或联机状态。 load transaction 保留数据库的原有状态。 load database 将数据库的状态设置为 “offline”。数据库处于 “offline” 状态时,无人可使用该数据库。“offline”状态可防止用户在装载 序列期间对数据库进行访问和更改。

在发出 online database 之前,用 load database 装载的数据库一直保持 不可访问状态。

升级数据库和事务日志转储

要将用户数据库转储从 11.9 或更高版本的服务器恢复并升级到最新版本 的 Adaptive Server,可执行如下操作:

1 装载最近的数据库转储。

2 按顺序 装载上次数据库转储后生成的所有事务日志。

3 使用 online database 升级数据库。

4 升级后立即转储该新升级的数据库,以创建与 Adaptive Server 的当 前版本一致的转储。

指定转储设备

可以将转储设备指定为文字、局部变量或存储过程参数。

从本地设备装载时,可以使用以下形式指定转储设备:

绝对路径名

相对路径名

sysdevices 系统表中的逻辑设备名称

Backup Server 使用 Adaptive Server 中的当前工作目录解析相对路径名。

通过网络转储时,请指定转储设备的绝对路径名。(不能使用相对 路径名或 sysdevices 系统表中的逻辑设备名。)路径名在运行 Backup Server 的计算机上必须是有效的。如果名称包括任何非字 母、数字或下划线 (_) 的字符,都必须用引号将它引起来。

转储设备上的所有权和权限问题可能会干扰装载命令的使用。 sp_addumpdevice 将设备添加到系统表,但不保证可以从该设备装载 或将文件创建为转储设备。

可以同时运行多个装载 (或转储),只要每个装载使用不同的物理 设备即可。


Backup Servers

• Backup Server 必须与 Adaptive Server 在同一台计算机上运行。 Backup Server 必须在 master..sysservers 表中列出。这个条目是在安 装或升级过程中创建的,不得删除。

如果备份设备位于另一台计算机上而您因此要通过网络进行装载, 那么在该远程计算机上也必须安装 Backup Server

卷名

转储卷根据 ANSI 磁带标签标准标注。标签信息应包含逻辑卷号和 设备在分条集中的位置。

装载过程中, Backup Server 使用磁带标签来检验卷的安装顺序是否 正确。这使您可以从比转储时所用设备数更少的设备进行装载。


image

注释 通过网络进行转储和装载时,必须为每个操作指定相同数量 的分条设备。

image

更改转储卷

如果 Backup Server 检测到当前装入的卷有问题,它会通过向客户机或 其操作员主控台发送消息来请求更改卷。安装另一个卷后,操作员通过 在可以与 Backup Server 通信的任何 Adaptive Server 上执行 sp_volchanged 通知 Backup Server

恢复系统数据库

有关从转储中恢复系统数据库的分步指导,请参见 《系统管理指南》。

磁盘镜像

在装载开始时,Adaptive Server 将每个逻辑数据库和逻辑日志设备的 主设备名传递给 Backup Server。如果主设备已取消镜像, Adaptive Server 会改为传递辅助设备名。如果任何指定的设备在 Backup Server 完成数据传输前发生故障,则 Adaptive Server 将中止装载。

如果在 load transaction 正在进行时试图取消任何指定设备的镜像, 则 Adaptive Server 会显示一条消息。执行 disk unmirror 的用户可以中 止装载或将 disk unmirror 推迟到装载完成后执行。

• Backup Server 将数据装载到主设备上,load transaction 随后将其复制 到辅助设备上。如果有任何数据库进行了镜像,则 load transaction 会花费更长的时间完成。


将事务日志装载到存档数据库中

将事务日志装载到存档数据库时, load tran 会运行恢复撤消过程。已修 改和新的数据库页会写入永久性更改段。已修改页区域必须有足够的空 间容纳这些更改。如有必要,可使用 alter database 增加分配给存档数据 库的正常数据库存储,从而增加已修改页区域的空间。

与传统数据库不同,存档数据库可在装载序列的中间进行联机,而不会 中断装载序列。如果装载传统数据库后进行联机,而没有使用用于 standby_access 的子句,则不能再将接下来的事务日志装载到装载序列 中。但是,存档数据库可以不使用用于 standby_access 的子句进行联 机,并且之后装载序列还可以装载接下来的事务日志。这样,在装载序 列期间可随时执行只读操作,如运行一致性检查。之所以能够这样,是 因为在将事务日志装载到存档数据库时, Adaptive Server 会自动从已修 改页区域中删除一次性更改段。这样可以有效地将存档数据库恢复到之 前装载完成后的状态,从而允许装载序列中的下一个事务日志。

标准 符合 ANSI SQL 的级别Transact-SQL 扩展。

权限 load transaction 的权限检查因您的细化权限设置而异。

image

细化权限已启用 在启用细化权限的情况下,您必须是数据库所有者,或是对数据库拥有 load database 特权或 own database 特权的用户。

细化权限已禁用 在禁用细化权限的情况下,您必须是数据库所有者,或是具有以下任一角色 的用户:

sa_role ,或

replication_role

oper_role


审计 sysaudits event extrainfo 列中的值如下:

image

事件 审计选项 审计的命令或访问权限 extrainfo 中的信息

44 load load transaction 角色 – 当前活动角色

关键字或选项 NULL

先前值 NULL

当前值 NULL

其它信息 NULL

代理信息 set proxy 有效时的初始登录名


另请参见 文档 《系统管理指南》中的 “备份和恢复用户数据库”。 .

命令 disk unmirror, dump database, dump transaction, load database, online database.

系统过程 sp_dboption, sp_helpdb, sp_helpdevice, sp_hidetext, sp_volchanged.




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