Interactive SQL 支持两种 RESTORE DATABASE 语法变体。
语法 1:
RESTORE DATABASE ''
'' [ FROM '' ]…
… [ CATALOG ONLY ]
… [ KEY key_spec ]
… [ [ RENAME TO '']...
| VERIFY [ COMPATIBLE ] ]
语法 2:
RESTORE DATABASE ''
[ restore-option ...]
FROM '' ...
对于此备份语句:
BACKUP DATABASE READONLY DBSPACES iq_main
TO '/system1/IQ16/demo/backup/iqmain'
您可以使用这些 RESTORE DATABASE 命令之一来恢复 dbspace iq_main :
//syntax 1
RESTORE DATABASE 'iqdemo.db' READONLY DBSPACES iq_main
FROM '/system1/IQ16/demo/backup/iqmain'
或:
//syntax 2
RESTORE DATABASE 'iqdemo'
FROM '/system1/IQ16/demo/backup/iqmain'
语法 1 中的
dbspace 名称包含诸如 .iq 或 .iqtmp 之类的文件扩展名,则在 RESTORE DATABASE 命令的 RENAME 子句中指定名称时,必须将 dbspace 名称用双引号引起来。例如:RENAME temp1 TO '/work/temp1_res.iqtmp.iqtmp' DBSPACENAME "temp1_res.iqtmp" 或:RENAME "test_prod2.iq" TO '/test/test_prod2.iq'
根据计划恢复的备份类型,可能需要删除一些对象并验证其它对象。
恢复选项描述完全删除或移动目录存储 (.db)、IQ 存储文件 (.iq)、事务日志 (.log) 和用户定义的存储。 如果上述任何文件驻留在目标目录中,RESTORE DATABASE 都会生成一个异常,并且不会恢复您的文件。 增量目录存储必须驻留在目标目录中。如果该目录不存在,请运行一次完全恢复来恢复该目录,然后执行增量恢复。自上次恢复以来数据库必须未发生更改。目录存储和 IQ 存储必须与其在文件系统上所替换的文件相匹配。这些限制适用于所有类型的增量恢复。
在几乎所有情况下,当您从备份中恢复所有文件时,数据库必须处于未运行状态。此规则适用于 FULL、INCREMENTAL SINCE FULL 或 INCREMENTAL 备份,以及 READWRITE FILES ONLY 备份。
dbspace 中的特定文件时,该 dbspace 必须处于脱机状态。
dbspace 中的只读文件时,该 dbspace 可处于联机或脱机状态。RESTORE DATABASE 会关闭只读文件,然后恢复并重新打开这些文件。
dbspace,数据库可以处于运行状态。如果只读文件路径名与数据库系统表信息匹配,则无需与备份中的名称相匹配。
指定用于恢复数据库的磁盘文件数量(与用于创建备份的磁盘文件数量相同)。
将磁带定位到正确的起点,然后将其放入磁带设备中。跟踪每个备份磁带组(即,使用给定存档设备在指定备份中生成的磁带组)中的磁带顺序。
恢复包含目录存储备份的磁带组,且该磁带组必须位于第一个存档设备中。按顺序恢复所有磁带。不能交错恢复磁带组。先恢复一个组中的所有磁带,然后再恢复另一个组中的所有磁带。在第一组之后,各组的恢复顺序无关紧要,只要每组内部顺序正确即可。应使用与生成备份所用数量相同的驱动器恢复磁带,以免意外地交错恢复其它组中的磁带。
所有 RESTORE DATABASE 命令都从实用程序数据库 (utility_db) 中执行,并需要对数据库具有独占访问权。
使用 -gd DBA 和 -gm 1 参数来启动服务器。-gd DBA 参数将启动或停止正在运行的服务器上的数据库所需的特权设置为具有 SERVER OPERATOR 特权的用户。-gm 1 参数将并发连接数限制为单个连接外加一个超限 DBA 连接。这样便可允许具有 DROP CONNECTION 特权的用户连接到服务器并断开其它连接。
dbisql 并连接到实用程序数据库:dbisql -c "UID=DBA;PWD=dbisql 运行所有 RESTORE DATABASE 命令。在 Windows 上指定用于恢复的磁带设备的路径名称时,不需要像 BACKUP DATABASE 那样重复使用反斜杠。
当 SAP IQ 完成恢复后,数据库将处于恢复备份后第一个隐式 CHECKPOINT 结束时所存在的状态。
为确保已按正确顺序恢复磁带组,请运行 sp_iqcheckdb。对于增量备份,请在恢复每个备份后运行 sp_iqcheckdb。但为了节省时间,可以选择仅在恢复最后一个增量备份后运行 sp_iqcheckdb。