您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

数据库恢复

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 中的 声明是指目录存储位置。 声明可以包括文件位置的完整路径或相对路径。

准则

  • 要恢复不一致的数据库或将该数据库移至新位置,请从一个 FULL 备份进行恢复。

  • 要将数据库恢复到对其执行任何增量备份之前的状态,或者最近的备份是一个 FULL 备份,请仅恢复 FULL 备份。

  • 要在 INCREMENTAL_SINCE_FULL 备份可用的情况下从数据库故障中恢复,请先恢复上一个 FULL 备份,然后再恢复 INCREMENTAL_SINCE_FULL 备份。

  • 如果不存在可用的 INCREMENTAL_SINCE_FULL 备份,但您在上一次 FULL 备份之后执行了一个或多个 INCREMENTAL 备份,请先恢复 FULL 备份,然后按顺序恢复 INCREMENTAL 备份。在生产系统中,不要在增量恢复时启动数据库。请按顺序恢复所有备份,不要在完全恢复系统之前启动 SAP IQ。

  • 如果 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 特权的用户连接到服务器并断开其它连接。

  1. 关闭数据库服务器。

  1. 启动可用于连接到实用程序数据库的服务器: start_iq -su -gd DBA -gm 1 -n my_server

  1. 启动 dbisql 并连接到实用程序数据库:dbisql -c "UID=DBA;PWD=;DBN=utility_db"

  1. dbisql 运行所有 RESTORE DATABASE 命令。在 Windows 上指定用于恢复的磁带设备的路径名称时,不需要像 BACKUP DATABASE 那样重复使用反斜杠。

  1. 关闭服务器和实用程序数据库。

  1. 正常启动数据库服务器。

    当 SAP IQ 完成恢复后,数据库将处于恢复备份后第一个隐式 CHECKPOINT 结束时所存在的状态。

    数据库校验

    为确保已按正确顺序恢复磁带组,请运行 sp_iqcheckdb。对于增量备份,请在恢复每个备份后运行 sp_iqcheckdb。但为了节省时间,可以选择仅在恢复最后一个增量备份后运行 sp_iqcheckdb。