Oracle Secure Backup管理员指南 第4章 结合使用RMAN与Oracle安全备份
2014-01-08 09:55
561 查看
本章介绍如何结合使用恢复管理器(RMAN)与Oracle安全备份。文章假设用户已经熟悉了RMAN概念与操作。
虽然Oracle安全备份支持早期的数据库版本,主要功能从Oracle Database 10G R2开始支持。以下的集成增强为Oracle安全备份专有,对于其他介质管理产品不可用:
Oracle Database 10G R2 -- Oracle EM为RMAN和Oracle安全备份提供统一接口。另外,使用Oracle EM管理磁带、介质服务器以及磁带设备为Oracle安全备份专有;Oracle安全备份SBT库是唯一支持RMAN直接加密备份到磁带的接口。如果尝试使用其他SBT库执行加密RMAN备份,将会提示以下错误信息:ORA-19916: encrypted backups to tertiary storage require
Oracle Secure Backup;直接备份到磁带时的未使用块压缩为Oracle安全备份专有。如果使用Oracle安全备份执行磁盘备份或者直接到磁带的备份,可以使用未使用块优化。如果使用第三方介质管理产品直接备份到磁带,不能使用该功能。
Oracle Database 11G -- SBT和磁带使用一个共享的缓冲区以优化SBT缓冲区分配。这样减少了从SBT缓冲区到磁带缓冲区的复制过程,可以减少CPU负载;增强了回滚表空间的备份,排除了已提交的回滚信息,减少了磁带消耗并提高了性能。
RMAN客户端。RMAN客户端随Oracle数据库软件自动安装,可以启动数据库备份和恢复。RMAN客户端可以备份和恢复任何本地访问的数据库文件,或者满足兼容性需求的Oracle Net访问的数据库文件。
RMAN目标数据库。RMAN目标数据库是RMAN备份或者还原操作的数据库。RMAN用于管理备份和恢复的元数据存储在目标数据库的控制文件中,或者存储在RMAN恢复目录中。
RMAN恢复目录。RMAN恢复目录是一个可选的数据库模式,用作RMAN元数据的二级存储库。可以在一个数据库中为多个目标数据库创建一个集中的恢复目录。
使用Oracle安全备份将数据库备份到磁带时,每个备份片被看作一个Oracle安全备份映像。图4-1说明了备份片与备份映像之间的关系。单个备份映像可以跨越多盒磁带。Oracle安全备份可以在同一盒磁带中写入数据库备份映像(RMAN备份片)和文件系统备份映像。
图4-1 备份集与备份映像
在一个用于Oracle安全备份的RMAN脚本中定义参数
定义Oracle安全备份数据库备份存储选择器
Oracle推荐定义一个或者多个数据库备份存储选择器,以自动选择磁带存储。在需要不同的存储介质,而不是使用存储选择器的非重复执行的备份中,可以使用RMAN存储参数覆盖数据库备份存储选择器中的设置。
Oracle安全备份使用数据库备份存储选择器中封装的信息与RMAN进行交互。Oracle安全备份使用存储选择器代表标识数据库文件的备份属性。
数据库备份存储选择器必须指定以下信息:
唯一标识数据库的数据库名称或者DBID
数据库主机名称
用于RMAN备份的介质簇名称
数据库备份存储选择器还可以指定以下信息:
备份的内容或者类型,例如,是否是完全备份或者增量备份
双工备份的拷贝数量
备份能够使用的磁带设备限制
备份Oracle数据库文件时,RMAN将数据库名称、内容类型以及拷贝数传递给Oracle安全备份。Oracle安全备份使用这些信息决定相应的数据库备份存储选择器。存储选择器指定了该备份使用的磁带设备以及介质簇(如果指定了的话)。
可以创建多个数据库备份存储选择器。例如,可以创建一个数据库存储选择器用于管理域中的所有数据库的数据文件备份,创建另一个选择器用于管理域中的所有数据库的归档日志备份。可以为数据文件备份指定一个磁带库,为归档日志备份指定另一个磁带库。
数据库存储选择器必须唯一。除了通配符(*)之外,更通用的设置可以匹配具体的设置。例如,假设创建了一个--dbname为db_1和db_2的存储选择器,就不能再创建一个--dbname为db_1,并且其他所有属性与前一个选择器相同的存储选择器。但是,如果创建了一个--dbname为全部(*)的存储选择器,可以再创建一个--dbname为db_1,并且其他所有属性与前一个选择器相同的存储选择器。
当使用SBT接口执行RMAN备份时,Oracle安全备份检查数据库备份存储选择器以决定它是否匹配备份作业的属性。当备份存储选择器的每个属性都匹配备份作业相应的属性时,被认为匹配。如果多个存储选择器匹配该作业,Oracle安全备份选择属性更加具体的选择器。例如,数据库名设置为db_1的备份存储选择器在数据库名设置为全部(*)的备份存储选择器之前匹配。
Oracle安全备份在管理服务器的Oracle安全备份主目录下的admin/ssel子目录中维护存储选择器信息。
可以通过Grid Control管理Oracle安全备份管理域中所有数据库的SBT备份。可以在包含Grid Control资料库的数据库中创建一个集中的RMAN恢复目录。
使用Grid Control 10.2.0.2版时,如果Enterprise Manager资料库位于一个Oracle 10.2版数据库中,可以使用运行Oracle 10.1或者更早版本的主机上的Oracle安全备份软件。
在单主机管理域中,一个主机同时担任管理服务器、介质服务器以及客户端的角色。Oracle数据库位于该主机中。图4-2演示了典型的单主机场景。
图4-2 单主机管理域数据库备份
由于数据库安装在管理服务器中,可以使用Enterprise Manager Database Control控制台执行Oracle安全备份数据库备份与还原操作。
多主机管理域
在多主机管理域中,管理服务器、介质服务器以及客户端主机可能相互独立,或者每个数据库服务器还同时作为一个介质服务器。后一个配置可以最小化基于网络的备份操作。一个管理域只能包含一个管理服务器,但是能够包含多个介质服务器和客户端。
图4-3演示了一个典型的多主机管理域,每个客户端主机运行一个Oracle数据库。在这个例子中,管理服务器和介质服务器不运行数据库。Windows上的数据库包含一个存储管理域所有数据库备份元数据的集中恢复目录。
图4-3 多主机管理域数据库备份
由于目标数据库不位于管理服务器中,不能使用Oracle Enterprise Manager Database Control执行Oracle安全备份SBT备份。但是,可以使用客户端上的Grid Control执行SBT备份操作。
图4-4 RMAN与Oracle安全备份SBT接口
使用Oracle安全备份的RMAN备份与还原操作基本过程如下:
Oracle安全备份用户通过命令行或者Oracle EM控制台启动RMAN客户端。
该Oracle安全备份用户分配一个SBT通道并运行RMAN的BACKUP或者RESTORE命令。分配通道时,在Oracle数据库中打开一个服务器会话。
数据库主机中的服务器会话通过Oracle安全备份SBT库提交备份或者还原作业请求。
Oracle安全备份创建备份或者还原作业,并为它指定一个唯一的标识符,例如sbt/15。
对于RMAN备份操作,Oracle安全备份立即尝试预订并启动适当的资源。如果资源不可用,Oracle安全备份将作业放入队列,等待资源可用。可以通过以下设置控制作业等待的时间:操作策略rmanresourcewaittime,该策略默认为forever。备份存储选择器或者RMAN参数设置可以覆盖该策略;在obtool的mkssel或者chssel命令中指定--waittime选项;RMAN参数OB_RESOURCE_WAIT_TIME。
对于RMAN还原操作,起始时间取决于操作策略类中的rmanrestorestartdelay策略的设置。
RMAN创建或者还原备份片。
对于备份,Oracle安全备份在Oracle安全备份目录中存储关于RMAN备份片的元数据。Oracle安全备份目录的存储与管理完全同RMAN恢复目录独立。Oracle安全备份存储每个备份片和相应的元数据。
在数据库备份或者还原操作中,Oracle影子进程管理Oracle安全备份与Oracle数据库之间的交互。影子进程装载SBT库并启动客户端的Oracle安全备份数据服务(obndmpd),执行网络I/O。Oracle影子进程和Oracle安全备份数据服务使用共用的内存区域交换数据。
在NUMA机器中,Oracle安全备份确保Oracle影子进程和Oracle安全备份数据服务运行在同一个节点上,访问相同的共用内存。
配置RMAN访问Oracle安全备份SBT。如果使用Enterprise Manager Database Control,该步骤包括在EM中注册管理服务器。
创建一个用于RMAN操作的预授权的Oracle安全备份用户。这是一个必须执行的步骤。
Oracle建议创建用于数据文件和归档重做日志的介质簇。如果没有创建介质簇,RMAN默认使用RMAN-DEFAULT介质簇。
可以选择性地配置数据库备份存储选择器或者RMAN介质管理参数。这些设置可以更细粒度地控制备份存储选择。
可选择性地将OB_IGNORE_NUMA设置为0,以禁用NUMA识别。该参数默认为1,使得Oracle安全备份能够识别NUMA。
可以通过任何Oracle安全备份接口执行以上配置任务。如果可能,本节将解释如何通过Enterprise Manager Database Control控制台执行这些配置。
默认情况下,RMAN在一个与平台相关的默认位置查找SBT库。在Linux和UNIX中,默认库文件名为/lib/libobk.so,扩展名随着平台变化:.so,.sl,.a等等。在Windows中,默认库文件名为%WINDIR%\System32\orasbt.dll。
在Linux和UNIX上安装Oracle安全备份是,安装程序自动将SBT库复制到Oracle安全备份主目录的lib子目录中,并在/lib或者/usr/lib目录中创建一个到SBT库的符号链接。
默认情况下,RMAN在分配SBT通道时搜索标准路径并装载SBT库。可以在分配通道或者配置通道时,通过SBT_LIBRARY介质管理参数覆盖SBT库位置。
在一个主机上,只能有一个Oracle安全备份用户被预授予RMAN备份与还原操作权限。数据库可以拥有多个执行备份或者还原操作的RMAN用户,但是Oracle安全备份只能拥有一个预授权的用户用于该服务器。
也可以预授权一个Oracle安全备份用户用于命令行(obtool)操作。这在使用备份和还原脚本时非常有用。
图4-5 预授权的数据库备份与还原操作
执行过程如下:
启动RMAN并分配一个SBT通道,Oracle数据库启动一个服务器会话。
服务器会话使用SBT库与本机上的obproxyd后台进程进行交互。
本地obproxyd后台进程确定运行服务器会话的操作系统用户。假设本例中操作系统用户为oracle,运行在Linux主机brhost2中。
本地obproxyd后台进程同管理服务器的observiced后台进程检查该操作系统用户信息。如果此主机和操作系统的该用户被预授予一个Oracle安全备份用户,成功登录Oracle安全备份。例如,假设主机brhost2上的oracle操作系统用户被预授予Oracle安全备份用户obuser。同时假设obuser是oracle用户类(默认赋予了perform. Oracle backups and restores权限)的成员。
服务器会话使用Oracle安全备份用户备份或者还原文件。通过SBT提交的Oracle安全备份操作使用定义的操作系统用户访问主机文件。在图4-5示例中,备份与还原操作以主机brhost2的oracle操作系统账户运行。
在Linux或者UNIX中,要在安装过程中创建一个预授权的Oracle安全备份用户,必须设置一个obparameters参数为create preauthorized oracle user。
在Windows中,要在安装过程中创建一个预授权的Oracle安全备份用户,必须在选择管理服务器特性时启用Create “oracle” user功能。
要在安装之后配置一个预授权的Oracle安全备份用户,使用Web工具或者obtool的mkuser命令。示例4-1使用mkuser创建一个名为preauth_user的用户,并指定了oracle用户类。示例使用--preauth将preauth_user映射到主机brhost2上的Linux或者UNIX用户oracle。
示例4-1 预授权操作系统用户以执行RMAN备份
mkuser preauth_user --class oracle --preauth brhost2:oracle+rman
RMAN使用的默认介质簇为RMAN-DEFAULT。不能删除或者重命名RMAN-DEFAULT介质簇,但是能够通过Web工具或者obtool修改它的某些属性。
为归档日志和数据文件备份集创建不同的介质簇是有益处的。可以使用EM、Oracle安全备份Web工具或者obtool的mkmf命令创建介质簇。
创建介质簇时,指定一个带卷过期策略,它决定了该介质簇中的带卷何时能够被复写和重用。一个介质簇中带卷可以使用内容管理的过期策略或者时间管理的过期策略。
内容管理的带卷只能用于RMAN操作。时间管理的带卷可以同时用于RMAN和文件系统备份与还原操作。因此,时间管理的带卷可能包含文件系统备份和RMAN备份片的混合。
注意:如果将RMAN备份存储到时间管理的带卷中,有可能带卷过期并重用,而RMAN资料库报告该带卷上的备份片仍然可用。此时,必须使用RMAN的CROSSCHECK命令解决这种差异问题。
可以通过以下方式设置RMAN介质管理参数:
环境变量,通过CONFIGURE或者ALLOCATE CHANNEL命令的PARMS选项的ENV参数指定
RMAN的SEND命令
可以在RMAN备份和还原作业中使用以下Oracle安全备份参数:
OB_MEDIA_FAMILY[ _n ],定义备份作业能够使用的介质簇。
OB_DEVICE[ _n ],定义备份能够使用的磁带驱动器。
OB_RESOURCE_WAIT_TIME,指定备份或者还原作业等待资源可用的时间长度。
OB_ENCRYPTION,控制Oracle安全备份加密。
OB_RESTORE_DEVICE,指定还原操作使用的磁带设备。如果指定设备没有定义,Oracle安全备份将会使用任何可用的设备。
OB_IGNORE_NUMA,控制NUMA识别。默认值为1,即允许NUMA。参见4.1.7。
一般来说,介质管理参数会覆盖数据库备份存储选择器中相应的设置。
执行以下操作设置RMAN数据库备份的介质管理参数:
完成“4.4 结合RMAN与Oracle安全备份执行备份”中的步骤1至步骤9。
点击Edit RMAN Script。出现Schedule Customized Backup:Review:Edit RMAN Script页面。
在主窗口中,修改脚本以使用介质管理参数。例如,假设备份脚本如下:
backup device type sbt database include current controlfile;
backup device type sbt archivelog all not backed up;
要配置备份使用my_mf介质簇,可以修改脚本如下:
run
{
allocate channel c1 device type sbt
parms 'ENV=(OB_MEDIA_FAMILY=my_mf)';
backup database include current controlfile;
backup archivelog all not backed up;
}
点击Submit Job。出现Status页面。
以下示例演示了一个数据库备份作业和它的两个从属备份作业。此时存在两个备份副本被写入单独的磁带驱动器。
Recovery Manager: Release 10.2.0.2.0 - Production on Wed Jun 25 12:18:32 2008
Copyright (c) 1982, 2008, Oracle. All rights reserved.
RMAN-06568: connected to target database: TSTVW1 (DBID=1586108579, not open)
RMAN-06009: using target database control file instead of recovery catalog
RMAN> run {
2> set backup COPIES 2 ;
3> backup tablespace tbs_mult ;
4> }
5>
RMAN-03023: executing command: SET BACKUP COPIES
RMAN-03090: Starting backup at 25-JUN-08
RMAN-08030: allocated channel: ORA_SBT_TAPE_1
RMAN-08500: channel ORA_SBT_TAPE_1: sid=93 devtype=SBT_TAPE
RMAN-08526: channel ORA_SBT_TAPE_1: Oracle Secure Backup
RMAN-08008: channel ORA_SBT_TAPE_1: starting full datafile backupset
RMAN-08010: channel ORA_SBT_TAPE_1: specifying datafile(s) in backupset
RMAN-08522: input datafile fno=00004 name=/jfersten_tstvw1/oracle/dbs/tbs_mult.dat
RMAN-08038: channel ORA_SBT_TAPE_1: starting piece 1 at 25-JUN-08
RMAN-08053: channel ORA_SBT_TAPE_1: finished piece 1 at 25-JUN-08 with 2 copies
and tag TAG20080625T121838
RMAN-08503: piece handle=06jjqgcu_1_1 comment=API Version 2.0,MMS Version 10.2.0.0
RMAN-08503: piece handle=06jjqgcu_1_2 comment=API Version 2.0,MMS Version 10.2.0.0
RMAN-08540: channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:11:06
RMAN-03091: Finished backup at 25-JUN-08
Recovery Manager complete.
主作业为sbt/8:
ob> lsj -l --log sbt/8
sbt/8:
Type: database tstvw1 (dbid=1586108579)
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: (administrative server)
Attempts: 0
Log:
2008/06/25.12:29:37 Job completed successfully.
从属作业为sbt/8.1和sbt/8.2:
ob> lsj -l sbt/8.1
sbt/8.1:
Type: datafile backup
Backup piece: 06jjqgcu_1_1
Family: verylongmediafamilyname
Encryption: off
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: brhost3
Attempts: 1
ob> lsj -l sbt/8.2
sbt/8.2:
Type: datafile backup
Backup piece: 06jjqgcu_1_2
Family: verylongmediafamilyname
Encryption: off
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: brhost3
Attempts: 1
在作业描述中,Oracle安全备份根据RMAN备份类型决定作业名称。有效的类型包括归档日志、数据库、数据文件以及控制文件。Oracle安全备份为每个RMAN作业指定一个标识符,前缀为主作业ID,加上一个点号(.),然后是一个唯一的小数字。例如,15.1可能是计划作业15的一个从属作业。以下示例显示了一个典型的lsj命令输出,包含各种Oracle安全备份RMAN备份:
sbt/1.1 none archivelog backup completed successfully at 2008/06/25.12:04
sbt/2 none database tstvw1 completed successfully at 2008/06/25.12:04
sbt/2.1 none controlfile autobackup completed successfully at 2008/06/25.12:04
sbt/3 none database tstvw1 completed successfully at 2008/06/25.12:05
sbt/3.1 none datafile backup completed successfully at 2008/06/25.12:05
sbt/4 none database tstvw1 completed successfully at 2008/06/25.12:06
sbt/4.1 none restore piece '03jgj1_1' completed successfully at 2008/06/25.12:06
sbt/5 none database tstvw1 completed successfully at 2008/06/25.12:06
sbt/5.1 none incremental backup completed successfully at 2008/06/25.12:06
sbt/6 none database tstvw1 completed successfully at 2008/06/25.12:12
sbt/6.1 none datafile backup completed successfully at 2008/06/25.12:12
sbt/7 none database tstvw1 completed successfully at 2008/06/25.12:17
sbt/7.1 none restore piece '05jgj0_1' completed successfully at 2008/06/25.12:17
sbt/8 none database tstvw1 completed successfully at 2008/06/25.12:29
sbt/8.1 none datafile backup completed successfully at 2008/06/25.12:29
sbt/8.2 none datafile backup completed successfully at 2008/06/25.12:29
执行以下操作通过Database Control备份数据库:
使用拥有数据库管理员权限的Oracle安全备份用户登录Oracle Enterprise Manager Database Control。
点击Availability。出现Availability子页面。
在Manage部分,点击Schedule Backup。出现Database Instance:database_name > Schedule Backup页面。
执行以下操作:在Customized Backup部分,选择Whole Database。该选项指定一个数据库文件和归档日志的在线备份;在Host Credentials部分,在Username和Password项输入能够访问目标数据库的一个Oracle安全备份用户的认证信息;如果想要Database Control记住认证信息,选择Save as Preferred Credential;点击Schedule Customized Backup。出现Schedule
Customized Backup:Options页面。
在Backup Type部分选择Full Backup。
要想使用RMAN加密(非Oracle安全备份加密)进行备份加密,选择Secure the backup using Recovery Manager encryption。执行以下操作:在Encryption Algorithm列表中选择一个加密算法;选择一个加密模式。同时选择两种加密模式能够在还原备份时灵活使用Oracle数据库加密钱夹或者口令。如果选择口令保护加密,在Password和Confirm Password项输入一个口令。
对于RMAN加密,数据库管理加密密钥。对于Oracle安全备份加密,Oracle安全备份管理文件系统和数据库备份的密钥。
点击Next。出现Schedule Customized Backup:Settings页面。
点击View Default Settings查看当前备份的设置。点击Override Current Settings进入备份设置页面,修改当前的磁带驱动器数量和磁带备份类型设置。点击备份设置页面的Override按钮修改当前备份的介质簇和/或磁带驱动器。
选择Tape选项并点击Next。出现Schedule Customized Backup:Schedule页面。
在Job部分,该页面在Job Name项显示了一个作业名称,在Job Description项显示了备份类型。选择一个计划类型,可选项包括:
One Time(Immediately)
One Time(Later)
Repeating
点击Next。出现Schedule Customized Backup:Review页面。
检查备份特性,并点击Submit Job。出现Status页面。
点击View Job监控备份进度。出现Execution:database_name页面。刷新该页面直到出现Backup链接。
点击Backup。出现Step:Backup页面。刷新页面以显示该备份作业的RMAN输出。
使用RMAN备份加密,可以加密数据库中的数据。该选项可以用于Oracle数据库10.2之后的版本。
使用Oracle安全备份加密,可以加密RMAN通过SBT传输到Oracle安全备份之后的数据。该选项从Oracle 9i之后可用。由于加密发生在数据库之外,数据在通过网络传输或者写入本地附属磁带设备之前,在服务器中进行加密。Oracle安全备份可以用于RMAN以及文件系统备份。
注意:如果使用内容管理的带卷,RMAN保留策略决定了何时过期。如果使用控制文件作为RMAN资料库,记录保留时间参数必须大于等于备份需要保留的时间。
Oracle不推荐使用Oracle安全备份的rmpiece命令删除磁带中的备份片,因为这样的话,RMAN元数据不能正确反映磁带内容。这种差异也可能由于时间管理的带卷中的RMAN备份片过期,或者强制重写带卷而产生。使用RMAN的CROSSCHECK命令解决Oracle安全备份目录与RMAN资料库的差异问题。
使用RMAN备份或者还原数据库时,作业包含了数据库名称。示例4-2显示了关于数据库orcl的备份与还原作业的输出样例。示例中的作业ID包含了oracle,因为作业由oracle用户执行。
示例4-2 数据库备份与还原作业
ob> lsjob --all
Job ID Sched time Contents State
---------------- ----------- ------------------------------ ---------------------------------------
oracle/1 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:29
oracle/1.1 none datafile backup completed successfully at 2008/08/11.11:29
oracle/2 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:56
oracle/2.1 none datafile backup completed successfully at 2008/08/11.11:56
oracle/3 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:57
oracle/3.1 none restore piece '06grqejs_1_1' completed successfully at 2008/08/11.11:57
示例4-3 一个归档日志备份作业的记录
ob> catxcr --head 22 sbt/6.1
2008/06/28.13:01:04 ______________________________________________________________________
2008/06/28.13:01:04
2008/06/28.13:01:04 Transcript. for job sbt/6.1 running on brhost1
2008/06/28.13:01:04
Volume label:
Volume tag: ADE202
Volume ID: RMAN-DEFAULT-000002
Volume sequence: 1
Volume set owner: root
Volume set created: Tue Jun 28 13:01:30 2008
Media family: RMAN-DEFAULT
Volume set expires: never; content manages reuse
Archive label:
File number: 1
File section: 1
Owner: root
Client host: brhost1
Backup level: 0
S/w compression: no
Archive created: Tue Jun 28 13:01:30 2008
Oracle安全备份中的一个RMAN备份片代表一个备份映像。可以使用obtool的lspiece命令显示Oracle安全备份目录中记录的备份片信息。示例4-4显示了lspiece的输出示例。
示例4-4 显示备份片
ob> lspiece --long
Backup piece OID: 104
Database: ob
Database ID: 1566254457
Content: archivelog
Copy number: 0
Created: 2008/06/28.13:01
Host: brhost1
Piece name: 05go3tgd_1_1
Backup piece OID: 105
Database: ob
Database ID: 1566254457
Content: archivelog
Copy number: 0
Created: 2008/06/28.13:02
Host: brhost1
Piece name: 06go3ti5_1_1
图4-6显示了一个包含三节点RAC系统的管理域示例,每个节点配置为一个客户端。在RAC环境中,RMAN能够还原备份片到安装了Oracle安全备份软件的任一节点中,无论备份片由哪一个节点创建。
图4-6 在RAC集群环境中结合使用RMAN与Oracle安全备份
如果RAC环境中的一个节点是介质服务器,使用该节点在本地访问的磁带设备上创建备份将会更加高效。该技术避免了网络带宽的分配,而在配置为客户端的RAC节点上执行备份时需要网络带宽。
可以配置RMAN备份从指定节点执行。Oracle推荐执行RMAN永久配置,这样只需要配置一次,并且能够影响该数据库的所有备份与还原操作。
在以下示例中,有3个磁带驱动器附属于主机hostA,另外2个磁带驱动器附属于hostB。配置步骤如下:
连接到RAC环境中的任一节点以配置RMAN参数。
设置并行度。
配置通道(3个)/connect/SID hostA。
配置通道(3个)/connect/SID hostB。
在以上示例中,建立了所需的6个通道,每个主机3个。该配置应用于每个备份与还原操作,除非覆盖该设置。可以连接到RAC环境中的任何节点启动RMAN操作,操作只在两个已配置主机上执行。
4.8.3、双工备份
可以双工备份操作,每个使用一个单独的卷组,保留一个卷组在场以便使用,另一个卷组离场存储用于灾难恢复。为了便于管理,每个双工的备份操作可以由它自己的数据库存储选择器定义,并且写入自己单独的介质簇。
数据库备份存储选择器是用户定义的用于Oracle数据库备份的Oracle安全备份介质策略。它们定义了介质簇、磁带设备、资源等待时间以及备份的副本数量。一个数据库存储选择器可以用于管理域中的所有数据库的备份,也可以为每个数据库定义多个存储选择器。
在以下示例中,创建了名为ssel_1和ssel_2的两个数据库存储选择器。它们都备份主机host_name上的所有数据库的全部内容。但是ssel_1使用介质簇mf_1,而ssel_2使用介质簇mf_2:
ob> mkssel --dbid * --host host_name --content * --family mf_1 -- copynum 1 ssel_1
ob> mkssel --dbid * --host host_name --content * --family mf_2 -- copynum 2 ssel_2
如果使用RMAN双工备份和PARALLELISM,可用磁带驱动器数量必须满足并发的2个备份副本。如果在上例中的通道配置将PARALLELSIM设置为2,备份操作需要4个磁带驱动器(2个备份副本乘以PARALLELSIM)。
如果一个备份副本的磁带驱动器不可用,另一个副本也不能执行。此外,如果一个备份副本的备份流失败,另一个副本也会失败。
这种情况下还原操作只需要2个磁带驱动器,因为还原操作不是双工的。
4.1、关于RMAN与Oracle安全备份
Oracle安全备份相当于RMAN通过SBT接口进行备份时的一个介质管理层。Oracle安全备份和第三方备份工具可以与RMAN的SBT接口API结合使用。虽然Oracle安全备份支持早期的数据库版本,主要功能从Oracle Database 10G R2开始支持。以下的集成增强为Oracle安全备份专有,对于其他介质管理产品不可用:
Oracle Database 10G R2 -- Oracle EM为RMAN和Oracle安全备份提供统一接口。另外,使用Oracle EM管理磁带、介质服务器以及磁带设备为Oracle安全备份专有;Oracle安全备份SBT库是唯一支持RMAN直接加密备份到磁带的接口。如果尝试使用其他SBT库执行加密RMAN备份,将会提示以下错误信息:ORA-19916: encrypted backups to tertiary storage require
Oracle Secure Backup;直接备份到磁带时的未使用块压缩为Oracle安全备份专有。如果使用Oracle安全备份执行磁盘备份或者直接到磁带的备份,可以使用未使用块优化。如果使用第三方介质管理产品直接备份到磁带,不能使用该功能。
Oracle Database 11G -- SBT和磁带使用一个共享的缓冲区以优化SBT缓冲区分配。这样减少了从SBT缓冲区到磁带缓冲区的复制过程,可以减少CPU负载;增强了回滚表空间的备份,排除了已提交的回滚信息,减少了磁带消耗并提高了性能。
4.1.1、RMAN环境
RMAN是一个用于备份Oracle数据库文件的工具。RMAN环境包含以下基本组件:RMAN客户端。RMAN客户端随Oracle数据库软件自动安装,可以启动数据库备份和恢复。RMAN客户端可以备份和恢复任何本地访问的数据库文件,或者满足兼容性需求的Oracle Net访问的数据库文件。
RMAN目标数据库。RMAN目标数据库是RMAN备份或者还原操作的数据库。RMAN用于管理备份和恢复的元数据存储在目标数据库的控制文件中,或者存储在RMAN恢复目录中。
RMAN恢复目录。RMAN恢复目录是一个可选的数据库模式,用作RMAN元数据的二级存储库。可以在一个数据库中为多个目标数据库创建一个集中的恢复目录。
4.1.2、数据库备份
Oracle安全备份为RMAN提供了一个数据库文件磁带备份的SBT接口。在Oracle安全备份管理域中,SBT备份通过RMAN命令行或者Oracle EM启动,而文件系统备份通过Oracle安全备份Web工具或者obtool命令行提交。4.1.2.1、RMAN备份集与Oracle安全备份映像
RMAN数据库文件备份的结果是一个备份集。备份集是物理文件的组合,每个物理文件被称为一个备份片。使用Oracle安全备份将数据库备份到磁带时,每个备份片被看作一个Oracle安全备份映像。图4-1说明了备份片与备份映像之间的关系。单个备份映像可以跨越多盒磁带。Oracle安全备份可以在同一盒磁带中写入数据库备份映像(RMAN备份片)和文件系统备份映像。
图4-1 备份集与备份映像
4.1.2.2、数据库备份存储选择器
定义Oracle安全备份中的RMAN备份存储参数可以通过以下操作之一完成:在一个用于Oracle安全备份的RMAN脚本中定义参数
定义Oracle安全备份数据库备份存储选择器
Oracle推荐定义一个或者多个数据库备份存储选择器,以自动选择磁带存储。在需要不同的存储介质,而不是使用存储选择器的非重复执行的备份中,可以使用RMAN存储参数覆盖数据库备份存储选择器中的设置。
Oracle安全备份使用数据库备份存储选择器中封装的信息与RMAN进行交互。Oracle安全备份使用存储选择器代表标识数据库文件的备份属性。
数据库备份存储选择器必须指定以下信息:
唯一标识数据库的数据库名称或者DBID
数据库主机名称
用于RMAN备份的介质簇名称
数据库备份存储选择器还可以指定以下信息:
备份的内容或者类型,例如,是否是完全备份或者增量备份
双工备份的拷贝数量
备份能够使用的磁带设备限制
备份Oracle数据库文件时,RMAN将数据库名称、内容类型以及拷贝数传递给Oracle安全备份。Oracle安全备份使用这些信息决定相应的数据库备份存储选择器。存储选择器指定了该备份使用的磁带设备以及介质簇(如果指定了的话)。
可以创建多个数据库备份存储选择器。例如,可以创建一个数据库存储选择器用于管理域中的所有数据库的数据文件备份,创建另一个选择器用于管理域中的所有数据库的归档日志备份。可以为数据文件备份指定一个磁带库,为归档日志备份指定另一个磁带库。
数据库存储选择器必须唯一。除了通配符(*)之外,更通用的设置可以匹配具体的设置。例如,假设创建了一个--dbname为db_1和db_2的存储选择器,就不能再创建一个--dbname为db_1,并且其他所有属性与前一个选择器相同的存储选择器。但是,如果创建了一个--dbname为全部(*)的存储选择器,可以再创建一个--dbname为db_1,并且其他所有属性与前一个选择器相同的存储选择器。
当使用SBT接口执行RMAN备份时,Oracle安全备份检查数据库备份存储选择器以决定它是否匹配备份作业的属性。当备份存储选择器的每个属性都匹配备份作业相应的属性时,被认为匹配。如果多个存储选择器匹配该作业,Oracle安全备份选择属性更加具体的选择器。例如,数据库名设置为db_1的备份存储选择器在数据库名设置为全部(*)的备份存储选择器之前匹配。
Oracle安全备份在管理服务器的Oracle安全备份主目录下的admin/ssel子目录中维护存储选择器信息。
4.1.3、数据库还原与恢复
通过RMAN执行的还原操作被称为Oracle数据库还原操作。4.1.4、管理数据库备份与恢复的接口
4.1.4.1、RMAN命令行客户端
rman可执行文件位于ORACLE_HOME/bin目录中。RMAN客户端可以从任何Oracle主目录中运行,不论该计算机是否是Oracle安全备份管理域中的成员。目标数据库主机必须是管理域中的成员。目标数据库使用目标主机上的Oracle安全备份SBT与管理域进行交互。4.1.4.2、Oracle EM DC 10g与11g
可以通过Oracle Enterprise Manager Database Control管理单实例数据库操作,包括备份与恢复。Database Control控制台、目标数据库以及Oracle安全备份管理服务器必须位于同一主机中。4.1.4.3、Oracle EM GC 10g
可以使用Oracle Enterprise Manager Grid Control管理多个数据库。Grid Control控制台可以运行在管理域中的任何数据库主机中。与Oracle Enterprise Manager Database Control不同,Grid Control不需要运行在管理服务器中。可以通过Grid Control管理Oracle安全备份管理域中所有数据库的SBT备份。可以在包含Grid Control资料库的数据库中创建一个集中的RMAN恢复目录。
使用Grid Control 10.2.0.2版时,如果Enterprise Manager资料库位于一个Oracle 10.2版数据库中,可以使用运行Oracle 10.1或者更早版本的主机上的Oracle安全备份软件。
4.1.5、RMAN与Oracle安全备份管理域
单主机管理域在单主机管理域中,一个主机同时担任管理服务器、介质服务器以及客户端的角色。Oracle数据库位于该主机中。图4-2演示了典型的单主机场景。
图4-2 单主机管理域数据库备份
由于数据库安装在管理服务器中,可以使用Enterprise Manager Database Control控制台执行Oracle安全备份数据库备份与还原操作。
多主机管理域
在多主机管理域中,管理服务器、介质服务器以及客户端主机可能相互独立,或者每个数据库服务器还同时作为一个介质服务器。后一个配置可以最小化基于网络的备份操作。一个管理域只能包含一个管理服务器,但是能够包含多个介质服务器和客户端。
图4-3演示了一个典型的多主机管理域,每个客户端主机运行一个Oracle数据库。在这个例子中,管理服务器和介质服务器不运行数据库。Windows上的数据库包含一个存储管理域所有数据库备份元数据的集中恢复目录。
图4-3 多主机管理域数据库备份
由于目标数据库不位于管理服务器中,不能使用Oracle Enterprise Manager Database Control执行Oracle安全备份SBT备份。但是,可以使用客户端上的Grid Control执行SBT备份操作。
4.1.6、RMAN如何访问Oracle安全备份
无论管理域配置和管理备份与恢复的前端接口如何,RMAN与Oracle安全备份SBT库的交互过程是相同的。图4-4显示了使用Oracle安全备份SBT的RMAN备份会还原操作的基本组成。图4-4 RMAN与Oracle安全备份SBT接口
使用Oracle安全备份的RMAN备份与还原操作基本过程如下:
Oracle安全备份用户通过命令行或者Oracle EM控制台启动RMAN客户端。
该Oracle安全备份用户分配一个SBT通道并运行RMAN的BACKUP或者RESTORE命令。分配通道时,在Oracle数据库中打开一个服务器会话。
数据库主机中的服务器会话通过Oracle安全备份SBT库提交备份或者还原作业请求。
Oracle安全备份创建备份或者还原作业,并为它指定一个唯一的标识符,例如sbt/15。
对于RMAN备份操作,Oracle安全备份立即尝试预订并启动适当的资源。如果资源不可用,Oracle安全备份将作业放入队列,等待资源可用。可以通过以下设置控制作业等待的时间:操作策略rmanresourcewaittime,该策略默认为forever。备份存储选择器或者RMAN参数设置可以覆盖该策略;在obtool的mkssel或者chssel命令中指定--waittime选项;RMAN参数OB_RESOURCE_WAIT_TIME。
对于RMAN还原操作,起始时间取决于操作策略类中的rmanrestorestartdelay策略的设置。
RMAN创建或者还原备份片。
对于备份,Oracle安全备份在Oracle安全备份目录中存储关于RMAN备份片的元数据。Oracle安全备份目录的存储与管理完全同RMAN恢复目录独立。Oracle安全备份存储每个备份片和相应的元数据。
4.1.7、非统一访问内存(NUMA)支持
从Oracle安全备份10.4.0.1开始,支持NUMA架构。在NUMA系统中,处理器被分组到成为节点或者区域的更小的系统中。每个节点拥有自己的处理器和共用内存。节点中的所有处理器共享共用内存。访问这些本地内存区域更快,因此提高了可用性和性能。在数据库备份或者还原操作中,Oracle影子进程管理Oracle安全备份与Oracle数据库之间的交互。影子进程装载SBT库并启动客户端的Oracle安全备份数据服务(obndmpd),执行网络I/O。Oracle影子进程和Oracle安全备份数据服务使用共用的内存区域交换数据。
在NUMA机器中,Oracle安全备份确保Oracle影子进程和Oracle安全备份数据服务运行在同一个节点上,访问相同的共用内存。
4.2、配置Oracle安全备份以使用RMAN
在Oracle安全备份中执行以下配置步骤,以结合使用RMAN:配置RMAN访问Oracle安全备份SBT。如果使用Enterprise Manager Database Control,该步骤包括在EM中注册管理服务器。
创建一个用于RMAN操作的预授权的Oracle安全备份用户。这是一个必须执行的步骤。
Oracle建议创建用于数据文件和归档重做日志的介质簇。如果没有创建介质簇,RMAN默认使用RMAN-DEFAULT介质簇。
可以选择性地配置数据库备份存储选择器或者RMAN介质管理参数。这些设置可以更细粒度地控制备份存储选择。
可选择性地将OB_IGNORE_NUMA设置为0,以禁用NUMA识别。该参数默认为1,使得Oracle安全备份能够识别NUMA。
可以通过任何Oracle安全备份接口执行以上配置任务。如果可能,本节将解释如何通过Enterprise Manager Database Control控制台执行这些配置。
4.2.1、配置RMAN访问Oracle安全备份SBT库
可以使用Enterprise Manager Database Control配置RMAN访问Oracle安全备份。只需要指定Oracle安全备份主目录,RMAN自动查找SBT库。默认情况下,RMAN在一个与平台相关的默认位置查找SBT库。在Linux和UNIX中,默认库文件名为/lib/libobk.so,扩展名随着平台变化:.so,.sl,.a等等。在Windows中,默认库文件名为%WINDIR%\System32\orasbt.dll。
在Linux和UNIX上安装Oracle安全备份是,安装程序自动将SBT库复制到Oracle安全备份主目录的lib子目录中,并在/lib或者/usr/lib目录中创建一个到SBT库的符号链接。
默认情况下,RMAN在分配SBT通道时搜索标准路径并装载SBT库。可以在分配通道或者配置通道时,通过SBT_LIBRARY介质管理参数覆盖SBT库位置。
4.2.2、创建预授权的Oracle安全备份用户
Oracle安全备份只信任预授权用户提交的SBT请求。该预授权的Oracle安全备份用户必须满足两种需求。首先,用户必须映射到能够访问被备份或者还原的文件的系统权限。该用户只能从可以访问这些文件的主机上执行RMAN操作。其次,该用户必须被赋予一个拥有以下权限的Oracle安全备份用户类:access Oracle backups(设置为owner、class或者all);perform. Oracle backups and restores。在一个主机上,只能有一个Oracle安全备份用户被预授予RMAN备份与还原操作权限。数据库可以拥有多个执行备份或者还原操作的RMAN用户,但是Oracle安全备份只能拥有一个预授权的用户用于该服务器。
也可以预授权一个Oracle安全备份用户用于命令行(obtool)操作。这在使用备份和还原脚本时非常有用。
4.2.2.1、Oracle安全备份如何预授权SBT备份
图4-5演示了一个预授权在特定主机上执行RMAN操作的Oracle安全备份用户提交备份或者还原操作到Oracle安全备份的基本过程。图4-5 预授权的数据库备份与还原操作
执行过程如下:
启动RMAN并分配一个SBT通道,Oracle数据库启动一个服务器会话。
服务器会话使用SBT库与本机上的obproxyd后台进程进行交互。
本地obproxyd后台进程确定运行服务器会话的操作系统用户。假设本例中操作系统用户为oracle,运行在Linux主机brhost2中。
本地obproxyd后台进程同管理服务器的observiced后台进程检查该操作系统用户信息。如果此主机和操作系统的该用户被预授予一个Oracle安全备份用户,成功登录Oracle安全备份。例如,假设主机brhost2上的oracle操作系统用户被预授予Oracle安全备份用户obuser。同时假设obuser是oracle用户类(默认赋予了perform. Oracle backups and restores权限)的成员。
服务器会话使用Oracle安全备份用户备份或者还原文件。通过SBT提交的Oracle安全备份操作使用定义的操作系统用户访问主机文件。在图4-5示例中,备份与还原操作以主机brhost2的oracle操作系统账户运行。
4.2.2.2、配置RMAN预授权
可以在安装Oracle安全备份软件的过程中,或者在安装之后使用Oracle安全备份Web工具或obtool的mkuser命令,配置一个拥有执行Oracle数据库文件磁带备份的预授权的Oracle安全备份用户。在Linux或者UNIX中,要在安装过程中创建一个预授权的Oracle安全备份用户,必须设置一个obparameters参数为create preauthorized oracle user。
在Windows中,要在安装过程中创建一个预授权的Oracle安全备份用户,必须在选择管理服务器特性时启用Create “oracle” user功能。
要在安装之后配置一个预授权的Oracle安全备份用户,使用Web工具或者obtool的mkuser命令。示例4-1使用mkuser创建一个名为preauth_user的用户,并指定了oracle用户类。示例使用--preauth将preauth_user映射到主机brhost2上的Linux或者UNIX用户oracle。
示例4-1 预授权操作系统用户以执行RMAN备份
mkuser preauth_user --class oracle --preauth brhost2:oracle+rman
4.2.3、创建RMAN备份的介质簇
Oracle建议为RMAN操作创建专用的介质簇,否则,Oracle安全备份将会使用默认的介质簇。RMAN使用的默认介质簇为RMAN-DEFAULT。不能删除或者重命名RMAN-DEFAULT介质簇,但是能够通过Web工具或者obtool修改它的某些属性。
为归档日志和数据文件备份集创建不同的介质簇是有益处的。可以使用EM、Oracle安全备份Web工具或者obtool的mkmf命令创建介质簇。
创建介质簇时,指定一个带卷过期策略,它决定了该介质簇中的带卷何时能够被复写和重用。一个介质簇中带卷可以使用内容管理的过期策略或者时间管理的过期策略。
内容管理的带卷只能用于RMAN操作。时间管理的带卷可以同时用于RMAN和文件系统备份与还原操作。因此,时间管理的带卷可能包含文件系统备份和RMAN备份片的混合。
注意:如果将RMAN备份存储到时间管理的带卷中,有可能带卷过期并重用,而RMAN资料库报告该带卷上的备份片仍然可用。此时,必须使用RMAN的CROSSCHECK命令解决这种差异问题。
4.2.4、在EM中创建数据库备份存储选择器
可以使用Oracle Enterprise Manager Database Control创建数据库备份存储选择器。Database Control赋予选择器一个系统定义的名称。要为存储器指定自定义的名称,使用obtool的mkssel命令。4.2.5、设置RMAN中的介质管理参数
如果使用了Oracle安全备份数据库存储选择器,不需要在RMAN中设置介质管理参数。但是,在某些情况下,可能想要通过RMAN参数覆盖数据库存储选择器的设置。可以通过以下方式设置RMAN介质管理参数:
环境变量,通过CONFIGURE或者ALLOCATE CHANNEL命令的PARMS选项的ENV参数指定
RMAN的SEND命令
可以在RMAN备份和还原作业中使用以下Oracle安全备份参数:
OB_MEDIA_FAMILY[ _n ],定义备份作业能够使用的介质簇。
OB_DEVICE[ _n ],定义备份能够使用的磁带驱动器。
OB_RESOURCE_WAIT_TIME,指定备份或者还原作业等待资源可用的时间长度。
OB_ENCRYPTION,控制Oracle安全备份加密。
OB_RESTORE_DEVICE,指定还原操作使用的磁带设备。如果指定设备没有定义,Oracle安全备份将会使用任何可用的设备。
OB_IGNORE_NUMA,控制NUMA识别。默认值为1,即允许NUMA。参见4.1.7。
一般来说,介质管理参数会覆盖数据库备份存储选择器中相应的设置。
执行以下操作设置RMAN数据库备份的介质管理参数:
完成“4.4 结合RMAN与Oracle安全备份执行备份”中的步骤1至步骤9。
点击Edit RMAN Script。出现Schedule Customized Backup:Review:Edit RMAN Script页面。
在主窗口中,修改脚本以使用介质管理参数。例如,假设备份脚本如下:
backup device type sbt database include current controlfile;
backup device type sbt archivelog all not backed up;
要配置备份使用my_mf介质簇,可以修改脚本如下:
run
{
allocate channel c1 device type sbt
parms 'ENV=(OB_MEDIA_FAMILY=my_mf)';
backup database include current controlfile;
backup archivelog all not backed up;
}
点击Submit Job。出现Status页面。
4.3、RMAN备份主作业与从属作业
当开始数据库备份作业时,Oracle安全备份解释RMAN命令并为数据库创建一个从属作业。所有的Oracle安全备份RMAN备份至少包含一个从属作业。但是如果需要生成单独的作业,Oracle安全备份将会创建多个从属作业。例如,将数据库备份两个相同的副本到单独的驱动器,则主作业将会产生两个从属作业。以下示例演示了一个数据库备份作业和它的两个从属备份作业。此时存在两个备份副本被写入单独的磁带驱动器。
Recovery Manager: Release 10.2.0.2.0 - Production on Wed Jun 25 12:18:32 2008
Copyright (c) 1982, 2008, Oracle. All rights reserved.
RMAN-06568: connected to target database: TSTVW1 (DBID=1586108579, not open)
RMAN-06009: using target database control file instead of recovery catalog
RMAN> run {
2> set backup COPIES 2 ;
3> backup tablespace tbs_mult ;
4> }
5>
RMAN-03023: executing command: SET BACKUP COPIES
RMAN-03090: Starting backup at 25-JUN-08
RMAN-08030: allocated channel: ORA_SBT_TAPE_1
RMAN-08500: channel ORA_SBT_TAPE_1: sid=93 devtype=SBT_TAPE
RMAN-08526: channel ORA_SBT_TAPE_1: Oracle Secure Backup
RMAN-08008: channel ORA_SBT_TAPE_1: starting full datafile backupset
RMAN-08010: channel ORA_SBT_TAPE_1: specifying datafile(s) in backupset
RMAN-08522: input datafile fno=00004 name=/jfersten_tstvw1/oracle/dbs/tbs_mult.dat
RMAN-08038: channel ORA_SBT_TAPE_1: starting piece 1 at 25-JUN-08
RMAN-08053: channel ORA_SBT_TAPE_1: finished piece 1 at 25-JUN-08 with 2 copies
and tag TAG20080625T121838
RMAN-08503: piece handle=06jjqgcu_1_1 comment=API Version 2.0,MMS Version 10.2.0.0
RMAN-08503: piece handle=06jjqgcu_1_2 comment=API Version 2.0,MMS Version 10.2.0.0
RMAN-08540: channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:11:06
RMAN-03091: Finished backup at 25-JUN-08
Recovery Manager complete.
主作业为sbt/8:
ob> lsj -l --log sbt/8
sbt/8:
Type: database tstvw1 (dbid=1586108579)
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: (administrative server)
Attempts: 0
Log:
2008/06/25.12:29:37 Job completed successfully.
从属作业为sbt/8.1和sbt/8.2:
ob> lsj -l sbt/8.1
sbt/8.1:
Type: datafile backup
Backup piece: 06jjqgcu_1_1
Family: verylongmediafamilyname
Encryption: off
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: brhost3
Attempts: 1
ob> lsj -l sbt/8.2
sbt/8.2:
Type: datafile backup
Backup piece: 06jjqgcu_1_2
Family: verylongmediafamilyname
Encryption: off
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: brhost3
Attempts: 1
在作业描述中,Oracle安全备份根据RMAN备份类型决定作业名称。有效的类型包括归档日志、数据库、数据文件以及控制文件。Oracle安全备份为每个RMAN作业指定一个标识符,前缀为主作业ID,加上一个点号(.),然后是一个唯一的小数字。例如,15.1可能是计划作业15的一个从属作业。以下示例显示了一个典型的lsj命令输出,包含各种Oracle安全备份RMAN备份:
sbt/1.1 none archivelog backup completed successfully at 2008/06/25.12:04
sbt/2 none database tstvw1 completed successfully at 2008/06/25.12:04
sbt/2.1 none controlfile autobackup completed successfully at 2008/06/25.12:04
sbt/3 none database tstvw1 completed successfully at 2008/06/25.12:05
sbt/3.1 none datafile backup completed successfully at 2008/06/25.12:05
sbt/4 none database tstvw1 completed successfully at 2008/06/25.12:06
sbt/4.1 none restore piece '03jgj1_1' completed successfully at 2008/06/25.12:06
sbt/5 none database tstvw1 completed successfully at 2008/06/25.12:06
sbt/5.1 none incremental backup completed successfully at 2008/06/25.12:06
sbt/6 none database tstvw1 completed successfully at 2008/06/25.12:12
sbt/6.1 none datafile backup completed successfully at 2008/06/25.12:12
sbt/7 none database tstvw1 completed successfully at 2008/06/25.12:17
sbt/7.1 none restore piece '05jgj0_1' completed successfully at 2008/06/25.12:17
sbt/8 none database tstvw1 completed successfully at 2008/06/25.12:29
sbt/8.1 none datafile backup completed successfully at 2008/06/25.12:29
sbt/8.2 none datafile backup completed successfully at 2008/06/25.12:29
4.4、结合RMAN与Oracle安全备份执行备份
配置完RMAN之后,执行RMAN备份的过程与Oracle数据库备份与恢复用户指南中的过程相同。本节描述如何使用EM通过Oracle安全备份SBT执行数据库备份。执行以下操作通过Database Control备份数据库:
使用拥有数据库管理员权限的Oracle安全备份用户登录Oracle Enterprise Manager Database Control。
点击Availability。出现Availability子页面。
在Manage部分,点击Schedule Backup。出现Database Instance:database_name > Schedule Backup页面。
执行以下操作:在Customized Backup部分,选择Whole Database。该选项指定一个数据库文件和归档日志的在线备份;在Host Credentials部分,在Username和Password项输入能够访问目标数据库的一个Oracle安全备份用户的认证信息;如果想要Database Control记住认证信息,选择Save as Preferred Credential;点击Schedule Customized Backup。出现Schedule
Customized Backup:Options页面。
在Backup Type部分选择Full Backup。
要想使用RMAN加密(非Oracle安全备份加密)进行备份加密,选择Secure the backup using Recovery Manager encryption。执行以下操作:在Encryption Algorithm列表中选择一个加密算法;选择一个加密模式。同时选择两种加密模式能够在还原备份时灵活使用Oracle数据库加密钱夹或者口令。如果选择口令保护加密,在Password和Confirm Password项输入一个口令。
对于RMAN加密,数据库管理加密密钥。对于Oracle安全备份加密,Oracle安全备份管理文件系统和数据库备份的密钥。
点击Next。出现Schedule Customized Backup:Settings页面。
点击View Default Settings查看当前备份的设置。点击Override Current Settings进入备份设置页面,修改当前的磁带驱动器数量和磁带备份类型设置。点击备份设置页面的Override按钮修改当前备份的介质簇和/或磁带驱动器。
选择Tape选项并点击Next。出现Schedule Customized Backup:Schedule页面。
在Job部分,该页面在Job Name项显示了一个作业名称,在Job Description项显示了备份类型。选择一个计划类型,可选项包括:
One Time(Immediately)
One Time(Later)
Repeating
点击Next。出现Schedule Customized Backup:Review页面。
检查备份特性,并点击Submit Job。出现Status页面。
点击View Job监控备份进度。出现Execution:database_name页面。刷新该页面直到出现Backup链接。
点击Backup。出现Step:Backup页面。刷新页面以显示该备份作业的RMAN输出。
4.5、结合RMAN与Oracle安全备份执行恢复
配置完RMAN之后,还原数据库文件的过程与Oracle数据库备份与恢复用户指南中的过程相同。关于使用Oracle Database Control还原与恢复完整数据库的逐步指导,参见以下URL:http://www.oracle.com/technology/obe/11gr1_2day_dba/backup/backup.htm#t6。4.6、RMAN与Oracle安全备份加密
使用Oracle安全备份时可以通过以下两种方式之一进行数据库备份加密:使用RMAN备份加密,可以加密数据库中的数据。该选项可以用于Oracle数据库10.2之后的版本。
使用Oracle安全备份加密,可以加密RMAN通过SBT传输到Oracle安全备份之后的数据。该选项从Oracle 9i之后可用。由于加密发生在数据库之外,数据在通过网络传输或者写入本地附属磁带设备之前,在服务器中进行加密。Oracle安全备份可以用于RMAN以及文件系统备份。
4.7、Oracle安全备份中的RMAN备份元数据
Oracle安全备份维护了关于所有RMAN备份与文件系统备份的元数据。本节描述如何访问Oracle安全备份目录中的RMAN元数据。4.7.1、关于RMAN与Oracle安全备份元数据
Oracle安全备份在管理服务器中维护了一份关于Oracle安全备份作业的元数据目录。可以使用Web工具显示关于每个备份片,即Oracle安全备份Web工具中的备份映像,的目录元数据。还可以使用obtool中的lsjob、catxcr以及lspiece命令。4.7.1.1、RMAN磁带备份的过期策略
可以将RMAN备份存储到使用内容管理或者时间管理的过期策略的带卷中。如果使用内容管理的带卷,需要使用RMAN的DELETE OBSOLETE命令在RMAN资料库中将备份片标记为已删除。作为响应,Oracle安全备份将会更新目录,以指示备份片已删除。这样RMAN资料库和Oracle安全备份目录都会显示备份片已删除。注意:如果使用内容管理的带卷,RMAN保留策略决定了何时过期。如果使用控制文件作为RMAN资料库,记录保留时间参数必须大于等于备份需要保留的时间。
Oracle不推荐使用Oracle安全备份的rmpiece命令删除磁带中的备份片,因为这样的话,RMAN元数据不能正确反映磁带内容。这种差异也可能由于时间管理的带卷中的RMAN备份片过期,或者强制重写带卷而产生。使用RMAN的CROSSCHECK命令解决Oracle安全备份目录与RMAN资料库的差异问题。
4.7.2、显示Oracle安全备份中的RMAN作业信息
使用Oracle安全备份SBT执行的RMAN备份可以被所有Oracle安全备份作业管理命令控制。使用RMAN备份或者还原数据库时,作业包含了数据库名称。示例4-2显示了关于数据库orcl的备份与还原作业的输出样例。示例中的作业ID包含了oracle,因为作业由oracle用户执行。
示例4-2 数据库备份与还原作业
ob> lsjob --all
Job ID Sched time Contents State
---------------- ----------- ------------------------------ ---------------------------------------
oracle/1 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:29
oracle/1.1 none datafile backup completed successfully at 2008/08/11.11:29
oracle/2 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:56
oracle/2.1 none datafile backup completed successfully at 2008/08/11.11:56
oracle/3 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:57
oracle/3.1 none restore piece '06grqejs_1_1' completed successfully at 2008/08/11.11:57
4.7.2.1、显示作业记录
作业记录(Job Transcripts)包含了关于Oracle安全备份作业的详细信息。示例4-3显示了一个规定日志备份的部分记录。该备份使用了RMAN-DEFAULT介质簇。示例4-3 一个归档日志备份作业的记录
ob> catxcr --head 22 sbt/6.1
2008/06/28.13:01:04 ______________________________________________________________________
2008/06/28.13:01:04
2008/06/28.13:01:04 Transcript. for job sbt/6.1 running on brhost1
2008/06/28.13:01:04
Volume label:
Volume tag: ADE202
Volume ID: RMAN-DEFAULT-000002
Volume sequence: 1
Volume set owner: root
Volume set created: Tue Jun 28 13:01:30 2008
Media family: RMAN-DEFAULT
Volume set expires: never; content manages reuse
Archive label:
File number: 1
File section: 1
Owner: root
Client host: brhost1
Backup level: 0
S/w compression: no
Archive created: Tue Jun 28 13:01:30 2008
4.7.2.2、显示SBT错误
如果SBT会话产生了错误,Oracle安全备份尝试将错误描述发送到管理服务器,存储到作业记录中。数据库将SBT错误写入跟踪文件sbtio.log中,或者用户定义的文件中。通常,sbtio.log位于Oracle主目录的rdbms/log子目录中。4.7.3、显示备份片信息
Oracle安全备份在备份片级别上维护了RMAN备份信息。可以通过Oracle安全备份Web工具的备份映像,或者obtool命令查看这些信息。虽然Oracle安全备份能够查看备份片信息,但是备份集(备份片的逻辑组合)信息只能通过RMAN获得。Oracle安全备份中的一个RMAN备份片代表一个备份映像。可以使用obtool的lspiece命令显示Oracle安全备份目录中记录的备份片信息。示例4-4显示了lspiece的输出示例。
示例4-4 显示备份片
ob> lspiece --long
Backup piece OID: 104
Database: ob
Database ID: 1566254457
Content: archivelog
Copy number: 0
Created: 2008/06/28.13:01
Host: brhost1
Piece name: 05go3tgd_1_1
Backup piece OID: 105
Database: ob
Database ID: 1566254457
Content: archivelog
Copy number: 0
Created: 2008/06/28.13:02
Host: brhost1
Piece name: 06go3ti5_1_1
4.8、在Oracle RAC环境中结合使用RMAN与Oracle安全备份
可以结合使用Oracle安全备份SBT库与RMAN备份Oracle RAC集群数据库。4.8.1、在Oracle RAC环境中安装Oracle安全备份
Oracle推荐在集群的每个节点上都安装Oracle安全备份,将节点配置为客户端和/或介质服务器。将所有节点加入管理域可以保护节点的本地文件。Oracle安全备份处理RAC客户端的文件系统备份与处理其他客户端主机的备份相同。图4-6显示了一个包含三节点RAC系统的管理域示例,每个节点配置为一个客户端。在RAC环境中,RMAN能够还原备份片到安装了Oracle安全备份软件的任一节点中,无论备份片由哪一个节点创建。
图4-6 在RAC集群环境中结合使用RMAN与Oracle安全备份
4.8.2、网络备份与本地备份
为了性能考虑,区分Oracle RAC环境下的网络备份与本地备份的配置是非常重要的。在RAC环境下的RMAN备份能够根据工作负载分布动态进行分配。该技术在Oracle RAC数据库使用Oracle安全备份通过网络进行备份时有效,因为Oracle安全备份无论在哪一个节点执行客户端备份都相同。如果RAC环境中的一个节点是介质服务器,使用该节点在本地访问的磁带设备上创建备份将会更加高效。该技术避免了网络带宽的分配,而在配置为客户端的RAC节点上执行备份时需要网络带宽。
可以配置RMAN备份从指定节点执行。Oracle推荐执行RMAN永久配置,这样只需要配置一次,并且能够影响该数据库的所有备份与还原操作。
在以下示例中,有3个磁带驱动器附属于主机hostA,另外2个磁带驱动器附属于hostB。配置步骤如下:
连接到RAC环境中的任一节点以配置RMAN参数。
设置并行度。
配置通道(3个)/connect/SID hostA。
配置通道(3个)/connect/SID hostB。
在以上示例中,建立了所需的6个通道,每个主机3个。该配置应用于每个备份与还原操作,除非覆盖该设置。可以连接到RAC环境中的任何节点启动RMAN操作,操作只在两个已配置主机上执行。
4.8.3、双工备份
可以双工备份操作,每个使用一个单独的卷组,保留一个卷组在场以便使用,另一个卷组离场存储用于灾难恢复。为了便于管理,每个双工的备份操作可以由它自己的数据库存储选择器定义,并且写入自己单独的介质簇。数据库备份存储选择器是用户定义的用于Oracle数据库备份的Oracle安全备份介质策略。它们定义了介质簇、磁带设备、资源等待时间以及备份的副本数量。一个数据库存储选择器可以用于管理域中的所有数据库的备份,也可以为每个数据库定义多个存储选择器。
在以下示例中,创建了名为ssel_1和ssel_2的两个数据库存储选择器。它们都备份主机host_name上的所有数据库的全部内容。但是ssel_1使用介质簇mf_1,而ssel_2使用介质簇mf_2:
ob> mkssel --dbid * --host host_name --content * --family mf_1 -- copynum 1 ssel_1
ob> mkssel --dbid * --host host_name --content * --family mf_2 -- copynum 2 ssel_2
如果使用RMAN双工备份和PARALLELISM,可用磁带驱动器数量必须满足并发的2个备份副本。如果在上例中的通道配置将PARALLELSIM设置为2,备份操作需要4个磁带驱动器(2个备份副本乘以PARALLELSIM)。
如果一个备份副本的磁带驱动器不可用,另一个副本也不能执行。此外,如果一个备份副本的备份流失败,另一个副本也会失败。
这种情况下还原操作只需要2个磁带驱动器,因为还原操作不是双工的。
相关文章推荐
- Oracle Secure Backup管理员指南 第3章 备份配置与介质设置
- Oracle跨库链接操作
- oracle 判断列是否在数据库中存在
- oracle 判断某个表是否存在
- oracle 判断某个表是否存在
- oracle 判断列是否在数据库中存在
- Oracle跨库链接操作
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- Oracle 11g 在使用时应该启动哪些服务?
- Oracle创建表空间、创建用户以及授权
- Oracle 11g 在使用时应该启动哪些服务?
- Oracle创建表空间、创建用户以及授权
- 如何判断Oracle中某个字段的值是否重复
- 如何判断Oracle中某个字段的值是否重复
- 当你安装完Oracle数据库后,发现自己忘记密码了?!
- Oracle中date数据类型插入格式
- Oracle中添加虚拟列(emp是oracle自带表)
- Oracle ORA-12899
- 当你安装完Oracle数据库后,发现自己忘记密码了?!