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

说明 装载使用 dump database 创建的用户数据库的备份副本,包括其事务日 志,并实现通过数据库转储装载的存档数据库。

load database 操作的目标平台不必与执行 dump database 操作的源平台是 同一平台。可从大型平台向小型平台执行 dump database load database,或者从小型平台向大型平台执行。

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

语法 进行例行数据库装载:

load database database_name

from stripe_device

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

with verify only [= header | full] [stripe on stripe_device

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

[[stripe on stripe_device

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

[with {

listonly=load_sql | create_sql, density = density_value, blocksize = number_bytes, dumpvolume = volume_name, file = file_name,

[dismount | nodismount], [nounload | unload], passwd = password, until_time = datetime,

notify = {client | operator_console}, [override]}]]

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

load database 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, dumpvolume = volume_name, file = file_name,

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

notify = {client | operator_console}

}]]

实现存档数据库:

load database database_name

from dump_device

[ [stripe on stripe_device] ...]

[with [norecovery,][passwd=password]

生成一系列 load database SQL 语句,以将数据库恢复到指定时间点的状 态:

load database database_name

[from stripe_device]

with listonly=[load_sql | create_sql | volume]

如站点已获得 Tivoli Storage Manager 许可则装载数据库的副本:

load database 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}, [[verifyonly | verify] [= header | full]]

} ]

参数 database_name

用于接收备份副本的数据库的名称。可以是通过 for load 选项创建的 数据库,也可以是现有数据库。将转储的数据装载到现有的数据库将 覆盖所有现有数据。接收数据库必须至少与转储数据库一样大。可将 数据库名称指定为文字、局部变量或存储过程参数。

对于存档数据库, database_name 是要装载到其中的存档数据库的名称。

compress:

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


image

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

image


from dump_device

指定要从其中装载转储的磁盘数据库转储的名称。

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

at backup_server_name

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


listonly = [load_sql | create_sql | volume]

生成以下命令:

load_sql – 用于执行恢复到指定时间点操作的 load database load transaction SQL 命令序列。

create_sql – 显示 disk init/sp_cacheconfigdisk initcreate/alter database 序列和从备份历史记录中获取的最新转储映像的 create/alter database 序列。

在从分条设备装载数据库时,如果使用 with listonly=create_sql,则 该选项将显示转储映像的 disk init/sp_cacheconfigdisk initcreate alter database 序列。

volume – 显示转储映像的卷信息。

density = density_value

忽略。请参见 dump database 命令。

blocksize = number_bytes

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

dumpvolume = volume_name

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


image

注释 使用 load databa se 时,如果为 file= filename 选项提供了错误的文件 名,则 dumpvolume 选项不会提供错误消息。即使安装了错误的磁带, 备份服务器也会搜索整个磁带来查找该文件。

image


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

stripe on stripe_device

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

dismount | nodismount

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


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

with [norecovery,]

实现存档数据库时指示 load database 命令将不运行恢复,以及在完成

load database 命令后自动使数据库联机。

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

until_time = datetime

生成要装载 (到指定时间点)的装载序列。

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

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

在当前环境中, listonly 选项会替换 headeronly 选项。

image

image

警告!请不要对 1/4 英寸盒式磁带使用 load database with listonlywith verify[only][=header | full]

在数据页复制到存档中时对数据页执行最低限度的标头或结构行检 查,但是does not load the database。此时不会对 gamoam分配页索引文本日志页进行结构检查。唯一的其它检查在页码与页头匹 配的页上执行。


headeronly

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

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

数据库 ID

文件名

执行转储的日期

字符集

排序顺序

页数

下一个对象 ID

notify = {client | operator_console}

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

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

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

override

如果数据库包含用于对其它数据库中的列进行加密的加密密钥,则必 须使用 with override 才能成功装载该数据库。

syb_tsm::object_name

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

TSM 之间的通信。

-S source_server_name

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

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

示例 示例 1 从磁带设备重新装载数据库 pubs2


load database pubs2 from "/dev/nrmt0"

示例 2 使用 Backup Server REMOTE_BKP_SERVER 装载 pubs2 数据库。 该命令指定三个设备:

load database 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 从位于 /opt/bin/Sybase/dumps 上的名为 dmp090100.dmp 的压缩转 储文件装载 pubs2 数据库:

load database pubs2 from "compress::/opt/bin/Sybase/dumps/dmp090100.dmp"

示例 4 装载包含加密密钥的 key_db 数据库。如果 key_db 中的加密密钥用 于对其它数据库中的列进行加密,则必须使用 with override

load database key_db from "/tmp/key_db.dat" with override

示例 5 从 “syb_tsm::obj1.2”装载 testdb 数据库。有关相关联的 dump 命 令,请参见 352 页的 “ dump databas e”。

load database testdb from "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"


示例 6 相关联 dump 命令的源数据库 ( testdb ) load 命令的目标数据库

(pubs2) 不同时,从 TSM 备份对象 “obj1.1”装载 pubs2 数据库。

load database pubs2 from "syb_tsm::-D testdb::obj1.1"

示例 7 在五个名为 testdata1testdata2testdata3testlog4 testlog5 的 数据库设备上创建数据库 testdb

disk init name = 'testdata1', physname='/tmp/t_dat1',size='10M' go

disk init name='testdata2',physname='/tmp/t_dat2',size='10M' go

disk init name='testdata3',physname='/tmp/t_dat3',size='10M' go

disk init name='testlog4',physname='/tmp/t_log4',size='10M' go

disk init name='testlog5',physname='/tmp/t_log5',size='10M' go


create database testdb on testdata1='10M', testdata2='8M', testdata3='5M' log on testlog4='6M',testlog5 with override

go

alter database testdb on testdata3 = '5M' go

alter database testdb log on testlog4 = '2M' go

数据库 testdb 的转储是通过 dump database 获取的,此命令可在转储标头 中写入附加数据库设备信息。

dump database testdb to "test.dmp" go

将转储映像 test.dmp with headeronly 选项配合使用来装载数据库 testdb

会导致显示转储标头内容。这将导致显示有关数据库设备的其它信息:

1> load database testdb from "test.dmp" with headeronly 2> go

Backup Server:6.28.1.1:Dumpfile name 'test1025109FD6 ' section number 1 mounted on disk file '/punedbaccess3_dev3/kelkara/backupserver/test.dmp'

..

dbdevinfo:vdevno=1 devname=testdata1 path=/tmp/test1.dat db_size=10485760 device_size=20967424

dbdevinfo:vdevno=2 devname=testdata2 path=/tmp/test2.dat db_size=8388608 device_size=20967424

dbdevinfo:vdevno=3 devname=testdata3 path=/tmp/test3.dat db_size=10485760 device_size=20967424

dbdevinfo:vdevno=4 devname=testlog4 path=/tmp/test4.dat db_size=8388608 device_size=20967424

dbdevinfo:vdevno=5 devname=testlog5 path=/tmp/test5.dat db_size=6291456 device_size=20967424

..

数据库设备信息包括 vdevnodevnamepathdb_size device_sizedevice_size 是执行 disk init 命令时所分配的设备总大小。db_size 是数据库 testdb 使用的设备大小。

将转储图像 test.dmp create_sqlgenddlonly 选项配合使用以装载数据库 testdb 时将显示 create / alter database 命令的序列,可通过这些命令创建数 据/日志段布局与执行 dump 命令时的源数据库相同的目标数据库。可将 该输出发送至文件,以便生成用于创建目标数据库的 isql 命令脚本。

1> load database test from "test.dmp" with listonly=create_sql 2> go

DISK INIT

name = 'testdata1'

, physname = '/tmp/t_dat1'

, size = '10M'


go

DISK INIT

name = 'testdata2'

, physname = '/tmp/t_dat2'

, size = '10M'

go

DISK INIT

name = 'testdata3'

, physname = '/tmp/t_dat3'

, size = '10M'

go

DISK INIT

name = 'testlog4'

, physname = '/tmp/t_log4'

, size = '10M'

go

DISK INIT

name = 'testlog5'

, physname = '/tmp/t_log5'

, size = '10M'

go


CREATE DATABASE testdb ON testdata1 = '10M'

, testdata2 = '8M'

, testdata3 = '5M'

LOG ON testlog4 = '6M'

, testlog5 = '6M' go

ALTER DATABASE testdb ON testdata3 = '5M'

LOG ON testlog4 = '2M' go

示例 8 显示使用最新可用转储对特定数据库进行恢复所需的装载命令序 列。读取来自转储历史记录文件的转储记录,以准备装载序列:

1> load database testdb with listonly=load_sql 2> go

LOAD DATABASE testdb FROM '/dumpdir/testdb_DB_1.1.dmp' STRIPE ON '/dumpdir/testdb_DB_1.2.dmp'

STRIPE ON '/dumpdir/testdb_DB_1.3.dmp' go

LOAD TRANSACTION testdb FROM '/dumpdir/testdb_XACT_2.dmp' go

LOAD TRANSACTION testdb FROM '/dumpdir/testdb_XACT_3.dmp' go


LOAD TRANSACTION testdb FROM '/dumpdir/testdb_XACT_4.1.dmp' STRIPE ON '/dumpdir/testdb_XACT_4.2.dmp'

go


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

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

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

若要确保正确同步数据库,以使所有代理表对于您刚重装的主数据 库的内容都拥有正确的模式,您可能需要在承载代理数据库的服务 器上运行 alter database dbname for proxy_update 命令。

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

1-25: 用于从转储恢复数据库的命令

image

使用此命令 要进行此操作

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

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

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

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

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

load {database | transaction} with

{headeronly | listonly}

标识磁带上的转储文件。

sp_volchanged 响应 Backup Server 卷更改消息。


有关装载包含加密列的数据库的详细信息,请参见 dump database 部 分中的 368 页的 “加密列和 dump database

限制

仅限 CIS – 数据库的所有代理表都是数据库保存集的一部分。代理 表的内容数据不会保存;仅保存和恢复指针。

如果转储操作是在其它平台上进行的,则不能装载该转储。

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

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


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


image

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

image


load database 清除 master..sysattributes 中属于装载的数据库的可疑页 条目。

load database 覆盖数据库中所有现有数据。

装载数据库转储之后,可能需要一些时间来进行下面两种处理,然 后才能将数据库置于联机状态:

• Backup Server 清零源数据库的空间映射中的未分配页。该清零 操作作为物理装载的一部分嵌入,并且在装载数据库期间发生。

如果目标数据库大于源数据库,则在 Backup Server 完成装载后, 源数据库的空间映射上限以上的空间将由 Adaptive Server 清零。

恢复操作忽略在由 dump database 在其操作开始时写入的检查点 之前完成的事务。事务日志活动部分中的已完成事务由恢复操 作前滚。执行 online database 时,在装载序列中,对未完成事务 的回退发生在该序列结束时。

接收数据库必须等于或大于要装载的数据库。如果接收数据库太 小, Adaptive Server 会显示一条错误消息,给出所需大小。

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

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

一旦装载数据库,在执行 load database online database 命令时, Adaptive Server 在转储文件上自动标识规模类型并执行所有必要的 转换。

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

• APL (所有页锁定)表上的非聚簇索引

• DOL (仅数据锁定)表上的聚簇索引

• DOL 表上的非聚簇索引 执行跨平台转储和装载操作的过程中,可疑分区的处理方式如下:


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

对于具有使用 unichar univarchar 分区键在内部生成的分区条件 的循环分区,上面的所有全局聚簇索引均被标记为可疑索引。

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


image

注释 有关使用 sp_post_xpload 存储过程检查和重建用户表的索引 的信息,请参见 《参考手册:过程》中的 “系统过程”。

image

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

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

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

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

您无法在早于 11.9 Adaptive Servers 版本上跨平台执行 dump database load database

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

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

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

如果您没有从文本进行重新编译的权限,则具有该权限的人必须使 用 dbcc upgrade_object 命令从文本进行重新编译以升级这些对象。

装载时将用户锁在外面

不能使用装载中的数据库。 load database 将数据库的状态设置为 “offline”。数据库处于 “offline”状态时,无人可使用该数据库。 “offline”状态可防止用户在装载序列期间对数据库进行访问和更 改。

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

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

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

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


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

Adaptive Server 检查每个转储上的时间戳以确保按正确的顺序 将其装载到正确的数据库中。

c 发出 online database 进行升级并使数据库可供公共用户使用。

d 升级后立即转储新升级的数据库,以创建与当前版本的

Adaptive Server 一致的转储。

指定转储设备

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

可将本地设备指定为:

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

绝对路径名

相对路径名

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

通过网络装载时,请指定转储设备的绝对路径名。路径名在运行 Backup Server 的计算机上必须是有效的。如果名称包含除字母、数 字或下划线 (_) 以外的字符,则必须用引号将整个名称引起来。

转储设备上的所有权和权限问题可能影响 load 命令的使用。

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

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

恢复系统数据库

仅可以将 master 数据库的转储装载到 master 数据库或存档数据库中。

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

磁盘镜像

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

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

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

实现存档数据库

存档数据库是一个占位符,仅在装载数据库转储后才有用。装载过程实 际上不复制页,而是使用页映射来实现数据库。


image

注释 注意:在将数据库转储装载到存档数据库中时,不需要运行

Backup Server

image


使用 load database with norecovery

load database 命令的 with norecovery 选项允许将数据库转储装载到存档数 据库中而不恢复任何数据,从而可缩短装载所需的时间。许多数据库页 在恢复过程中会被修改或分配,从而导致它们存储在修改页面区域中。 因此,跳过恢复过程可使得在修改页面区域中占用最少的空间。 with norecovery 选项允许快速查看存档数据库。

如果使用 with norecovery,则会自动使数据库联机。

然而,若对需要恢复的数据库使用 load database with norecovery,则可能 会导致此数据库在事务上和物理上不一致。对物理上不一致的数据库上 运行 dbcc 检查会产生许多错误。

在使用 with norecovery 装载存档数据库后,您必须具有 sa_role 或数据库 所有者权限才能使用该数据库。

将逻辑设备与存档数据库一起使用

可以使用 sp_addumpdevice 来创建可从中装载存档数据库的逻辑设备:

sp_addumpdevice 'archive database', 'logical_name', 'physical_name'

执行此命令后,使用 logical_name 而不是 physical_name 作为 load database 命令的 dump_device stripe_device


image

注释 不能使用存档数据库逻辑设备作为装载到传统数据库或何时转储 传统数据库的设备说明。

image


load database 与存档数据库一起使用时的限制

load database 与存档数据库一起使用时,具有以下限制:

要求存档数据库的数据库转储是安装在本地计算机上的文件系统上 的磁盘转储。可以是本地存储或 NFS 存储。 load database ... at <remote server> 语法不受支持,磁带上的数据库转储也不受 支持。

不支持跨体系结构装载。数据库转储和 load database 命令必须在相 同的体系结构 (在字节顺序方面)上执行。

转储的数据库使用的页大小必须与承载存档数据库的服务器所使用 的页大小相同。

在其上进行转储的服务器的主版本必须早于或等于承载存档数据库 的服务器的主版本。

在其上进行数据库转储的服务器上的字符集和排序顺序必须与承载 存档数据库的服务器的字符集和排序顺序相同。


load database 和加密列

如果存储密钥的数据库与这些密钥加密的列所在的数据库不是同一数据 库,则必须从同时完成的转储中装载这两个数据库,以避免出现装载后 加密列的密钥缺失这一问题。

装载分别包含密钥和数据的数据库后,将这两个数据库同时联机。

不应该将密钥数据库装载为具有其它名称的数据库,因为加密列及其密 钥之间存在元数据依赖关系。如果必须更改密钥数据库的名称,请执行 下列操作:

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

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

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

装载压缩数据

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

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

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

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

image

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

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

sa_role ,或

replication_role

oper_role


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

image

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

43 load 装载数据库 角色 – 当前活动角色

关键字或选项 NULL

先前值 NULL

当前值 NULL

其它信息 NULL

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


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

alter database, dbcc, dump database, dump transaction, load transaction, online database.

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