Oracle 备份
可对 Oracle 数据库执行的备份类型包括以下几种:
- 热备份
在 Oracle 数据库实例运行期间创建数据库备份为热备份。如果计划执行热备份,则必须在 ARCHIVELOG 模式下对数据库进行操作。
在对各表空间进行备份之前,输入 ALTER TABLESPACE > BEGIN BACKUP 命令;这会告知 Oracle 将执行热备份。如果未发出此命令,热备份会看似成功,但这对于恢复数据库将毫无价值。要完成热备份,需要为各表空间输入 ALTER TABLESPACE > END BACKUP 命令。
对数据的更改会记录并保留在回滚段中,直到没有任何未完成的事务再需要这些更改为止。进行热备份可以防止在发出 ALTER TABLESPACE … END BACKUP 命令前发布回滚段数据。因此,回滚段必须足够大,以容纳在热备份期间所作的更改。如果回滚段空间不足,则事务将失败,并提示 ORA-1555 错误:
ORA-1555: snapshot too old (rollback segment too small)
尽管出现此错误,也仍可成功完成热备份,但可能需要重新输入所作更改。通过在数据库低度活跃期间执行热备份或确保回滚段足够容纳备份期间所作的数据更改,可以避免此类错误。
执行热备份之前不必关闭 ArcSDE 服务器进程 (giomgr)。
有关热备份的详细信息,请参阅您的 Oracle 版本的 Oracle 备份和恢复指南。
- 冷备份
在 Oracle 数据库实例关闭时创建数据库备份为冷备份。管理冷备份比管理热备份更加简单,而且不易出错。如果在 NOARCHIVELOG 模式下运行数据库,则冷备份是唯一的选项。通过在 ARCHIVELOG 模式下运行数据库,可以使用冷备份将数据库恢复至最后提交的事务。
- 数据库导出
您可以使用 Oracle 的导出工具来增补一份完整备份。如果对完整备份之间的已知数据对象集进行更改,可将这些对象导出。但应该仅对未在导出期间进行更改的数据对象和所有密切关联的数据对象使用导出工具。例如,如果使用导出工具备份业务表,则还应该在同一个备份中包括相关的空间索引表、要素表及增量表。
注:ESRI 不推荐将导出工具用作唯一备份方法。
您还可以使用 Oracle 导出工具备份整个 Oracle 数据库,然后进行累积和增量备份。有关导出工具的详细信息,请参阅您的 Oracle 版本的 Oracle 工具手册。
应定期对 Oracle 数据库进行完整备份。一份完整的备份应包括 Oracle 数据库、控制文件、数据文件和恢复日志文件。如果开启了 ArcSDE 服务,则还应包括 giomgr.defs 文件、dbinit.sde 文件及 services.sde 文件。
此外,您还需要测试并确保所获的备份能够正确进行恢复并按预期方式工作,这一点很重要。
如果 Oracle 数据库在 ARCHIVELOG 模式下运转,那么除了定期进行完整备份之外,还可向备份策略添加若干变化。在 NOARCHIVELOG 模式下运转的数据库仅限于完整备份,可增加 Oracle 导出文件。
由于控制文件在确保数据库一致性方面尤为重要,因此至少应在每个备份中创建三份控制文件副本。由于控制文件相对较小,因此可以忽略执行上述操作的成本。
将数据文件从较早状态转变为较新状态时,恢复日志文件是必不可少的。要在任意两个时间点之间实现成功恢复,必须能够找到连续的恢复日志。
ESRI 建议,至少应对所有存档恢复日志保存两份副本,从而可使数据库恢复到理论上所需的最远时间点的状态。例如,这两个副本应存储在不同的介质中,例如,两个单独的磁盘驱动器,或者一个磁盘驱动器和一个磁带驱动器。
如果打算从其磁盘位置中清除存档恢复日志文件,请确保清除前每个存档恢复日志文件都有两个备份副本。
这种存档恢复日志文件多个备份策略有助于防范出现多个介质故障,而这种情况并不少见。例如,有些磁带驱动器直到您尝试恢复文件时才会检测到位错误,但可能为时已晚。
只要小心保存存档恢复日志的多份副本,则仅需对每个备份的每个数据文件生成一个副本即可。
无需对在线恢复日志文件进行备份。如果当前在线恢复日志文件失效,则提交的信息将仍存储在内存中,Oracle 会在发出检查点时将其写入数据文件。关闭具有 NORMAL、IMMEDIATE 或 TRANSACTIONAL 优先级的数据库实例时,Oracle 会自动发出检查点。关闭具有 ABORT 优先级的数据库之前,应尽可能使用 ALTER SYSTEM > CHECKPOINT 命令执行强制检查点操作。
请务必阅读 Oracle 备份和恢复文档。该文档如下:
备份和恢复指南
对于用户方案地理数据库,应确保对主地理数据库及用户方案地理数据库进行备份。SDE 用户方案中包含一些可用于用户方案地理数据库的表。