Oracle安全备份提供了保护文件系统数据和Oracle数据库文件的可靠、集中式磁带备份管理。使用Oracle安全备份的SBT接口可以通过恢复管理器RMAN备份与还原数据库文件。Oracle安全备份几乎支持SAN与SCSI环境中的各种磁带驱动器和磁带库。
Oracle安全备份可以完成以下操作:
管理域是为了执行备份与还原操作而作为一个共同单元进行管理的主机网络。Oracle安全备份在管理服务器的OSB主目录中将管理域的信息组织成一个分层文件结构。OSB主目录是指Oracle安全备份的安装目录。
图1-1显示了一个Oracle安全备份主目录的结构。该目录结构在所有平台上都相同,但是UNIX和Linux上默认的主目录为/usr/local/oracle/backup,Windows上默认为C:\Program Files\Oracle\Backup。
图1 管理服务上的目录
Oracle安全备份管理数据包含管理域内的每个实体的配置数据,例如用户类、磁带设备或者介质簇。如图1-1所示,配置目录包含几个子目录,每个目录代表OSB维护的对象。在每个对象目录内,OSB维护了描述相应对象属性的文件。
Oracle安全备份目录包含备份相关的信息。目录admin/history/host目录包含以管理域主机命名的子目录。每个子目录存在一个存储备份目录数据的文件。OSB支持大于2GB的备份目录文件。该支持仅限于支持大于2GB文件的操作系统和文件系统。
本地主机和NDMP主机备份目录占用的空间大小不同。以下三个部分之和可以估算本地备份的备份目录空间预期增长,单位为字节:
以下三个部分之和可以估算第三方NDMP文件备份的备份目录空间预期增长,单位为字节:
NDMP的每个备份文件还会在NDMP位置文件中占用16字节,无论该文件是新建文件、被修改文件或者未修改文件。
注释:Oracle安全备份在备份过程中会创建一个临时的目录副本。计划管理服务器存储空间时必须考虑该临时副本。
Oracle安全备份自动保护备份目录内容和配置文件。在安装过程中,Oracle安全备份调度必要的备份作业以备份这些文件。如果丢失了备份目录数据,例如磁盘失败,可以从磁带还原最近备份的目录数据,然后还原其他的数据。
通常,应该通过obtool或者Oracle安全备份Web工具访问配置数据和备份目录。避免通过文件系统直接访问包含这些数据的文件。
1.3 Oracle安全备份后台进程
Oracle安全备份后台进程是执行Oracle安全备份操作的后台处理程序。一些后台进程一直在运行,另外一些则只在执行特定作业时运行,并在完成后退出。
注释:在Windows操作系统中,只有后台服务进程是一个Windows服务。其他后台进程不是服务。
1.3.1 后台进程类型
管理域使用各种后台进程执行备份、还原以及配置任务。在Linux或者UNIX中,后台进程位于Oracle安全备份主目录的etc子目录中;在Windows中,后台进程位于bin子目录中。
表1-1列出了Oracle安全备份后台进程以及它们运行与何种角色的主机中。
表1-1 按主机类型分布的Oracle安全备份后台进程
后台进程 | 管理服务器 | 介质服务器 | 客户端 |
服务进程 | 是 | 是 | 是 |
调度进程 | 是 | 否 | 否 |
索引进程 | 是 | 否 | 否 |
Apache Web | 是 | 否 | 否 |
NDMP | 是 | 是 | 是 |
机械手进程 | 否 | 是 | 否 |
代理进程 | 否 | 否 | 是 |
1.3.1.1 后台服务进程
服务进程observiced提供多种服务。它在管理服务器、介质服务器以及客户端上持续运行。
在管理服务器中,observiced响应后台调度进程的请求运行作业,清除日志文件和记录文件,并且为其他主机提供Oracle安全备份配置数据的访问。observiced还用作认证中心,接受主机认证签名请求,并返回签名认证。observiced在初始化时启动调度进程和Apache网络服务进程。
当在介质服务器或者客户端运行时,observiced代表管理域中的成员,允许执行主机的远程管理,并处理认证操作。发送请求的主机的身份证书用于验证它允许调用相应操作。
在所有主机上,后台服务进程通常作为系统启动的一部分启动。在UNIX和Linux上,通常使用/etc/init.d中的项启动,而在Windows系统中,服务通过服务控制管理器启动。
1.3.1.2 后台调度进程
调度进程obscheduled是Oracle安全备份的调度器。调度进程在管理服务器上持续运行。
调度进程管理每个计划备份,维护一个包含所有可用磁带设备的列表,在磁带设备可用时为它们分配备份作业。该进程接收来自obtool用户以及响应RMAN命令的SBT接口的作业创建请求。
调度器策略控制如何安排备份请求。
1.3.1.3 后台索引进程
索引进程obixd管理每个客户端的备份目录。索引进程在管理服务器上间断运行。
索引进程在任何备份结束时启动,将obtar生成的索引数据导入备份目录中。此外,obixd在还原或者浏览操作必须访问备份目录时启动。
1.3.1.4 Apache网络服务进程
网络服务进程obhttpd为Oracle安全备份提供Web工具。该进程在管理服务器上持续运行。
网络服务进程由observiced进程启动,服务进程observiced通常作为系统启动的一部分启动。
1.3.1.5 后台NDMP进程
后台NDMP进程obndmpd实现了NDMP磁带服务并且提供了介质服务器与客户端之间的数据通信。该进程运行在客户端和介质服务器中。它将数据连接控制传递给一个子进程,以便能够保持响应由obtar发送的控制消息。
在活动备份或者还原操作期间存在两个运行的obndmpd实例。如果同一个主机既是介质服务器又是客户端,则存在三个obndmpd实例:一个作为控制器、一个作为数据服务,还有一个作为搬运器。
1.3.1.6 后台机械手进程
机械手进程obrobotd操作磁带库中的磁带。该进程在介质服务器上间断运行。
当Oracle安全被组件,例如obtar,必须与磁带库交互时,它请求介质服务器上的observiced启动一个obrobotd实例。机械手进程执行所有的磁带目录操作,介质移动,等等。每次obrobotd调用管理一个磁带库。obrobotd在磁带库的所有用户关闭连接后退出。
1.3.1.7 后台代理进程
代理进程obproxyd为SBT备份和还原操作验证用户访问。代理进程在操作期间运行在包含SBT库访问的主机上。代理进程的调用与平台相关。
代理进程使用调用SBT库的进程的操作系统用户标识以及本地主机名决定用于备份操作的Oracle安全备份账户。如果存在该操作系统用户和主机的预授权,相关的Oracle安全备份用户允许执行RMAN备份,并且该登录被通过。
1.3.2 文件系统备份时的后台进程交互
图1-2提供了一个管理服务器、介质服务器以及客户端上后台进程之间关系的简单图形说明。
图1-2 管理域中的后台进程
图1-2中的介质服务器显示了一个obtar实例,但是obtar自身不是一个后台进程。它是备份或者还原操作期间操作数据和磁带服务的Oracle安全备份底层引擎。当用户在obtool或者Web工具中提交命令时,Oracle安全备份在内部将它们翻译成obtar命令。
假设observiced进程运行在所有主机上,管理服务器上的observiced进程已经启动了obscheduled和obhttpd进程,并且一个客户端文件系统备份作业已经创建并调度。Oracle安全备份后台进程与obtar的交互如下:
1.4 预设值与策略
Oracle安全备份预设值和策略(defaults and policies)控制管理域内的操作方式。策略的设置在管理服务器中进行维护。
Oracle安全备份策略分为几个策略类。每个策略类包含了描述特定部分操作的策略。与管理备份和还原功能相关的策略类如下:
1.5 备份映像与介质
要理解Oracle安全备份,必须理解物理备份文件与存储文件的备份介质之间的关系。图1-3描述了备份文件与带卷的关系。概念如下:
图1-3 备份映像、备份片段与带卷
图1-4描述了卷组与介质簇之间的关系。概念如下:
图1-4 带卷、卷组与介质簇
使用Oracle安全备份执行文件备份时,将会生成一个卷组,拥有一些共同的特性,由备份关联的介质簇进行定义。
1.5.1 数据块与块因子
通常,磁带驱动器按块写入数据。磁带驱动器每次操作写入一个块,在块之间存在间隙。磁带在写入操作期间持续运行。
数据块的块大小就是写入时的块大小,单位为字节。在一次备份或者还原操作期间的所有读写块具有相同的块大小。数据块的块因子表示该块包含的521字节记录的数量。例如,Oracle安全备份默认的块因子(128)表示128*512字节或者64KB的磁带块大小。
最大块因子是块因子的上限值。该上限主要用于还原操作,此时Oracle安全备份必须在不清楚磁带实际块大小时选择一个初始块大小。最大块因子将初始块大小限制为磁带设备和底层操作系统都允许的值。
当Oracle安全备份开始执行备份时,基于几个因素决定使用的块大小。按照优先级顺序,包括:
当通过以上因素指定块因子时,必须通过以下测试:
当Oracle安全备份开始执行还原操作时,它不知道需要使用的块大小。由于读取过小的块将会导致错误和磁带复位,Oracle安全备份首次读取时总是读取最大可能的块大小。该值由media/maxblockingfactor策略或者磁带驱动器配置进行设置。因此,最大块因子,必须总是大于等于要还原的最大块大小。
在首次读取备份映像后,Oracle安全备份比较请求的数据与实际的块大小,并调整随后的读取块大小以匹配磁带。
1.5.2 备份映像与备份片段
每次备份操作都会产生一个备份映像。如图1-5,备份映像是由至少一个备份片段组成的文件。
图1-5 备份映像与备份片段
备份映像通过备份ID进行唯一标识。同样,备份片段通过备份片段ID唯一标识。示例1-1显示了lsbu命令输出的ID为1的备份映像的结果。
示例1-1 备份映像
ob> lsbu 1
Backup Backup Volume Volume File Sect Backup
Date and Time ID ID Tag # # Level
2008/07/13.11:56:58 1 VOL000003 ADE203 1 1 0
示例1-2显示了lssection命令输出的属于示例1-1的备份映像的备份片段。
示例1-2 备份片段
ob> lssection --vid VOL000003 --file 1
BSOID Volume File Sect Level Client Created Attributes
107 VOL000003 1 1 0 brhost2 07/13.11:56 never expires
1.5.3 带卷
带卷(volume)是物理的介质块,例如一盒磁带。Oracle安全备份通过唯一的带卷ID标识每个带卷,获取带卷ID的方式参考下文。
除了带卷ID之外,带卷还可以拥有带卷标签(volume tag)。带卷标签是一个字母数字字符,最多31个字符,通常来自磁带盒上的UPC条形码标签。许多磁带库配有条形码阅读器,以便Oracle安全备份不需要装载并阅读卷标(volume label)就可以识别一个磁带。Oracle安全备份记录了卷标签与它包含的备份镜像之间的关系。
1.5.3.1 备份映像与卷标
卷标(volume label)通常包含一个带卷ID,例如lev0-0001,以及一个带卷标签(volume tag),即条形码。这两个属性唯一标识一个磁带。Oracle安全备份通常在第一次写入磁带时创建一个卷标。备份映像的第一个块被称为备份映像标签(backup image label)。它包哈文件号、片段号以及备份映像的拥有者。
显示卷标时,带卷相关的信息显示在标题Volume label下,备份映像相关的信息显示在标题Backup Image label下。这些信息属于单个卷标的不同部分。
对于Oracle安全备份调度系统生成的带卷,还可以看到例如介质簇和带卷过期策略的信息项。
Oracle安全备份的备份映像遵从IEEE POSIX.1数据归档格式。Oracle安全备份在一个标记的卷组中记录每个备份映像的文件编号,从1开始。
当Oracle安全备份在一个带卷中写入多个备份映像时,它在每个备份映像之后放置一个磁带文件标记。在最后一个备份映像之后,写入一个磁带文件标记,然后是一个数据结束(EOD)标记,再加2个磁带文件标记。图1-6演示了包含2个备份映像的带卷的格式。
图1-6 一个带卷上的两个备份映像
备份映像、卷标以及特殊的End of Data/End of Volume标签具有共同的格式,并且包含了带卷和备份映像的数据。卷标具有双重角色,即是带卷的标记,也是带卷中第一个备份映像的标签。同样备份映像标签包含关于下一个备份映像的信息和一个来自卷标的卷信息副本。因此,Oracle安全备份不必倒带读取卷标就可以获取卷信息。
假设图1-6中的带卷即是卷组中的第一个卷。第一个备份映像的卷标可能如示例1-3所示。
示例1-3 备份映像1
Volume label:
Volume ID: VOL000014
Owner: jane
Host: chicago
File number: 1
Section: 1
Sequence number: 1
...
第二个备份映像的卷标可能如示例1-4所示。
示例1-4 备份映像2
Volume label:
Volume ID: VOL000014
Owner: jane
Host: chicago
File number: 2
Section: 1
Sequence number: 1
...
在Oracle安全备份创建一个备份映像之后,它指向该卷中的的EOD标签之前。EOD标签包含前一个备份映像标签数据的副本,除了按1递增的文件号之外。Oracle安全备份使用EOD标签为下一个备份映像提供卷ID、备份映像文件号以及序号,不需要倒回带卷。
在Oracle安全备份读取一个备份映像之后,它指向该卷中刚刚读取的备份映像后面的磁带文件标记之后,下一个备份映像的卷标之前。
1.5.4 卷组
Oracle安全备份允许单个备份映像跨越多个带卷。卷组(volume set)是一个或者多个带卷的组合,第一个带卷延续到第二个带卷,第二个带卷延续到第三个带卷,等等。
卷组中的每个带卷拥有一个比前一个带卷大1的带卷序号。因此,在单个连接会话中可以备份或者还原大量的数据。
当Oracle安全备份读写多个带卷时,它使用以下数据记录卷组中带卷的正确顺序:
图1-7描述了一个包含3个备份映像的卷组。备份映像2跨越了2个带卷。
图1-7 跨越多个带卷的单个备份映像
第一个备份映像的部分卷标可能如示例1-5所示。
示例1-5 备份映像1,片段1
Volume label:
Volume ID: VOL000014
Owner: jane
Host: chicago
File number: 1
Section: 1
Sequence number: 1
第二个备份映像的第一个片段的部分卷标可能如示例1-6所示。
示例1-6 备份映像2,片段1
Volume label:
Volume ID: VOL000014
Owner: jane
Host: chicago
File number: 2
Section: 1
Sequence number: 1
第二个备份映像的第二个片段的部分卷标可能如示例1-7所示。
示例1-7 备份映像2,片段2
Volume label:
Volume ID: VOL000015
Owner: jane
Host: chicago
File number: 2
Section: 2
Sequence number: 2
第三个备份映像的第一个片段的部分卷标可能如示例1-8所示。
示例1-8 备份映像3,片段1
Volume label:
Volume ID: VOL000015
Owner: jane
Host: chicago
File number: 3
Section: 1
Sequence number: 2
1.5.5 介质簇
介质簇(Media Family)是卷组的一个命名分类。分类使得创建时间不同的带卷共享相同的属性。这样可以将一个介质簇映射到一种典型的备份操作。
1.5.5.1 介质簇属性
一个介质簇中的每个带卷共享以下属性:
介质簇的属性在带卷创建时间被应用到带卷。介质簇属性是带卷属性的一部分。第一次写入数据后,不能再更改带卷属性,除非重写带卷。如果更改了介质簇属性,这些更改不会应用到已经创建的带卷。
1.5.5.2 介质簇中的带卷
创建介质簇时,指定了如何产生带卷ID。
当Oracle安全备份为带卷打标签(label)时,基于带卷序列文件的内容指定带卷ID。该文件位于管理服务器中,位置由带卷的介质簇决定。通常,该文件位于Oracle安全备份主目录下的admin/state/general子目录中。
定义介质簇时,可以通过以下方式指导Oracle安全备份分配带卷ID:
1.5.5.3 带卷过期策略
创建介质簇时,可以指定带卷过期策略,它决定了带卷何时可以被覆盖和重用。如图1-8所示,带卷可以使用内容管理的过期策略或者时间管理的过期策略。
图1-8 带卷过期策略
1.5.5.3.1 内容管理的过期策略
RMAN备份可以使用基于内容管理的过期策略的带卷,但是文件系统备份不能使用这种带卷。内容管理的带卷的过期由备份片(backup piece)的属性决定。当带卷上的每个备份片都被标记为已删除,带卷可以复用。内容管理的卷组中的带卷可以在其它带卷未过期时过期。
由于内容管理的带卷使用用户定义的RMAN保留设置,RMAN指示Oracle安全备份何时将备份片标记为已删除。实际的备份片不会从带卷中删除,只是更新了Oracle安全备份目录中的属性值。
如图1-8所示,可以通过RMAN或者Oracle安全备份接口删除备份片。使用Oracle安全备份工具删除备份片会导致RMAN资料库中元数据与磁带内容不一致。如果RMAN备份被Oracle安全备份删除,或者由于其他原因导致备份不可用或丢失,应该立即使用RMAN的CROSSCHECK命令更新资料库。
1.5.5.3.2 时间管理的过期策略
时间管理的介质簇中的带卷在到达带卷过期时间后过期。此时,Oracle安全备份自动将卷组中的每个带卷看作可被覆盖的。
如图1-8所示,Oracle安全备份通过以下内容相加计算带卷过期时间:
例如,设置一个介质簇的写入窗口为7天,保留期为14天,则卷组中的所有带卷数据从写入窗口关闭后保留14天。如果Oracle安全备份在1月1日中午首次写入第一个带卷,并且随后写入了20个其它的带卷,则所有的21个带卷在1月22日中午过期。
文件系统备份和RMAN备份都可以写入时间管理的带卷。也就是说,时间管理的带卷可以包含文件系统备份和RMAN备份片的混合。如果将RMAN备份写入时间管理的带卷,时间惯了的过期策略将会覆盖RMAN中的保留设置。
1.6 作业与请求
在Oracle安全备份中,备份或者还原请求(request)与作业(job)不同。请求是一个本地存储的备份或还原操作描述,它还不能运行。作业是一个已经提交到调度进程的请求,它能够运行。
调度程序策略决定了调度程序如何处理备份和还原作业。
注释:本节描述文件系统备份与还原作业。关于数据库备份与还原作业,参考“第4章 使用RMAN与Oracle安全备份”。
图1-9显示了Oracle安全备份用户创建一个请求式备份或者还原作业的过程。
图1-9 备份与还原请求与作业
图1-9描述的过程包含以下步骤:
1.6.1 创建作业
本节进一步描述如何创建一个请求式或者预定的文件系统备份与还原作业。以下事件导致Oracle安全备份创建作业:
到达执行作业的时候,调度程序决定执行作业最重要的准则是用户指定的调度优先级。调度程序优先调度更高优先级的作业,假如该作业所需资源全部可用的话。例如,如果调度程序拥有20个就绪的作业,Oracle安全备份运行具有最小优先级数字的作业(数字越小,优先级越高)。
1.6.2 作业日志
Oracle安全备份为每个作业维持一个日志。该日志描述了高层级别的事件,例如作业的创建、调度以及完成时间。可以通过Oracle安全备份Web工具或者obtool查看日志。
1.6.3 作业记录
Oracle安全备份为每个作业维护一个运行记录(Transcript)。该记录描述了作业操作的详细信息。Oracle安全备份在第一次调度作业时创建该记录,并在作业处理过程中更新记录。当作业需要操作人员的协助时,Oracle安全备份使用该记录提示帮助请求。
1.6.4 作业汇报
作业汇报(Job Summary)是Oracle安全备份产生的,用于描述文件系统备份与还原作业状态的文本文件报告。每个报告包含4个部分,通过作业状态进行区分:
可以创建一个作业汇报计划,用于Oracle安全备份生成多个报告,每个包含不同时间段或者活动内容。创建作业汇报计划时,可以选择以下选项: