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

RESTORE DATABASE 语句

从一个或多个存档设备恢复 SAP IQ 数据库备份。

快速链接:

转至参数

转至示例

转至用法

转至标准

转至权限

语法

语法 1

RESTORE DATABASE ''

[MULTIPLEX]'' [ FROM '' ]…

… [ CATALOG ONLY ]

… [ KEY  ]

… [ [ RENAME TO '']…

    | VERIFY [ COMPATIBLE ] ]

语法 2

RESTORE DATABASE '' 

[ restore-option …]

FROM '' <…>

restore-option

[MULTIPLEX]

READONLY  [, … ]

KEY

RENAME TO  …

语法 3

RESTORE DATABASE '' 

[ FROM '' <…>

USING LOG PATH '', […] ]

RECOVER UNTIL [ TIMESTAMP | OFFSET ]

ON TIMELINE ''

[ OVERWRITE EXISTING CLEAR LOG ]

KEY

[ VERIFY COMPATIBLE ]

参数

  • db_file要恢复的数据库的相对路径或绝对路径。可以是初始位置,也可以是目录存储文件的新位置。

  • MULTIPLEX指定恢复不提供共享 Multiplex。主 DAS dbfile 和镜像 DAS dbfile 的所有辅助节点必须在使用 MULTIPLEX 关键字发出单独的 RESTORE 命令之前启动。具有主 DAS dbfile 的所有辅助节点搜索 .

  • key_spec用引号括起来的包含大小写字符、数字、字母和特殊字符的字符串。它对于防止该键受到命令 shell 的解释或更改非常有必要。

  • FROM指定要从其恢复的 的名称,用单引号分隔。如果要使用多个档案设备,请使用单独的 FROM 子句指定它们。不允许使用以逗号分隔的列表。档案设备必须不同。FROM 子句的数量决定与输入设备有关的并行 SAP IQ 尝试的数量。 备份和恢复 API DLL 实现可用于指定在打开档案设备时要传递给 DLL 的参数。对于第三方实现, 字符串具有以下格式:'::' 例如: 'spsc::workorder=12;volname=ASD002' 可以长达 1023 个字节。 部分的长度必须为 1 到 30 个字节且只能包含字母数字和下划线字符。字符串的 部分将传递给第三方实现,而不检查其内容。 只有某些第三方产品才可用 SAP IQ 通过使用此语法进行认证。在使用任何第三方产品备份 SAP IQ 数据库之前,请确保该产品已通过认证。对于备份或恢复 API 的 SAP IQ 实现,无需指定磁带设备名或文件名以外的信息。不过,如果您使用的是磁盘设备,则必须在执行恢复时指定与执行备份时给定的数量相同的档案设备;否则,您用于执行恢复的设备的数量会与用于执行备份的设备的数量不同。指定类似 UNIX 操作系统的非回绕磁带设备的 SAP IQ API DLL 存档设备的特定示例如下:'/dev/rmt/0n'

  • USING LOG PATH 目录指示服务器搜索时间点恢复日志的 Multiple 路径: USING LOG PATH ', , ...' 使用逗号作为目录名称的分隔符。不需要指定日志名称。如果任何需要的文件丢失,则服务器报告错误。在 Multiplex 服务器上,请使用协调器节点中的当前事务日志。请勿包括辅助节点中的事务日志。包括辅助节点中的事务日志会导致时间点恢复失败,并会返回缺少用于时间点恢复的文件错误。

  • RECOVER UNTIL ...将数据从恢复日志中一直恢复到通过时间戳或事务日志偏移量指定的日期和时间:RECOVER UNTIL [ TIMESTAMP | OFFSET <log-offset> ]  的数据类型是 TIMESTAMP WITH TIMEZONE。 是表示事务日志偏移量的 UNSIGNED BIGINT。 始终指定晚于恢复命令 FROM 子句中指定的数据备份的备份时间的时间戳。这样可确保数据库包括恢复日志中所有的已提交事务。如果指定时间点早于备份数据库中的最后一个检查点,服务器将返回错误。限制在启用时间点恢复后创建的 dbspace 可能只记录在时间点恢复日志中。在这种情况下,您将无法在 RESTORE DATABASE RECOVER UNTIL 操作期间重命名该 dbspace。如果 RESTORE DATABASE 在时间点恢复期间无法找到事务日志、RLV 日志和时间点恢复日志,恢复操作将失败。当数据库恢复到新位置且新环境中没有可用日志时,可能出现这种情况。此时,请使用 CLEAR LOG 子句忽略想要恢复的数据库的当前日志范围,并取消通常在恢复操作期间进行的自动日志备份。

  • 在启用时间点恢复后创建的 dbspace 可能只记录在时间点恢复日志中。在这种情况下,您将无法在 RESTORE DATABASE RECOVER UNTIL 操作期间重命名该 dbspace

  • 如果 RESTORE DATABASE 在时间点恢复期间无法找到事务日志、RLV 日志和时间点恢复日志,恢复操作将失败。当数据库恢复到新位置且新环境中没有可用日志时,可能出现这种情况。此时,请使用 CLEAR LOG 子句忽略想要恢复的数据库的当前日志范围,并取消通常在恢复操作期间进行的自动日志备份。

  • ON TIMELINE恢复数据库到替代时间线:ON TIMELINE '' ON TIMELINE 子句需要用于标识替代时间线的时间线 GUID。不含此子句的时间点恢复操作将恢复到当前时间线。

  • OVERWRITE EXISTING时间点恢复操作期间,覆盖现有 dbfile 和事务日志。OVERWRITE EXISTING 时间点恢复操作通常会将 dbfile 恢复到不同于当前 dbspace 的位置。使用 OVERWRITE EXISTING 子句将数据库恢复到已存在数据库的位置,并覆盖具有相同名称的所有现有 dbfile:OVERWRITE EXISTING 子句可作为恢复选项显示在 RESTORE DATABASE 语句的任何位置。

  • CLEAR LOG恢复期间,忽略数据库当前日志区域:时间点恢复操作期间,取消自动日志备份:CLEAR LOG如果 RESTORE DATABASE 在时间点恢复期间无法找到事务日志、RLV 日志和时间点恢复日志,恢复操作将失败。当数据库恢复到新位置且新环境中没有可用日志时,可能出现这种情况。此时,请使用 CLEAR LOG 子句忽略想要恢复的数据库的当前日志范围,并取消通常在恢复操作期间进行的自动日志备份。时间点恢复期间,恢复可自动备份现有事务日志和 RLV 日志。在现有数据库目录中,每个时间点恢复需查找现有事务日志、RLV 日志和时间点日志。如果恢复操作未能找到这些日志,则将返回错误。如果想恢复到新环境却没有现有日志备份,那么提供带有 CLEAR LOG 子句的 RESTORE 命令来使 SAP IQ 停止在数据库目录中查找现有日志文件。

  • CATALOG ONLY仅从档案介质恢复备份标头记录。不能使用 MULTIPLEX 关键字。

  • RENAMERENAME—将一个或多个 SAP IQ 数据库文件恢复到一个新位置。指定每个您要移动的 <dbspace-name>(按其在 SYSFILE 表中的显示方式)。指定 dbspace-path> 作为新的原始分区,或者为该 dbspace 指定新的完整或相对路径名称。 如果创建数据库文件时使用的是相对路径,则缺省情况下这些文件将恢复至相对于目录存储文件 (SYSTEM dbspace) 的位置,并且不需要使用重命名子句。如果创建数据库文件时使用的是绝对路径且没有为文件指定重命名子句,则将其恢复至其初始位置。 RENAME 子句中的相对路径名的工作方式与创建数据库或 dbspace 时相同:主 IQ 存储 dbspace、临时存储 dbspace 和“消息日志”将恢复至 db_file(目录存储)位置的相对位置;用户创建的 IQ 存储 dbspace 将恢复至包含主 IQ dbspace 的目录的相对目录。 请勿使用 RENAME 子句移动保存目录存储的 SYSTEM dbspace。若要移动目录存储及任何相对于它创建且未在 RENAME 子句中指定的文件,请在 参数中指定新位置。 如果 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'

  • VERIFY [ COMPATIBLE ]指令服务器检验指定的 SAP IQ 数据库备份存档以进行完整、增量、基于完整的增量或虚拟备份。备份必须是 SAP IQ 12.6 版或更高版本。验证过程会检查指定的档案有无恢复过程检查的相同错误,但不执行写入操作。所有状态消息和检测到的错误都会被写入服务器日志文件中。不能将 RENAME 子句与 VERIFY 子句一起使用;否则将报告错误。备份验证过程可以在数据库所在主机之外的主机上运行。要运行 RESTORE DATABASE VERIFY,您必须具有 BACKUP DATABASE 系统特权。 如果在使用 VERIFY 时指定了 COMPATIBLE 子句,则会对现有的数据库文件进行增量档案的兼容性检查。如果数据库文件不存在于调用 RESTORE DATABASE…VERIFY COMPATIBLE 的系统上,就会返回错误。如果在验证完整备份时指定了 COMPATIBLE,此关键字就会被忽略;在恢复完整备份时不需要进行兼容性检查。 必须具有数据库和日志文件(.db 和 .log),才能验证完整备份中只读 dbspace 的备份。如果没有这些文件,请在不使用 READONLY <dbspace> 子句的情况下运行 RESTORE DATABASE…VERIFY 来验证整个备份。 注意备份存档的检验不同于数据库一致性检查程序 (DBCC) 验证模式 (sp_iqcheckdb 'verify...')。RESTORE DATABASE VERIFY 验证备份存档的一致性,以确保它可以恢复,而 DBCC 验证数据库数据的一致性。 在开始备份之前先运行 sp_iqcheckdb 'verify...'。如果备份了不一致的数据库,然后从同一备份档案进行恢复,则数据会继续处于不一致状态,即使 RESTORE DATABASE VERIFY 报告验证成功也是如此。

    示例

  • 示例 1 UNIX 示例将从 Sun Solaris 平台上的磁带设备 /dev/rmt/0 和 /dev/rmt/2 恢复 iqdemo 数据库。在 Solaris 上,使用 REASTORE 从磁带恢复必须指定回绕设备的使用。因此,不要在设备名后面包括字母 “n”(n 用于指定 no rewind on close)。若要随 RESTORE DATABASE 命令指定此功能,请使用适用于您的 UNIX 平台的命名约定。(Windows 不支持此功能。)RESTORE DATABASE 'iqdemo'FROM '/dev/rmt/0'FROM '/dev/rmt/2'

  • 示例 2 恢复名为 marvin 的加密数据库,该数据库用密钥 <is!seCret> 进行了加密: RESTORE DATABASE 'marvin' FROM 'marvin_bkup_file1'FROM 'marvin_bkup_file2'FROM 'marvin_bkup_file3' KEY 'is!seCret'

  • 示例 3 以下示例显示了 BACKUP DATABASE 语句和两种可能的 RESTORE DATABASE 语句的语法。(此示例使用 iqdemo 数据库中的对象进行说明。请注意,iqdemo 包括一个名为 iq_main 的用户 dbspace 示例,您的数据库中可能不包括该示例。) 给定以下 BACKUP DATABASE 语句: BACKUP DATABASE READONLY DBSPACES iq_mainTO '/system1/IQ16/demo/backup/iqmain'可以使用下面任意一种 iq_main 语句来恢复 dbspace RESTORE DATABASE: RESTORE DATABASE 'iqdemo' READONLY DBSPACES iq_mainFROM '/system1/IQ16/demo/backup/iqmain'或者RESTORE DATABASE 'iqdemo'FROM '/system1/IQ16/demo/backup/iqmain'选择性备份会备份所有 READWRITE dbspace 或特定只读 dbspace 或 dbfile。选择性备份是完整备份或增量备份的子类型。注意: 可以执行 READONLY 选择性备份,并从该备份中恢复所有对象(如以上第二个示例中所示)。也可以执行包括全部内容的备份,并选择性地恢复只读文件和 dbspace。可以执行多个只读文件和 dbspace 的 READONLY 选择性备份,并选择性地恢复只读文件和 dbspace 的子集。请参见权限。 只有只读文件自备份以来尚未发生更改的情况下,才可以恢复只读备份。一旦再次将 dbspace 设置为读写模式,只读备份将无效,除非将数据库的整个读写部分恢复为只读 dbspace 原为只读模式的点上。决定要使用的备份子类型(选择性或非选择性),然后一致地使用该类型。如果必须要从非选择性备份转换为选择性备份(反之亦然),请始终在转换为新的子类型之前执行一次非选择性完整备份以确保涵盖了所有变更。

  • 可以执行 READONLY 选择性备份,并从该备份中恢复所有对象(如以上第二个示例中所示)。

  • 也可以执行包括全部内容的备份,并选择性地恢复只读文件和 dbspace

  • 可以执行多个只读文件和 dbspace 的 READONLY 选择性备份,并选择性地恢复只读文件和 dbspace 的子集。请参见权限。

  • 只有只读文件自备份以来尚未发生更改的情况下,才可以恢复只读备份。一旦再次将 dbspace 设置为读写模式,只读备份将无效,除非将数据库的整个读写部分恢复为只读 dbspace 原为只读模式的点上。

  • 决定要使用的备份子类型(选择性或非选择性),然后一致地使用该类型。如果必须要从非选择性备份转换为选择性备份(反之亦然),请始终在转换为新的子类型之前执行一次非选择性完整备份以确保涵盖了所有变更。

  • 示例 4 在不执行任何写入操作的情况下使用 VERIFY 子句来验证数据库存档的语法: RESTORE DATABASE FROM '/sys1/dump/dmp1'FROM '/sys1/dump/dmp2'VERIFY在使用验证时,请指定不同的数据库名以避免出现数据库名不唯一 错误。例如,如果原始数据库为 iqdemo.db,请改用 iq_demo_new.db: RESTORE DATABASE iqdemo_new.db FROM iqdemo.bkp VERIFY

  • 示例 5仅使用时间点恢复日志的时间点恢复:// enable Point in time recoverySET OPTION PUBLIC.IQ_POINT_IN_TIME_RECOVERY_LOGGING = 'ON'ALTER DBSPACE IQ_SYSTEM_LOG RENAME '/demo/pitrLog/PITRLOG'BACKUP DATABASE FULL to '/demo/dataBackup/FULL1'// perform some DDL/DML operations CREATE TABLE T1 ( ID INT )INSERT INTO T1 VALUES (1)// record timestamp TS1 / OFFSET OFS1TS1: select getdate()OFS1: select db_property('LastCommitRedoPos')// perform DDL/ DML operationsCREATE TABLE T2 ( ID INT )INSERT INTO T2 VALUES (1)// record timestamp TS2 / OFFSET OFS2TS2: select getdate()OFS2: select db_property('LastCommitRedoPos')// restore the database to point in time TS1 / OFS1// shut down the database// start a utility serverRESTORE DATABASE 'iqdemo' FROM '/demo/dataBackup/FULL1' RECOVER UNTIL TIMESTAMP '' USING LOG PATH '/demo/pitrLog/' , OVERWRITE EXISTING// orRESTORE DATABASE 'iqdemo' FROM '/demo/dataBackup/FULL1' RECOVER UNTIL OFFSET USING LOG PATH '/demo/pitrLog/' OVERWRITE EXISTING

  • 示例 6使用时间点恢复日志和时间点恢复日志备份档案的时间点恢复:// enable point-in-time recoverySET OPTION PUBLIC.IQ_POINT_IN_TIME_RECOVERY_LOGGING = 'ONALTER DBSPACE IQ_SYSTEM_LOG RENAME '/demo/pitrLog/PITRLOG'BACKUP DATABASE FULL to '/demo/dataBackup/FULL1'// perform DDL / DML operationsCREATE TABLE T1 ( ID INT )INSERT INTO T1 VALUES (1)// record timestamp TS1 / OFFSET OFS1TS1: select getdate()OFS1: select db_property('LastCommitRedoPos')// perform DDL / DML operationsCREATE TABLE T2 ( ID INT )INSERT INTO T2 VALUES (1)// record timestamp TS2 / OFFSET OFS2TS2: select getdate()OFS2: select db_property('LastCommitRedoPos')// perform a PITR log backupBACKUP DATABASE POINT IN TIME RECOVERY LOGS ONLY TO '/demo/pitrLogBackup/PITR1'// perform DDL/ DML operationsCREATE TABLE T3 ( ID INT )INSERT INTO T3 VALUES (1)// restore the database to point-in-time TS2 OR OFS2// shutdown the database// start a utility serverRESTORE DATABASE 'iqdemo' FROM '/demo/dataBackup/FULL1' RECOVER UNTIL TIMESTAMP '' USING LOG PATH '/demo/pitrLogBackup/', '/demo/pitrLog/' OVERWRITE EXISTING// orRESTORE DATABASE 'iqdemo' FROM '/demo/dataBackup/FULL1' RECOVER UNTIL OFFSET USING LOG PATH '/demo/pitrLogBackup/', '/demo/pitrLog/' OVERWRITE EXISTING

  • 示例 7通过增量备份对已启用 RLV 的数据库进行的时间点恢复:// perform a full database backupBACKUP DATABASE FULL TO '/demo/dataBackup/FULL1'// perform DDL / DML operationsCREATE TABLE T0 ( ID INT )INSERT INTO T0 VALUES (1)RECORD TIME STAMP TS0 / OFFSET OFS0// enable point-in-time recovery using an incremental backupSET OPTION PUBLIC.IQ_POINT_IN_TIME_RECOVERY_LOGGING = 'ONALTER DBSPACE IQ_SYSTEM_LOG RENAME '/demo/pitrLog/PITRLOG'BACKUP DATABASE INCREMENTAL to '/demo/dataBackup/INCR1'// perform DDL / DML operationsCREATE TABLE T1 ( ID INT )INSERT INTO T1 VALUES (1)// record timestamp TS1 / OFFSET OFS1TS1: select getdate()OFS1: select db_property('LastCommitRedoPos')// perform DDL / DML operationsCREATE TABLE T2 ( ID INT )INSERT INTO T2 VALUES (1)// record timestamp TS2 / OFFSET OFS2//perform a PITR log backupBACKUP DATABASE POINT IN TIME RECOVERY LOGS ONLY TO '/demo/pitrLogBackup/PITR1'// note the RLV DBspace files and their location select * from sp_iqfile() where segmentType = 'RLV'"// restore the database to point-in-time TS1 OR OFS1// shutdown the database// Do a physical file backup of all files in the RLV Dbspace.// start a utility server// Perform a restore of database from backup FULL1RESTORE DATABASE 'iqdemo' FROM '/demo/dataBackup/FULL1' OVERWRITE EXISTING// restore the RLV Dbspace files from the backup taken above to its original location// perform a point-in-time recovery to time TS1 using incremental backup INCR1 RESTORE DATABASE 'iqdemo' FROM '/demo/dataBackup/INCR1' RECOVER UNTIL TIMESTAMP '' USING LOG PATH '/demo/pitrLogBackup/PITR1/' OVERWRITE EXISTING CLEAR LOG

  • 示例 8Multiplex 上的时间点恢复: // enable point-in-time recoverySET OPTION PUBLIC.IQ_POINT_IN_TIME_RECOVERY_LOGGING = 'ONALTER DBSPACE IQ_SYSTEM_LOG RENAME '/demo/pitrLog/PITRLOG'// shut down all servers// restart coordinator// connect to coordinator and take a full backupBACKUP DATABASE FULL to '/demo/dataBackup/FULL1'// synchronize all secondary nodes & then start them// perform DDL / DML operations in coordinator // connect to coordinatorCREATE TABLE T1 ( ID INT );INSERT INTO T1 VALUES (1);COMMIT;// record timestamp TS1 / OFFSET OFS1;TS1: select getdate()OFS1: select db_property('LastCommitRedoPos')// perform DDL / DML operations on writers// connect to Writer 2CREATE TABLE T2 ( ID INT );INSERT INTO T2 VALUES (1);COMMIT;// record timestamp TS2 / OFFSET OFS2;TS2: select getdate()OFS2: select db_property('LastCommitRedoPos')// connect to writer3INSERT INTO T1 VALUES(2);INSERT INTO T2 VALUES(2);COMMIT;// record timestamp TS3 / OFFSET OFS3;TS3: select getdate()OFS3: select db_property('LastCommitRedoPos')// perform a PITR log backupBACKUP DATABASE POINT IN TIME RECOVERY LOGS ONLY TO '/demo/pitrLogBackup/PITR1'// perform DDL/ DML operations// Connect to Writer3CREATE TABLE T3 ( ID INT );INSERT INTO T3 VALUES (1);COMMIT;// record timestamp ts4 / offset ofs4;TS4: select getdate()OFS4: select db_property('LastCommitRedoPos')// restore the database to point-in-time TS3 OR OFS3// shut down the database// start a utility server and perform point-in-time // recovery for the coordinator nodeRESTORE DATABASE 'iqdemo' FROM '/demo/dataBackup/FULL1' RECOVER UNTIL TIMESTAMP '' USING LOG PATH '/demo/pitrLogBackup/', '/demo/pitrLog/' OVERWRITE EXISTING// orRESTORE DATABASE 'iqdemo' FROM '/demo/dataBackup/FULL1' RECOVER UNTIL OFFSET USING LOG PATH '/demo/pitrLogBackup/', '/demo/pitrLog/' OVERWRITE EXISTING

  • 示例 9在 Multiplex 故障转移后重新启用时间点恢复日志记录。此场景中,在故障切换后写入程序 1 会成为协调器:// enable point-in-time recoverySET OPTION PUBLIC.IQ_POINT_IN_TIME_RECOVERY_LOGGING = 'ONALTER DBSPACE IQ_SYSTEM_LOG RENAME '/demo/pitrLog/PITRLOG2'// Shut down all servers// Restart coordinatorBACKUP DATABASE FULL to '/demo/dataBackup/FULL1'// Synchronize then start all secondary nodes

    用法

    在 Oracle Solaris 平台上,RESTORE DATABASE 命令需要独占访问。在 Solaris 上,需要具有数据库 SERVER OPERATOR 系统特权的用户。通过将 -gd 开关设置为 DBA 可以获取此独占访问权,这是启动服务器引擎时的缺省设置。

    在启动数据库之前发出 RESTORE DATABASE 命令(必须连接到 utility_db 数据库)。指定最近一次恢复备份的 RESTORE DATABASE CHECKPOINT。现在,可以指定 START DATABASE 以允许其他用户访问恢复后的数据库。

    包括所有子句的完整 RESTORE DATABASE 命令的最大大小是 32 KB。

    当恢复至原始设备时,请确保设备的容量足以容纳您要恢复的 dbspace。如果原始设备大小不足以恢复 dbspace,SAP IQRESTORE DATABASE 会检查原始设备的大小并返回错误。

    BACKUP DATABASE 允许指定完整备份或增量备份。有两种增量备份。INCREMENTAL 仅备份那些自上次执行任意类型(增量或完全)的备份之后已发生更改并已提交的块。INCREMENTAL SINCE FULL 备份自上次完全备份后已发生更改的所有块。如果在执行完全备份恢复后执行一次或多次增量备份(任一类型),则在连续的 RESTORE DATABASE 命令之间不允许对数据库进行任何修改。此规则防止从需要进行崩溃恢复的数据库或已进行修改的数据库的增量备份执行恢复。您仍可以使用从完全备份恢复,以覆盖此类数据库。在尚未完成增量备份的整个序列之前,应避免启用数据库。

    在开始完全恢复之前,您必须删除以下两个文件:目录存储文件(缺省名为 dbname.db)和事务日志文件(缺省名为 dbname.log)。

    如果对增量备份进行恢复,则 RESTORE DATABASE 可以确保以恰当的顺序访问备份介质集。此顺序为:首先恢复最后的完全备份磁带集,接着是第一个增量备份磁带集,然后是更近一些的磁带集,以此类推,最后是最近的增量备份磁带集。如果具有 SERVER OPERATOR 系统特权的用户生成了 INCREMENTAL SINCE FULL 备份,则只需要完全备份磁带集和最近的 INCREMENTAL SINCE FULL 备份磁带集;不过,如果自执行 INCREMENTAL SINCE FULL 后又执行了 INCREMENTAL 备份,则还必须应用此备份。

    SAP IQ 确保恢复顺序是正确的,否则它会显示错误。在恢复期间发生任何其它错误均会导致将数据库标记为损坏并将使数据库不可用。若要清理损坏的数据库,请从完全备份执行恢复,然后再恢复任一附加增量备份。由于很可能是这些备份之一损坏,因此您可能需要忽略较晚的备份集而使用较早的备份集。

    要从档案备份恢复只读文件或 dbspace,当发出 RESTORE DATABASE 语句时,数据库可以正在运行,管理员可以连接到数据库。如果只读文件路径名与数据库系统表信息匹配,则无需与备份中的名称相匹配。

    数据库必须未处于运行状态才能恢复 READWRITE FILES ONLY 或所有文件备份的 FULL、INCREMENTAL SINCE FULL 或 INCREMENTAL 恢复。要恢复只读文件的备份,数据库可以正在运行,也可以未在运行。当恢复只读 dbspace 中的特定文件时,该 dbspace 必须处于脱机状态。当恢复读写 dbspace 中的只读文件时,该 dbspace 可处于联机或脱机状态。恢复将关闭只读文件,恢复文件,并在恢复结束时重新打开这些文件。

    可使用选择性恢复来恢复只读 dbspace,条件是该 dbspace 仍处于相同的只读状态。

    其它 RESTORE DATABASE 问题:

  • RESTORE DATABASE 至磁盘时,不支持将原始设备用作档案设备。

  • 在使用磁带之前,SAP IQ 不回绕磁带;当回绕磁带设备时,只是在使用磁带之后回绕磁带。必须在启动恢复之前将每个磁带放在 SAP IQ 数据的开始处。

  • 在执行备份和恢复操作过程中,如果 SAP IQ 无法打开存档设备(例如,当它需要装载介质时)并且 ATTENDED 选项为 ON,则会等待十秒钟,以让您将下一磁带放入驱动器然后重试。它将无限期地继续这些尝试,直至成功或使用 Ctrl + C 终止操作。

  • 如果按 Ctrl + C,RESTORE DATABASE 将失败并将数据库返回至其在恢复开始前的状态。

  • 如果使用磁盘分条,则经过分条的磁盘将被视为单个设备。

  • 在恢复过程中,file_name dbspace 的 SYSFILE 系统表中的 SYSTEM 列不会更新。对于 SYSTEM dbspace,在创建数据库时,file_name 列始终显示其名称。SYSTEM dbspace 的文件名是数据库文件的名称。

    标准

  • SQL - ISO/ANSI SQL 语法的服务商扩充。

  • SAP 数据库产品 - 不受 SAP ASE 支持。

    权限

    执行此语句所需的权限是通过 -gu 服务器命令行选项设置的,如下所示:

  • 无 任何用户都不能发出此语句。

  • DBA 需要 SERVER OPERATOR 系统特权。

  • UTILITY_DB 只有能够连接到 utility_db 数据库的那些用户才能发出此语句。