远程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 database

说明 以一种可用 load database 命令读取的格式制作整个数据库 (包括事务日 志)的备份副本。转储和装载通过 Backup Server 执行。

如果您不转储压缩数据,则 load database 操作的目标平台不必和发生 dump database 操作的源平台相同。压缩数据的转储和装载必须发生在同 一平台上。不过,可从大型平台向小型平台执行 dump database load database,或者从小型平台向大型平台执行。

有关您的站点许可使用 Tivoli Storage Manager 时的 dump database 语法, 请参见 《将 Backup Server IBM Tivoli Storage Manager 配合使用》。

语法 dump database database_name

using config[uration] = config_name

[with {

verify[ = header | full]

}]

to [compress::[compression_level::]]stripe_device [at backup_server_name]

[density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]

[with shrink_log]

with verify[= header | full]

[stripe on [compress::[compression_level::]]stripe_device [at backup_server_name]

[density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]]

[[stripe on [compress::[compression_level::]]stripe_device [at backup_server_name]

[density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]]...]

[with {

density = density_value, blocksize = number_bytes, capacity = number_kilobytes, compression = compress_level dumpvolume = volume_name, file = file_name,

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


passwd = password, retaindays = number_days, [noinit | init],

notify = {client | operator_console}

}]

(Tivoli Storage Manager) 使用此语法可在 Tivoli Storage Manager 提供备份 服务时复制数据库。

dump database database_name

to "syb_tsm::object_name" [blocksize = number_bytes]

[stripe on "[syb_tsm::]object_name" [blocksize = number_bytes]]...]

[with {

blocksize = number_bytes, compression = compress_level, passwd = password,

[noinit | init],

notify = {client | operator_console}, verify[ = header | full]

} ]

参数 config[uration] = config_name

读取指定的转储配置并使用指定的值执行转储操作。

如果使用转储配置,则不能将分条目录指定为命令的参数。 Adaptive Server 在转储配置指定的分条目录中创建转储文件。使用以下约定命 名转储文件:

database_name.dump_type.date-timestamp.stripeID

明确指定的命令参数覆盖了转储配置所指定的参数值。

database_name 是您从中复制数据的数据库的名称。可将数据库名称指定为文字、局 部变量或存储过程参数。

compress::compression_level 已不再使用,提供它的目的仅仅是为了与旧版本应用程序兼容。改为 将 "compression = compress_level" 用于压缩。有关 compress 选项的详细 信息,请参见 《系统管理指南,卷 2 》中的 “备份和恢复用户数据 库”。


image

注释 Sybase 建议首选使用本机 "compression = compress_level" 选项,旧 "compress::compression_level" 选项其次。该本机选项允许压缩本地和远 程转储,并且它创建的转储将在装载期间描述其自身的压缩级别。保留 旧选项是为了与以前的应用程序兼容。

image


to stripe_device 是要向其复制数据的设备。有关指定转储设备时使用何种形式的信 息,请参见 362 页的 “指定转储设备

at backup_server_name

Backup Server 的名称。转储到缺省 Backup Server 时不要指定此参 数。仅当通过网络转储到远程 Backup Server 时才指定此参数。使用 此选项可指定多达 32 个远程 Backup Server。通过网络进行转储时, 请指定在转储设备附加到的计算机上运行的远程 Backup Server 网 络名。对于使用接口文件的平台, backup_server_name 必须出现在接 口文件中。

density = density_value

替换磁带设备的缺省密度。有效密度为 80016006250666610000 38000。并不是所有的值对于每个磁带驱动器都有效;请使 用适合您的磁带驱动器的正确密度。

blocksize = number_bytes 替换转储设备的缺省块大小。块大小必须至少为一个数据库页 (对 于大多数系统为 2048 字节),且必须为数据库页大小的整数倍。若 要获得最佳性能,请将 blocksize 指定为 2 的乘方,例如 65536131072 262144

capacity = number_kilobytes 是设备可写入单个磁带卷的最大数据量。容量至少应为 5 个数据库 页,但应小于设备的推荐容量。

计算容量的一般规则是使用设备制造商给出的设备最大容量的 70%, 留出 30% 的容量用于记录间隙和磁带标志之类的开销。最大容量是驱 动器上设备的容量,而不是驱动器本身的容量。此规则在多数情况下 适用,但可能由于各供应商和设备的开销存在差异而不能全部适用。

在不能可靠检测到磁带结束标志的 UNIX 平台上,请指明可转储到磁 带的千字节数。对于作为物理路径名指定的转储设备,必须提供 capacity。如果将转储设备作为逻辑设备名指定,则除非指定容量, 否则 Backup Server 使用存储在 sysdevices 系统表中的 size 参数。


compression = compress_level

0 9 之间的数字、100 101。对于一位数的压缩级别,0 表示不 进行压缩,而 9 表示最高级别的压缩。压缩级别 100 101 提供更加

快捷、更加有效的压缩模式,其中 100 提供更加快捷的压缩,而 101 提供程度更高的压缩。如果不指定 compression_levelAdaptive Server 将不会压缩转储。


image

注释 Sybase 建议首选使用本机 "compression = compress_level" 选项,为了 与以前的应用程序兼容而保留的旧选项 "compress::compression_level" 其次。

image


dumpvolume = volume_name

建立指派给卷的名称。 volume_name 的最大长度为 6 个字符。覆盖现 有转储、转储到新磁带或者转储到内容不可识别的磁带时, Backup Server 会在 ANSI 磁带标签中写入 volume_nameload database 命令会 检查标签,如果装载了错误的卷,则会生成错误消息。


image

警告!请在创建时为每个磁带卷贴上标签,以便操作员装载正确的磁带。

image


with shrink_log

在使用 alter database log off 命令缩减日志中的空间时,如果在数据库中 创建了空洞,则会使用它。此命令会在数据库不在转储序列中时自动 删除数据库结尾的空洞。同样, dump database 将会在数据库不在转储 序列中时 (也就是说,当您由于 dump transaction 不被允许而被迫运行 dump database 时,例如,当执行了任何最少日志记录命令时)自动删 除数据库结尾的任何空洞。dump database with shrink_log 选项会删除 数据库结尾的空洞,无论数据库是否在转储序列中都是如此。

with verify[= header | full]

允许 Backup Server 在数据页复制到存档中时对数据页执行最低限度 的标头或结构行检查。此时不会对 gamoamallocation pagesindexestext log 页进行结构检查。唯一的其它检查在页码与页头 匹配的页上执行。

stripe on stripe_device

是附加的转储设备。可以使用多达 32 个设备,其中包括在 to stripe_device 子句中命名的设备。 Backup Server 将数据库分成几个大 致相等的部分,并将每个部分发送到不同的设备。转储是在每个设备 上同时进行的,减少了进行转储所需的时间,并且转储过程中需要的 卷更改更少。请参见 362 页的 “指定转储设备


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

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

passwd = password 是您提供的口令,用来防止转储文件被未经授权的用户使用。口令长 度必须介于 6 30 个字符之间。口令不能使用变量。请参见 《系统 管理指南,卷 1》中的 “管理 Adaptive Server 登录、数据库用户和客 户端连接”。

retaindays = number_days

UNIX 系统)转储到磁盘时,请指定天数, Backup Server 保护转储 在此天数内不被覆盖。如果试图在过期前覆盖转储,则在覆盖未过期 卷前, Backup Server 会要求进行确认。


image

注释 此选项仅适用于转储到磁盘时;它不适用于磁带转储。

image


number_days 必须是正整数,或者,对于可立即覆盖的转储则为 0。 如果不指定 retaindays 值,则 Backup Server 将使用由 sp_configure 设置 的 tape retention in days 值。

noinit | init

确定是将转储附加到现有的转储文件还是重新初始化 (覆盖)磁带 卷。缺省情况下, Adaptive Server 将转储附加在最后一个磁带结束标 记之后,从而使您可以向同一个卷转储其它数据库。新的转储只能附 加到多卷转储的最后一个卷上。对转储到磁带的第一个数据库使用 init 以覆盖其内容。

在需要 Backup Server 存储或更新磁带配置文件中的磁带设备特性时, 可使用 init 命令。请参见 《系统管理指南》。

file = file_name

是转储文件名。该名称不得超过 17 个字符,且必须符合操作系统对 文件名的约定。请参见 363 页的 “转储文件


notify = {client | operator_console }

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

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

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

syb_tsm::obj_name

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

Tivoli Storage Manager 之间的通信。

object_name

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

示例 示例 1 使用 dmp_cfg2 转储配置转储数据库:

dump database testdb using config=dmp_cfg2

示例 2 使用 dmp_cfg2 转储配置转储数据库。在转储操作中创建的存档文 件带口令保护:

dump database testdb using config=dmp_cfg2 with passwd='mypass01'


image

注释 口令必须用单引号或双引号引起来。

image


示例 3 使用 dmp_cfg2 转储配置执行数据库转储,明确指定压缩级别 6, 从而覆盖在 dmp_cfg2 中配置的压缩级别:

dump database testdb using config=dmp_cfg2 with compression=6

示例 4 将数据库 pubs2 转储到磁带设备。如果磁带具有 ANSI 磁带标签, 则此命令将该转储附加到磁带上已有的文件之后,因为未指定 init 选项:

dump database pubs2 to "/dev/nrmt0"

示例 5 (仅限 UNIX)使用 REMOTE_BKP_SERVER Backup Server 转储 pubs2 数据库。此命令指定了三个转储设备,因此 Backup Server 会将约 数据库的三分之一转储到每个设备。此命令可将转储附加到磁带上现有 的文件。 retaindays 选项指定 14 天不得覆盖磁带:

dump database pubs2

to "/dev/rmt4" at REMOTE_BKP_SERVER


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

with retaindays = 14

示例 6 init 选项初始化磁带卷,覆盖所有现有文件:

dump database pubs2 to "/dev/nrmt0" with init

示例 7 在转储完成时回绕转储卷:

dump database pubs2 to "/dev/nrmt0" with unload

示例 8 (仅限 UNIXnotify 子句将请求卷更改的 Backup Server 消息发送 到发起转储请求的客户端,而不是将其发送到缺省位置,即 Backup Server 计算机的主控台:

dump database pubs2 to "/dev/nrmt0"

with notify = client

示例 9 使用压缩级别 4 创建 pubs2 数据库的压缩转储,并保存为名为

dmp090100.dmp 的本地文件:

dump database pubs2 to "compress::4::/opt/bin/Sybase/dumps/dmp090100.dmp"

此外,可以使用 compression = compression_level 语法以压缩级别 100 创建

pubs2 数据库的压缩转储,并保存为名为 dmp090100.dmp 的本地文件:

dump database pubs2 to "/opt/bin/Sybase/dumps/dmp090100.dmp" with compression = 100

示例 10 pubs2 数据库转储到名为 “remotemachine”的远程计算机, 并使用压缩级别 4

dump database pubs2 to "/Syb_backup/mydb.db" at remotemachine with compression ="4"

示例 11 pubs2 数据库转储到 TSM 备份对象 “obj1.1”:

dump database pubs2 to "syb_tsm::obj1.1"

示例 12 使用多个分条将 pubs2 数据库转储到 TSM 备份对象 “obj1.2”:

dump database pubs2 to "syb_tsm::obj1.2" stripe on "syb_tsm::obj1.2"

stripe on "syb_tsm::obj1.2" stripe on "syb_tsm::obj1.2"


stripe on "syb_tsm::obj1.2"

示例 13 删除 sales_db1 中的最后一个片段,它是数据库结尾的数据库空 洞。

select * 指示数据库结尾有空洞:

select * from sysusages where dbid=db_id("sales_db1") go


dbid segmap lstart size vstart location unreservedpgs crdate vdevno

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

5

3

0

1536

1536

0

598

May 5 2011 2:59PM

3

5

4

1536

1536

1536

0

1530

May 5 2011 2:59PM

4

5

0

3072

1536

3072

4

1526

May 5 2011 2:59PM

-5

dump database sales_db1 to "/tmp/sales_db1.dmp" with shrink_log go


Backup Server session id is:42.Use this value when executing the 'sp_volchanged' system

stored procedure after fulfilling any volume change request from the Backup Server. Backup Server:4.41.1.1:Creating new disk file /tmp/sales_db1.dmp.

Backup Server:6.28.1.1:Dumpfile name 'sales_db1111250D8E6 ' section number 1 mounted on disk file '/tmp/sales_db1.dmp'

Backup Server:4.188.1.1:Database sales_db1:892 kilobytes (55%) DUMPED. Backup Server:4.188.1.1:Database sales_db1:934 kilobytes (100%) DUMPED. Backup Server:3.43.1.1:Dump phase number 1 completed.

Backup Server:3.43.1.1:Dump phase number 2 completed. Backup Server:3.43.1.1:Dump phase number 3 completed.

Backup Server:4.188.1.1:Database sales_db1:942 kilobytes (100%) DUMPED. Backup Server:3.42.1.1:DUMP is complete (database sales_db1).


运行 select * 确认是否成功删除了该片段:

select * from sysusages where dbid=db_id("sales_db1") go

dbid segmap lstart size vstart location unreservedpgs crdate vdevno

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

5

3

0

1536

1536

0

598 May 5 2011 2:59PM

3

5

4

1536

1536

1536

0

1530 May 5 2011 2:59PM

4


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

dump database 在三个阶段中执行。每个阶段完成后,都会有一条进 度消息通知您。转储操作完成后,该消息将反映执行期间所做的所 有更改,阶段 3 中进行的更改除外。

1-19 描述了用于备份数据库的命令和系统过程:


1-19: 用于备份数据库和日志的命令

image

目的 使用

对整个数据库进行例行转储,包括事务日志。 dump database

对事务日志进行例行转储,然后截断不活动的部分。如果 dump transaction dump database 同时运行,则不会截断事务日志的不活动 部分。

dump transaction

在数据库设备发生故障后转储事务日志。 dump transaction with no_truncate

截断日志而不进行备份,然后复制整个数据库。 dump transaction with truncate_only dump database

在常用方法因日志空间不足而失败后截断日志,然后复制整个数据 库。

dump transaction with no_log dump database

响应 Backup Server 卷更改消息。 sp_volchanged


限制

物理设备的最大文件路径/文件名大小为 127 个字符。

如果数据库有代理表,则这些代理表为数据库保存集的一部分。代 理表的内容数据不会保存;仅保存和恢复指针。

不能使用 with shrink_log 选项删除数据库结尾的空洞。

不能在同一磁带中混合 Sybase 转储和非 Sybase 数据 (如 UNIX 存 档)。

如果数据库具有跨数据库的参照完整性约束,则 sysreferences 系统 表存储外部数据库的名称 (而不是 ID 号)。如果您使用 load database 命令更改数据库名称或将其装载到其它服务器上,则 Adaptive Server 无法保证参照完整性。


image

警告!在转储数据库以用不同的名称装载它或将其转移到另一个 Adaptive Server 上之前,请使用 alter table 删除所有外部参照完整性 约束。

image

不能在用户定义的事务中使用 dump database

如果在 dump transaction 正在进行的数据库上发出 dump database 命 令,则 dump database 会休眠,直到事务转储完成。

使用 1/4 英寸盒式磁带时,每个磁带只能转储一个数据库或事务日 志。

不能转储具有脱机页的数据库。若要强制脱机页联机,请使用

sp_forceonline_db sp_forceonline_page


在针对跨平台转储和装载运行 dump database 之前,请将数据库转至 事务抑制状态:

a 执行 dbcc checkdb dbcc checkalloc 命令,检验数据库是否在顺 利运行。

b 为了防止在 dump database 过程中其它进程的打开事务进行并发 更新,请使用 sp_dboption 命令将数据库模式更改为单用户模式。

c 使用 sp_flushstats 将统计信息刷新到 systabstats

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

e 针对数据库运行 checkpoint 以刷新已更新的数据库。

f 运行 dump database

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

对远程 backupserver 执行 dump database load database操作不支持 跨平台进行。

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

如果对已分析的 XML 对象执行 dump database load database,则 在完成 load database 之后,必须重新分析该文本。

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

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

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

如果您无权从文本重新进行编译,则拥有该权限的人必须使用 dbcc upgrade_object 从文本重新进行编译才能升级对象。


image

注释 如果将 master 数据库中的 syslogins 系统表内的登录记录从 Solaris 迁移到 Linux,则可以执行 bcp -c 字符格式批量复制,Solaris 中的登录口令就将在 Linux 上兼容。对于所有其它组合和平台,由 于口令不兼容,因此必须重新创建登录记录。

image


安排转储

• Adaptive Server 数据库转储是动态的 – 可以在数据库活动时发生。 不过,它们可能会轻微地减慢系统,所以最好在数据库更新不频繁 时使用 dump database


定期且经常备份 master 数据库。除了定期备份,还要在每次发出

create databasealter database disk init 命令之后转储 master 数据库。

每次对 model 数据库进行更改后都要进行备份。

创建数据库后都要立即使用 dump database 复制整个数据库。在运行

dump database 前,不能在新数据库上运行 dump transaction

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


image

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

image

制定一份用于定期备份用户数据库及其事务日志的日程表。

使用阈值以自动进行备份过程。要利用 Adaptive Server 的最后机会 阈值,请创建日志段与数据段不在同一设备上的用户数据库。有关 阈值的详细信息,请参见 《系统管理指南》。

转储系统数据库

mastermodel sybsystemprocs 数据库的事务日志没有单独的段。 应使用 dump transaction with truncate_only 清除日志,然后使用 dump database 备份数据库。

一旦出现影响 master 数据库的故障,将需要 master 数据库的备份来 执行恢复过程。有关备份和恢复 master 数据库的分步指导,请参见

《系统管理指南》。

如果使用可移动介质进行备份,则整个 master 数据库必须容纳于单 个卷中,除非还有另外的 Adaptive Server 可响应卷更改消息。

指定转储设备

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

不能转储到空设备 (UNIX 上为 /dev/null)。

磁带和磁盘设备支持转储到多个分条。仅磁带设备支持在设备上放 置多个转储。

可将本地转储设备指定为:

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

绝对路径名

相对路径名

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


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

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

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

如果设备文件已经存在,Backup Server 会覆盖它;但不会截断它。例 如,假如将数据库转储到设备文件,且设备文件变为 10MB。如果从 此数据库到此设备的下一个转储较小,则设备文件仍然是 10MB

转储压缩数据

不能在一个平台上创建压缩表的转储并将该转储装载到另一个平台 上。

压缩数据直接转储到某个存档位置。

在包含任何形式的压缩或解压缩行的压缩表上执行的 create index 命 令在 load transaction 期间将会完全恢复。

确定磁带设备特性

如果发出了不带 init 限定符的 dump 命令,且 Backup Server 不能确定 此设备类型,则 dump 命令将失败。请参见 《系统管理指南》。

Backup Server

• Backup Server 必须与 Adaptive Server 在同一台计算机上运行。 Backup Server 必须在 master..sysservers 表中列出。此条目是在安装 或升级期间创建的;请勿将其删除。

如果备份设备位于另一台计算机上以通过网络进行转储,那么在该 远程计算机上还必须安装 Backup Server

转储文件

使用 init 选项转储数据库会覆盖磁带或磁盘上的任何现有文件。

如果执行两次或多次对一个磁带设备的转储,并且对这些转储使用 相同的文件名 (用 FILENAME 参数指定),则 Adaptive Server 将把 第二个转储附加到存档设备。您将无法恢复第二个转储,因为 Adaptive Server 将查找具有指定文件名的转储映像的第一个实例, 并恢复这个映像。 Adaptive Server 并不搜索后续的同名转储映像。


• Backup Server 将转储文件名发送到由 with notify 子句指定的位置。在 存放备份磁带之前,操作员应利用数据库名、文件名、日期和其它 相关信息为磁带制作标签。装载无标识标签的磁带时,可使用 with headeronly with listonly 选项确定其内容。

文件名和存档名

转储文件名称标识转储的数据库及转储时间。不过,在语法中,根 据转储到磁盘或 UNIX 磁带的不同, file_name 具有不同的意义:

file = file_name

对于到磁盘的转储,磁盘文件的路径名也是其文件名。

对于到 UNIX 磁带的转储,路径名并非文件名。文件交换的 ANSI 标准格式在 HDR1 标签中包含有文件名字段。对于遵循 ANSI 规范 的磁带,标签中的这个字段标识的是文件名。 ANSI 规范仅适用于 磁带的标签,不适用于磁盘文件。

这就造成了两个问题:

• UNIX 不遵循磁带文件名的 ANSI 约定。 UNIX 认为磁带的数据 是不带标签的。虽然数据可以分成多个文件,但这些文件没有 名称。

Backup Server 中,ANSI 磁带标签用于存储关于存档的信息, 否定 ANSI 意义。因此,磁盘文件也有 ANSI 标签,因为那里存 储了档案名。

filename 的含义随所执行的转储的类型而变。例如,在以下语法中:

dump database database_name to 'filename' with file='filename'

第一个 filename 指输入的显示此文件的路径名。

第二个 filename 实际上是档案名,也就是存储在档案的 HDR1 标签中的名称,用户可以用 dump load 命令的 file= filename 参 数指定。

指定了档案名时,服务器在装载数据库时使用此名称查找选择的档 案。

如果没有指定档案名,服务器会装载它所遇到的第一个档案。

在上述两种情况下,file=' archivename ' 确定了存储在 HDR1 标签中的 名称,后续 load 将使用此名称验证其正在查找的数据是正确的。

如果不指定档案名,dump 会创建一个名称,而 load 则使用它遇到的 第一个名称。


to 'filename' 子句中的 filename 的意义根据您执行磁盘转储还是磁带 转储而不同:

如果是转储到磁带, 'filename' 是磁带设备的名称。

如果是转储到磁盘,它就是磁盘文件的名称。

如果进行的是磁盘转储,而 ‘filename’并非完整路径,则会在文 件名前加上服务器的当前工作目录。

如果正转储到磁盘而没有指定文件名,则 Backup Server 会通过并置 以下内容创建缺省的文件名:

数据库名的最后七个字符

两位数的年份数值

三位数表示的一年中的一天 (1 366)

创建转储文件时的十六进制编码时间

例如,文件 cations980590E100 包含 1998 年第 59 天生成的

publications 数据库的一个副本:

1-4:对于转储到磁带的数据库的文件命名约定


image

image

cations 98 059 0E100

image

数据库名的

年份中的 一年中的午夜后

最后 7 个字符

最后 天数 两位数

的秒数


卷名

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


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


image

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

image


更改转储卷

UNIX 系统)在磁带容量满后请求更改卷。安装另一个卷后,操 作员通过在可以与 Backup Server 通信的任何 Adaptive Server 上执行 sp_volchanged 通知 Backup Server

如果 Backup Server 检测到当前装入的卷有问题,它会通过向客户机 或其操作员主控台发送消息来请求更改卷。操作员可用 sp_volchanged 系统过程响应这些消息。

附加到或覆盖卷

缺省情况下 (noinit)Backup Server 将在同一磁带卷上写入连续转 储,这可以有效利用高容量的磁带介质。数据将被添加到最后一个 磁带结束标记的后面。新的转储只能附加到多卷转储的最后一个卷 上。在写入磁带前, Backup Server 将检验第一个文件是否还处于有 效期内。如果磁带包含非 Sybase 数据,则 Backup Server 会予以拒 绝,以避免破坏具有潜在价值的信息。

使用 init 选项重新初始化卷。如果指定 init,则 Backup Server 将覆盖 现有的任何内容,即使磁带包含非 Sybase 数据、第一个文件还没有 过期,或者磁带有 ANSI 访问限制。

1-5 演示如何使用下列方法将三个数据库转储到单个卷

init 初始化磁带以存放第一个转储

noinit (缺省值)附加后续转储

unload 在最后一个转储之后回绕并卸载磁带


1-5:将多个数据库转储到同一卷上

dump database mydb to /dev/nrmt4

image

with init

dump database yourdb to /dev/nrmt4

dump database pubs2 to /dev/nrmt4

with unload


32 OS 转储到 64 OS

32 位版本的 Adaptive Server 进行的数据库转储与同一平台的 64 位版 本的 Adaptive Server 完全兼容,反之亦然。

转储其设备被镜像的数据库

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

如果用户在 dump database 正在进行时试图取消任何指定数据库设备 的镜像,则 Adaptive Server 会显示一条消息。执行 disk unmirror 命令 的用户可中止转储或将 disk unmirror 推迟到转储完成后执行。

性能注释

由于在 dataserver 中设计索引的目的是提供最佳搜索路径,因此索引行 的排序原则是快速访问表中的数据行。包含行标识符 (RID) 的索引行被 视为二进制,可用于快速访问用户表。

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

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

• APL 表上的非聚簇索引。

• DOL 表上的聚簇索引。


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

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

使用 sp_post_xpload。请参见 《参考手册:过程》中的 “系统过程”。

在大表上重新创建索引会比较耗时。利用 sp_post_xpload,只需一条命 令即可验证索引、删除无效索引以及重新创建删除的索引。

使用 sp_post_xpload 可能比逐个删除并重新创建索引更为耗时。对于大小 超过 10GB 的数据库, Sybase 建议您使用删除并重新创建索引的方法。

存档数据库的压缩转储

要对存档数据库使用压缩转储:

使用 dump database dump tran 命令的 with compression =

<compression level> 选项创建压缩转储。

创建内存池以便访问存档数据库。


image

注释 使用 “compress::”生成的转储无法装载到存档数据库中。因 此,本章中提到的任何压缩都是指使用 with compression = <compression level> 选项生成的转储。

对传统数据库使用此压缩选项进行转储不存在兼容性问题。

image


压缩转储的兼容性问题

利用 with compression = compression_level 选项生成的压缩转储的格式已更 改。 Backup Server 15.0 ESD #2 版和更高版本会生成不同于较早版本格 式的压缩转储。因此:

使用 Backup Server 15.0 ESD #2 版及更高版本创建的压缩转储只能 装载到使用 Backup Server 15.0 ESD #2 版或更高版本的 15.0 ESD #2 之前的安装中。

如果使用的是 15.0 ESD #2 之前的安装,且希望将您的转储用于存 档数据库,请使用 Backup Server 15.0 ESD #2 版或更高版本来创建 压缩数据库转储。


image

注释 可以将 15.0 ESD #2 Backup Server 用于转储和装载。

image


加密列和 dump database

dump load 用于处理加密列的密文,以确保加密列中的数据在磁盘上 仍保持加密状态。


dump load 与整个数据库有关。缺省密钥和在同一数据库中创建的密 钥将同与它们相关的数据一起转储和装载。

如果密钥与它们加密的列位于单独的数据库中, Sybase 建议:

当转储包含加密列的数据库时,还应转储创建密钥的数据库。如果 自上次转储以后添加了新的密钥,则必须执行此操作。

当转储包含加密密钥的数据库时,应转储包含用该密钥加密的列的 所有数据库。这样可保持加密的数据与可用密钥同步。

在装载包含加密密钥的数据库和包含加密列的数据库后,同时将两 个数据库联机。

由于加密列对密钥数据库具有元数据依赖性,因此如果要将密钥数据库 装载为具有其它名称的数据库,请执行下列步骤 (如果您的数据与密 钥存储在同一数据库中,则不需要执行下列步骤):

1 在转储包含加密列的数据库之前,使用 alter table 解密数据。

2 转储包含密钥和加密列的数据库。

3 装载数据库之后,通过 alter table 用新命名数据库中的密钥对数据重 新加密。

加密密钥和加密列之间的一致性问题类似于跨数据库参照完整性的一致性 问题。请参见 《系统管理指南》中的 “跨数据库约束和装载数据库”。

dump database 和对 Tivoli Storage Manager 的支持

有关您的站点支持 TSM 时创建备份的详细信息,请参见 Tivoli Storage Manager 的文档。

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

权限 dump database 的权限检查因您的细化权限设置而异。

image

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

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

sa_role

replication_role

oper_role


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


事件

审计选项

审计的命令或访问权限

extrainfo 中的信息

34

dump

dump database

角色 – 当前活动角色

关键字或选项 NULL

先前值 NULL

当前值 NULL

其它信息 NULL

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


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

命令 dump transaction load database load transaction.

系统过程 sp_addthresholdsp_addumpdevicesp_dropdevicesp_dropthresholdsp_helpdbsp_helpdevicesp_helpthresholdsp_hidetextsp_logdevicesp_spaceusedsp_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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------