配置RMAN备份的环境

RMAN为执行基本备份和恢复需要的大部分参数提供了合理的缺省值。可以修改这些缺省参数的值或为某个特定的会话覆写这些值。

当贯彻基于RMAN的备份策略时,如果可以了解大部分常用的配置,就可以更高效地使用RMAN。

为了简化RMAN的持续使用,可以为每个目标数据库设置几个持久性的配置设置。这些设置控制RMAN行为的多个方面。例如,可以配置备份保留策略,备份的缺省目的地,缺省的备份设备类型,等等。可以使用SHOW和CONFIGURE命令来查看和更改RMAN配置。

这部分章节讲解RMAN配置是什么和如何使用CONFIGURE命令来更改备份和恢复环境的RMAN缺省行为。同时也介绍主要的可用设置和它们常用的值。


1.显示和清除持久的RMAN配置

可以使用SHOW命令来显示目标数据库的RMAN配置设置的当前值。可以查看这些命令当前是否设置为它们的缺省值。

查看和更改CONFIGURE命令设置:
1)启动RMAN,连接到目标数据库和恢复目录(如果有使用的话)。
2)运行RMAN的SHOW命令。
例如,以下示例的SHOW ALL命令的输出包含已经更改的参数和设置为缺省值的参数。配置显示为需要用来重建配置的一系列RMAN命令。可以保留这些输出到文本文件,然后使用这个命令文件在相同或不同的数据库上重建配置。

RMAN> SHOW ALL;
RMAN configuration parameters for database with db_unique_name
PROD1 are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; #default
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(OB_DEVICE=tape1)';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT'
OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/disk1/oracle/dbs/snapcf_ev.f'; #default

可以与特定的配置名称一起使用SHOW命令。例如,查询保留策略和缺省的设备类型:
SHOW RETENTION POLICY;
SHOW DEFAULT DEVICE TYPE;

3)可选地,使用CONFIGURE … CLEAR命令来将任何设置还原为它的缺省值,如下所示:
CONFIGURE BACKUP OPTIMIZATION CLEAR;
CONFIGURE RETENTION POLICY CLEAR;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;


2.配置缺省的备份设备:磁盘或SBT

没有指定目的地设备类型的备份会指向配置的缺省设备。RMAN预配置使用磁盘作为缺省设备类型。额外的配置是不必要的。

你可能需要更改缺省的设备类型从磁盘到磁带,或从磁带更改回磁盘。下表列出了配置缺省设备的命令。

命令解释
CONFIGURE DEFAULT DEVICE TYPE TO DISK指定缺省时备份到磁盘。如果启用了恢复区域,那么备份位置缺省为快速恢复区域。否则,备份位置缺省为磁盘上操作系统特定的目录。当备份到磁盘时,数据库文件的逻辑块大小必须是目的地设备的物理块大小的整数倍。例如,块大小为2KB的磁盘类型设备,只能作为逻辑块大小2KB,4KB,6KB等的数据库备份的目的地使用。大部分磁盘驱动器的物理块大小为512byte,所以这个限制几乎不影响备份到磁盘驱动器。然而,当备份到可写的DVD或有更大物理块大小的设备时,可能会遇到这种限制。
CONFIGURE DEFAULT DEVICE TYPE TO sbt指定缺省时备份到磁带。当RMAN可以与介质管理器通讯时,可以配置RMAN备份到磁带,指定SBT为缺省的设备类型。

总是可以通过使用BACKUP命令的DEVICE TYPE子语句来覆写缺省的设备,如下所示:
BACKUP DEVICE TYPE sbt DATABASE;
BACKUP DEVICE TYPE DISK DATABASE;


3.配置缺省的备份类型:备份集或拷贝

BACKUP命令可以创建备份集或映像拷贝。对于磁盘,可以使用命令CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO,配置RMAN的缺省备份类型为备份集或映像拷贝。

注:因为RMAN只能写映像拷贝到磁盘,所以磁带的备份类型只能是备份集。

缺省的磁盘备份类型是没有压缩的备份集。

RMAN使用二进行压缩来创建备份集,可以在子语句BACKUP TYPE TO … BACKUPSET中指定COMPRESSED选项,配置RMAN在设备类型上缺省使用压缩备份集。使用CONFIGURE DEVICE TYPE和指定其它期望的设置参数,但忽略关键字COMPRESSED来禁用压缩。

以下示例配置磁盘备份的备份类型为拷贝和备份集:
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY; # image copies
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET; # uncompressed

以下示例配置备份类型为压缩备份集:
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE DEVICE TYPE sbt BACKUP TYPE TO COMPRESSED BACKUPSET;


4.配置通道

请参考章节配置通道


5. 配置控制文件和服务器参数文件自动备份

请参考章节配置控制文件和服务器参数文件的自动备份


6. 配置快速恢复区域(fast recovery area)

请参考章节配置快速恢复区域(fast recovery area)


7. 配置备份保留策略(RETENTION POLICY)

请参考章节配置备份保留策略(RETENTION POLICY)


8. 配置备份优化(BACKUP OPTIMIZATION)

请参考章节配置备份优化(BACKUP OPTIMIZATION)


9. 配置归档redo日志删除策略(DELETION POLICY)

请参考章节配置归档redo日志删除策略(DELETION POLICY)


10. 配置高级的备份选项

请参考章节配置高级的备份选项


11.配置辅助实例的数据文件名称

当使用RMAN执行数据文件表空间时间点恢复(TSPITR)或数据传输等操作时,可能需要设置辅助实例中的数据文件的名称。在启动TSPITR或数据库复制之前设置这些名称。

命令如下,其中datafileSpec通过原始文件名称或数据文件编号指定某些数据文件,filename是指定文件的新路径。
CONFIGURE AUXNAME FOR datafileSpec TO ‘filename’;

例如,为数据文件2配置新的辅助实例名称:
CONFIGURE AUXNAME FOR DATAFILE 2 TO ‘/newdisk/datafiles/df2.df’;

和其它设置一样,CONFIGURE命令跨RMAN会话保持设置直到使用CONFIGURE … CLEAR清除配置为止,如下所示:
CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR;

如果执行TSPITR或运行DUPLICATE命令,那么通过使用CONFIGURE AUXNAME,可以预配置辅助数据库要使用的文件名称而不需要在过程中手动指定辅助文件名称。

当使用DUPLICATE命令重命名文件名称,CONFIGURE AUXNAME是SET NEWNAME命令的可替代方法。不同之处是在第一次设置AUXNAME之后,当执行另外一个DUPLICATE命令时不需要重置文件名称;AUXNAME设置一直生效直到执行CONFIGURE AUXNAME … CLEAR为止。相反,在每次重命名文件时必须重新执行SET NEWNAME命令。


12.配置快照控制文件位置

当RMAN需要控制文件的读一致的版本时,它创建一个临时的快照控制文件。当与恢复目录重新同步或对当前的控制文件做备份时,RMAN需要一个快照控制文件。

快照控制文件的缺省位置是平台特定的,取决于每个目标数据库的Oracle家目录。例如,在Linux平台上缺省的文件名称是$ORACLE_HOME/dbs/snapcf_@.f。如果为目标数据库配置了快速恢复区域,那么快照控制文件的缺省位置不是快速恢复区域。

查看快照控制文件的位置:

可以通过运行SHOW命令查看当前的控制文件位置。

以下示例显示快照控制文件位置的缺省值:
RMAN> SHOW SNAPSHOT CONTROLFILE NAME;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/dbs/snapcf_trgt.f’; #default

以下示例显示快照控制文件有一个非缺省的文件名称:
RMAN> SHOW SNAPSHOT CONTROLFILE NAME;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/oradata/trgt/snap_trgt.ctl’;

设置快照控制文件的位置:
使用CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'filepath’命令来更改快照控制文件的名称和路径。随后RMAN创建的快照控制文件使用指定的文件名称和路径。

在ORACLE RAC环境中,快照控制文件的位置必须在共享存储上,即可以被所有Oracle RAC实例访问的存储。

配置快照控制文件的位置示例:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/oradata/trgt/snap_trgt.ctl’;

也可以设置快照控制文件的名称为裸设备。

运行CONFIGURE SNAPSHOT CONTROLFILE NAME CLEAR命令来重置快照控制文件的位置为缺省值。


13.配置RMAN与共享服务器一起使用

RMAN不能通过共享服务器分配器(shared server dispatcher)来连接到目标数据库。RMAN要求一个专用(dedicated)的服务器进程。

如果为共享服务器配置了目标数据库,那么必须更改Oracle Net配置为RMAN连接提供专用的服务器进程。

当为共享服务器配置了目标数据库时,为了确保RMAN不连接到分配器,RMAN使用的网络服务名称必须在连接字符串的CONNECT_DATA属性中包含(SERVER=DEDICATED)。

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/dbhome/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-cluster-scan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl. com)
    )
  )

不同系统之间的Oracle Net配置变化很大。下面的过程只阐述一种方法。这个场景假设在tnsnames.ora文件中的服务名称使用共识服务器架构连接到一个目标数据库,inst1是SERVICE_NAMES初始化参数的值:

inst1_shs =
(DESCRIPTION=
  (ADDRESS=(PROTOCOL=tcp)(HOST=inst1_host)(port=1521))
  (CONNECT_DATA=(SERVICE_NAME=inst1)(SERVER=shared))
)

注:从Oracle数据库19c开始,客户使用的SERVICE_NAMES参数已经被弃用。它可能在将来的版本中不再受支持。为了管理服务,Oracle建议使用SRVCTL或GDSCTL命令行工具,或DBMS_SERVICE包。

和共享服务器一起使用RMAN:
1) 在tnsnames.ora文件中创建网络服务名称,连接到非共享的SID。例如:

inst1_ded =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=inst1_host)(port=1521))
(CONNECT_DATA=(SERVICE_NAME=inst1)(SERVER=dedicated))
)

2)启动SQL*Plus和同时使用共享服务器和专用服务器服务名称连接来确认每个会话的模式。
例如,以SYSBACKUP或SYSDBA权限连接到inst1_ded,然后执行以下SELECT语句:

SQL> SELECT SERVER FROM V$SESSION
  2  WHERE SID = (SELECT DISTINCT SID FROM V$MYSTAT);

SERVER
---------
DEDICATED

以SYSBACKUP或SYSDBA权限连接到inst1_shs,然后执行以下SELECT语句:

SQL> SELECT SERVER FROM V$SESSION
  2  WHERE SID = (SELECT DISTINCT SID FROM V$MYSTAT);

SERVER
---------
SHARED

3)启动RMAN,使用专用服务名称连接到目标数据库。


14.启用丢失写检测

当I/O子系统告知块写已经完成但写并没有在持久的存储中发生时,数据块丢失写发生。在随后读取块时,I/O子系统返回数据块的一个失效的版本,它可能会用来更新数据库的其它块,因此损坏数据。

可以设置DB_LOST_WRITE_PROTECT初始化参数为TYPICAL或FULL,这样数据库记录缓冲区缓存块读在redo日志中。缺省的设置是NONE。当参数设置为TYPICAL时,实例在redo日志中为读写表空间记录缓冲区缓存读,但不记录只读表空间。当设置为FULL时,实例也记录只读表空间的读。TYPICAL模式的性能消耗大约是5-10%,FULL模式会更高。

当和Data Guard一起使用时,丢失写检测最有效。在这种情况中,同时在主备数据库中设置DB_LOST_WRITE_PROTECT参数。当在备数据库管理恢复过程中应用redo,它读取相应的数据块,然后将SCN与redo日志中的SCN进行比较。如果主数据库的数据块的SCN比备数据库的SCN低,那么它检测到主数据库上的丢失写,然后报外部错误ORA-752。如果SCN更高,它检测到备数据库上的丢失写,然后报内部错误(ORA-600[3020])。在这种情况中,备数据库将故障的原因写在alert日志和trace文件中。

为了修复主数据库上的丢失写,必须发起failover到备数据库。为了修复备数据库的丢失写,必须重建整个备数据库或只还原受到影响的文件备份。

当不使用Data Guard时,启用写丢失检测也是有用的。在这种情况中,可以以两种方式遇到丢失写:在正常数据库操作或介质恢复过程中。在第一种情况中,没有直接的方式来检测到错误。间接的征兆比如不一致的表不能明确地跟踪到丢失写。如果保留着在怀疑的丢失写之前做的备份,那么可以还原这个备份到另外一个位置和恢复它。为了诊断这个问题,恢复数据库或表空间到失效的块读的SCN,就会产生丢失写错误(ORA-752)。

当在介质恢复时遇到丢失写错误,唯一的响应就是以RESETLOGS选项打开数据库。数据库在一致的状态,但所有在RESETLOGS SCN之后的数据都丢失了。如果恢复在数据库创建之后做的备份,不能保证其它失效的块没有损坏数据库。这种可能性存在,因为还原的备份可能是在先前的丢失写之后做的。为了保证没有丢失写损坏了数据库,必须从数据库创建时进行介质恢复,但对于大部分数据库环境来说这不是一个可行的策略。


15.启用影子丢失写保护

影子丢失写保护提供了更快的检测和对数据块丢失重写立即响应,因此最小化数据丢失和数据库修复时间。使用影子丢失写保护备数据库不是强制要求的。

当I/O子系统告知块写已经完成但写并没有在持久的存储中发生时,数据块丢失写发生。在随后读取块时,I/O子系统返回数据块的一个失效的版本,它可能会用来更新数据库的其它块,因此损坏数据。影子丢失写保护使用影子表空间来只存储跟踪数据文件的SCN。当跟踪的数据块从磁盘读出时,影子丢失写保护通过比较影子表空间中的块的SCN和正在读的块的最近写的SCN来检测丢失写。

影子丢失写保护可以在数据库级别,PDB级别,表空间级别和数据文件级别启用。数据库的兼容级别必须是18.0.0或更高。

使用影子丢失写保护:
1) 使用CREATE BIGFILE TABLESPACE命令和LOST WRITE PROTECTION子语句为影子丢失写保护创建一个或多个影子表空间。
2) 在要求的级别启用影子丢失写保护。使用ALTER命令和ENABLE LOST WRITE PROTECTION子语句来启用影子丢失写保护。

当影子丢失写保护启用时,RMAN检查正在读取的块来检测丢失写。如果发现任何丢失写,会显示错误,备份操作将会终止。

注:影子丢失写保护和使用初始化参数DB_LOST_WRITE_PROTECT配置的丢失写保护不相关。



来源:《Oracle Database Backup and Recovery User’s Guide,19c》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RMAN(Recovery Manager)是Oracle数据库管理工具中用于备份和恢复数据库的关键组件。它提供了可靠和高效的备份和恢复选项,可以自动化执行备份任务。 RMAN自动备份脚本是一种用于自动调度和执行RMAN备份任务的脚本。该脚本可以通过定期计划(如cron job)或者操作系统的任务计划程序来调度执行,以确保数据库的持续备份RMAN自动备份脚本的主要步骤包括: 1. 配置RMAN环境:在脚本中需要配置RMAN的连接信息,如数据库实例名、用户名、密码等。 2. 定义备份策略:根据需求,定义不同类型的备份策略,如完整备份、增量备份、归档日志备份等。此外,还可以设置备份的保留周期和备份的存储位置。 3. 执行备份任务:根据定义的备份策略,RMAN自动备份脚本会执行相关的备份任务。同时,脚本会生成备份日志,记录备份的详细信息,包括备份类型、开始时间、结束时间等。此外,还可以设置备份完成后发送通知邮件。 4. 清理过期备份:为了控制备份占用的存储空间,脚本还可以包含清理过期备份的步骤。根据设置的保留周期,脚本会自动删除过期的备份文件。 RMAN自动备份脚本的好处是可以免去手动执行备份任务的繁琐过程,避免人为操作的错误。它可以提高备份效率,减少备份的时间窗口,并确保备份的一致性和完整性。同时,通过自动生成的备份日志,可以方便地查看备份历史和恢复时的情况。 然而,在配置RMAN自动备份脚本时,需要注意安全性和可靠性。建议加密存储RMAN连接信息,确保脚本的执行权限合理,以防止未授权访问数据库。此外,定期检查备份的完整性以及备份文件的存储空间,也是确保备份可用性的重要步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值