Oracle 的自身备份
到现在为止,许多开发人员已经认识到 RMAN 的潜力以及它作为数据库备份工具的实用性。 您可能还记得 RMAN 可以将数据直接备份到磁盘和磁带。 当涉及磁带解决方案时,RMAN 使用名为介质管理库 (MML) 的 API 来操纵磁带子系统。
此 MML 特定于所涉及的磁带管理系统和硬件。 (例如,如果涉及 Tivoli Storage Manager,则必须使用特定的 MML — Tivoli Data Protector,RMAN 需要它来通过 Tivoli 管理磁带。) 尽管 RMAN 是数据库引擎的一个特性,但 MML 不是引擎的一部分,而是由别人提供的;实际上,其价格可能相当高。 此外,如果您的主要目的是备份 Oracle 数据库,则在 MML 方面进行额外的投资就显得不适当了。
在 Oracle 数据库 10g 第 2 版中,一个名为 Oracle Secure Backup (OSB) 的新工具代替了特定于第三方磁带管理系统的 MML,从而使此要求变得更容易接受。 OSB 可以直接备份到磁带库,因此您不需要任何其他介质管理层。 而其最大的优点是,OSB 与数据库引擎紧密集成,因此可以通过 Oracle Enterprise Manager 对它进行控制和管理。
但其他非数据库备份(如备份 Oracle Home、初始化文件、集群注册表文件(就 RAC 而言)以及其他重要文件)又如何呢? 您可能会问,这些备份不需要备份工具吗?
回答是“不需要”。就像任何独立工具一样,OSB 也可以执行文件系统备份。 显而易见,无需使用 MML 来进行 RMAN 备份再加上备份文件系统这一功能提供了一个低成本和简化的备份和恢复方法。
下面介绍如何在 Oracle Enterprise Manager 中使用 MML 组件。 首先,在 Oracle Enterprise Manager GUI 中选择 Maintenance 选项卡:
从以上菜单中,选择标题为“Configure Backup Settings”的超链接,随即将显示一个如下所示的屏幕:
注意此屏幕上的“Tape Settings”部分,您将在该部分中配置 Oracle Backup 工具。
Oracle Backup Administrative
软件可以在一台独立的主机上运行,在此主机中,该软件通过数据服务器上运行的代理进行管理。 在本示例中,Administrative 主机安装在主机 proliback.proligence.com 上并在其上运行,且 Oracle Backup 工具已经安装到 /bin/obt 目录中。
当然,许多 DBA 仍喜欢使用命令行和编写脚本。 OSB 提供了一个名为 obtool 的命令行工具。 可以通过键入以下命令调用该命令行版本:
obtool
该命令调出 OSB 提示符 ob>。 可以在此处键入“help”来查看可用的命令。
ob > help
或者,可以在命令名之后使用关键字“glossary”以获得有关此命令的更多详细信息:
ob> help restore glossary
要备份 Oracle Home,应使用:
ob> backup --level incr --at 2005/03/29.09:00
--priority 1 --family Pool1 --privileged --dataset OracleHome --expirerequest 7days
我们需要对以上命令进行一些说明。 第一个参数 (level) 指示备份级别。 在此您指定了增量备份来备份自上次增量备份以来更改的所有文件。 第二个参数 2005/03/29.09:00 指定备份运行的时间, 即 2005 年 3 月 29 日上午 9 点。
如果有多个备份作业,那么它们按照什么顺序执行? 此顺序由优先级选项(此处设置为 1,表示“最高优先级”)指定。 可以指定一个小于等于 100 的值来指定较低的优先级。
您还为不同类型的备份指定了几个介质池。 例如,您可以有一个用于数据文件备份的介质池,一个用于归档日志的介质池,和一个用于其他非数据库备份的介质池。 此处,您将名为 Pool1 的池指定为用于此备份的池。
您已经通过参数数据集指定了要备份的文件。 当您期望另一个增量备份发生时,您已经通过参数 expirerequest 请求在 7 天后使此备份过期。
我在这里的目的是提供一个非常简要的介绍;完整介绍将需要一本书的篇幅。 有关 OSB 的更多信息,请参考可用的文档集。