三. 为RMAN 操作配置数据库

3.1 设置数据库用户

在默认情况下,可以通过SYS账户(sysdba)来使用RMAN,该账户不需要任何配置。当然,在执行产品备份操作时,sysdba 并不是最佳的账户。

建议在使用RMAN执行备份操作之前创建一个用于RMAN 备份的单独账户设置。

C:/Users/Administrator.DavidDai>set ORACLE_SID=mynewccs

C:/Users/Administrator.DavidDai>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 6月 14 10:11:39 2010

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn / as sysdba

已连接。

SQL> create user rman identified by rman;

用户已创建。

SQL> grant sysdba to rman;

授权成功。

SQL> host

Microsoft Windows [版本 6.1.7600]

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:/Users/Administrator.DavidDai>rman target rman/rman@mynewccs;

恢复管理器: Release 11.2.0.1.0 - Production on 星期一 6月 14 10:12:45 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到目标数据库: MYNEWCCS (DBID=1108507251)

RMAN>


3.2 设置数据库安全性

先来看一下本地服务器上连接RMAN 和 通过ORACLE net 连接RMAN 两者之间的差异。 启动RMAN时,我们可能登录到数据库所在的服务器。 在这

种情况下,如果使用特许的OS 用户账户登录,登录时用具有sysdba 权限的用户即可。 根据使用的操作系统,我们可以确定我们的用户账户是否

是特许的。 如果使用UNIX,通常会存在一个名为dba的UNIX 组,它是在创建ORACLE特有的账户(通常名为Oracle)时创建的。 如果在这个Unix

组中指定我们的UNIX用户账户,就可以不再执行其他操作而连接到一个目标数据库。 如果使用Windows 平台,特许用户会指定到一个通常名为

ORA_DBA的NT组。

如果没有使用特许的账户登录本地服务器,或者从客户端工作站使用Oracle net来连接目标数据库(如:user/pwd@sid). 就需要配置数据库使

用口令文件。 配置口令文件时,先要创建口令文件,然后配置数据库,使数据库明确使用这个口令文件。  创建口令文件的2个步骤如下:


3.2.1 创建口令文件

使用Oracle 使用程序orapwd 可以创建口令文件。 该命令有3个参数:

File:口令文件名

 password: sys 用户的口令

Entries:为其他特许的Oracle 用户账户保留的条目数

缺省情况下,win下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小写敏感),

        C:>orapwd file=pwdSID.ORA password=pwd entries=5;


3.2.2 配置数据库使用口令文件

在默认情况下,Oracle 不会被配置为使用口令文件(除非使用DBCA创建数据库)。 是否使用口令文件,是通过oracle提供的一个参数

remote_login_passwordfile来控制的,remote_login_passwordfile有none,shared,exclusive3个值,

none表示不使用口令文件,停用口令文件验证,Oracle数据库不允许远程SYSDBA/SYSOPER身份登录

exclusive表示实例独占使用口令文件,也就是各自实例使用单独的口令文件,

shared表示多个实例共享一个口令文件.

Oracle数据库在启动时,首先查找的是orapw<sid>的口令文件,如果该文件不存在,则开始查找,orapw的口令文件,如果口令文件命名为orapw,多个

数据库就可以共享.

Alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;

SQL> select name,value,issys_modifiable from v$parameter where name='remote_login_passwordfile';

NAME                           VALUE           ISSYS_MOD

------------------------------ --------------- ---------

remote_login_passwordfile      EXCLUSIVE       FALSE

注意: 该参数不是动态修改的,修改后需要重启数据库。


3.3 设置CONTROL_FILE_RECORD_KEEP_TIME 参数

为RMAN 配置数据库时,我们应当考虑在控制文件中存储备份记录的时间。 备份记录包括完全的数据库备份记录,以及指定的数据文件,控制文

件,参数文件和归档目录的备份记录。数据库参数CONTROL_FILE_RECORD_KEEP_TIME以天为单位(默认值为7天),因此在默认情况下,Oracle 会

将RMAN备份和恢复记录保存7天。 可以将该参数设置为0到365之间的任意值。

CONTROL_FILE_RECORD_KEEP_TIME参数会影响一系列的数据库操作。 首先,产生RMAN备份时,由于与这些备份相关的记录存储在控制文件中,所

以该参数直接影响数据库控制文件的大小。 备份记录将不断的保存在控制文件中,控制文件将耗尽空间。 这时,Oracle 会扩展控制文件来调整

备份记录所需的存储空间。 此外,设置为0时,将禁止扩展控制文件,并且会使得RMAN备份的保存周期不稳定。

我们建议将CONTROL_FILE_RECORD_KEEP_TIME 参数设置为不小于选中数据库的备份保存周期,否则就可能在备份介质上有数据库备份,但是控制

文件不存在与备份相关的备份记录,在这种情况下,将无法恢复这些较早的文件。

SQL> select name,value from v$parameter where name='control_file_record_keep_time';

NAME                           VALUE

------------------------------ -------------------------------------------------

control_file_record_keep_time   7

SQL> alter system set control_file_record_keep_time=20;

系统已更改。

SQL> show parameter control_file_record_keep_time

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

control_file_record_keep_time        integer     20


3.4 配置RMAN默认设置

RMAN 允许我们执行自动的数据库备份和恢复。 为了支持这个功能,我们为一些参数设置默认值。


3.4.1 configure 命令介绍

RMAN> show all;

使用目标数据库控制文件替代恢复目录

db_unique_name 为 MYNEWCCS 的数据库的 RMAN 配置参数为:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

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 LOA

D TRUE ; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHO

ME_1/DATABASE/SNCFMYNEWCCS.ORA'; # default

Show all 命令显示了默认的配置。 我们也可以使用查看v$rman_configuration 视图,它列出了非默认的RMAN 配额。


3.4.2 配置多种RMAN 配置

    我们可以采用不同的方法来配置通道: 使用configure channel device type 命令可以配置用于所有通道的默认值;使用configure

channel n device type 命令可以配置用于指定默认通道的默认值。

使用configure channel device type clear 命令可以清楚用于所有通道的默认值,使用configure channel n device type clear命令可以清除

用于指定默认通道的默认值。

使用allocate channel 命令分配一个通道时,可以为分配的这个通道指定名称。 如: allocate channel d1 device type disk 命令可以创建

一个名为d1的通道。 自动分配通道时,ORACLE 会为这些通道指定名称,他们的默认名称取决于默认设备类型。 磁盘设备,默认名:

ORA_DISK_n; 磁带设备: 默认名:ORA_SBT_TAPE_n。

自动分配通道数取决于所定义的默认并行级别。 执行configure 命令时,Oracle 显示前面的配置设置,后面跟上新的配置设置。


3.4.3 configure 命令的一些示例:

配置通道默认设置

Configure default device type to sbt;

Configure default device type to disk;

当配置默认的设备类型时,Oracle 将使用默认的通道,直到使用backup device type参数重写默认值,也将自动分配用于delete 命令的维护通

道和用于复制操作的辅助通道。

一旦配置了默认的设备类型,就可以配置特定备份类型的默认值,当使用备份时,应该进行这种备份。 例如,当备份到磁盘时,可以让Oracle

默认地使用标准的oracle 备份集方法备份数据库,或者让其默认为使用副本,或者默认为压缩备份集,并表明并行程度(这表示将分配给备份的

通道数)。 相关实例如下:

Configure device type disk backup type to backupset;

Configure device type disk backup type to compressed backupset;

Configure device type disk backup type to copy;

Configure device type disk parallelism 2;

压缩 是Oracle 10g 里的新特性。 压缩提供了Oracle 备份的真正压缩,而不同于ZIP 压缩,它可以有效的减小备份集的大小。 当然,压缩占

用资源并且需要更长的时间来完成备份和恢复。

在看一个自动备份和恢复操作期间分配的通道数示例,示例中,分配磁盘操作的并行级别为2,因此,如果启动自动备份操作,就会分配两个通道

来并行执行备份操作。

Configure channel 1 device type disk format 'd:/backup/orcl/backup_%U';

Configure channel 2 device type disk format 'e:/backup/orcl/backup_%U';

注意: 通常在设置默认的并行级别时,应当设置为连接备份数据库的磁盘数或者磁带驱动器数。

在配置通道时有一些可用选项。 使用maxpiecesize 参数,可以控制备份集片的大小,用maxopenfile,可以控制RMAN 一次最多可以打开的文

件数。 Rate 参数用于限制RMAN 并控制备份时读取字节的比率为每秒nB,nKB,nMB和nGB。

如:configure channcel 1 device type disk maxpiecesize 100m maxopenfile 8 rate 100MB;

注意: 不要混淆 maxpiecesize 参数 和 maxsetsize 参数之间的区别。 Maxpiecesize 限定单个备份集片的大小并且对备份的整体大小没有影

响。 Maxsetsize 参数限制备份的整体大小,因此需要谨慎使用。


如果是限定所有通道,可以执行如下命令:

Configure channel device type disk maxpiecesize 100m.

为什么需要更改一个备份集片的最大尺寸呢?首先是某些指定文件大小存在限制,比如磁带只能处理一定量的数据,而某些磁盘文件系统对给定

的数据文件的大小有一些限制。

将一个磁带设备设置为所有通道的默认设备,并且指定一些参数的设置。 相关设置如下:

Configure channel devicetype双胞胎maxpiecesize100m parms 'ENV=(NB_ORA_CLASS=RMAN_RS100_TAPE)';

配置整个备份集的默认最大尺寸

Configure maxsetsize to 7500k;

将备份集的最大尺寸设为默认值,即没有限制

Configure maxsetsize clear;

注意: 使用maxsetsize 来限制创建的整个备份的大小时需要特别小心。 这是因为数据库在初始化阶段可能小于定义的maxsetsize值,但数据库

很快就会超过maxsetsize 值,这样就会导致数据库备份操作失败。

使用configure 命令时,需要清楚给定的配置,这样才能使用默认值。  如:

Configure channel 1 device type disk clear;

可以将备份进程配置为创建双路备份(duplexed backup),也就是说在不同的位置创建同一个备份的多个副本。还可以使用configure 命令来配

置数据库的默认设置,以使configure 命令执行双路的自动备份操作:

Configure datafile backup copies for device type disk to 2;

快照控制文件,该文件是RMAN 备份期间数据库控制文件的时间点副本,这样可以保证备份与给定时间点一致。 因此,如果在启动备份操作后在

数据库中添加一个表空间或者数据文件, 这个表空间或数据文件就不会包含在备份中。 如果我们希望在默认位置外的位置创建备份控制文件,

就可以使用configure 命令来定义这个新位置:

Configure snapshot control file name to 'd:/backup/snapshotSID';

注意: 既是配置了FRA,Oracle 也不会在FRA中创建控制文件。

在自动备份期间,我们可以将指定的表空间排除在备份之外,也可以使用configure 命令来实现这一功能:

Configure exclude for tablespace old_data;

Configure 命令允许我们启用和禁止备份优化,启用备份优化时,会使ORACLE 跳过在备份设备上已有的相同备份的文件的备份。

Configure backup optimization on;

注意:要执行优化操作,就必须启动备份优化。此外,我们也必须执行 backup database命令或者backup archivelog命令或与like/all 选项连

用,或backup backupset all。 最后,还可以使用backup 命令的force 参数来禁止备份优化。


3.4.4 使用格式串

先看例子:Configure channel 1 device type disk format 'd:/backup/orcl/backup_%U';

在configure 命令中经常使用格式串,在backup,resotre,allocate channel 等其他RMAN 命令中也会经常看到格式串。RMAN 提供了与格式串关

联的一些语法元素。 这些元素称: 占位符, rman 将使用相应的定义值来替换他们。 例如示例中的 %U 语法元素告诉RMAN要使用系统生成的唯

一表示符替换文件名。

使用FORMAT参数时可使用的各种替换变量,如下(注意大小写)所示:

%a:Oracle数据库的activation ID即RESETLOG_ID。

%c:备份片段的复制数(从1开始编号,最大不超过256)。

%d:Oracle数据库名称。

%D:当前时间中的日,格式为DD。

%e:归档序号。

%f:绝对文件编号。

%F:基于"DBID+时间"确定的唯一名称,格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD为日期,QQ是一

个1~256的序列。

%h:归档日志线程号。

%I:Oracle数据库的DBID。

%M:当前时间中的月,格式为MM。

%N:表空间名称。

%n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8。比如数据库名JSSBOOK,则生成的名称则是JSSBOOKx。

%p:备份集中备份片段的编号,从1开始。

%s:备份集号。

%t:备份集时间戳。

%T:当前时间的年月日格式(YYYYMMDD)。

%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称。

%U:默认是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式,执行不同备份操作

时,生成的规则也不同,如下所示:

生成备份片段时,%U=%u_%p_%c;

生成数据文件镜像复制时,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u;

生成归档文件镜像复制时,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u;

生成控制文件镜像复制时,%U=cf-D_%d-id-%I_%u。

%Y:当前时间中的年,格式为YYYY。

注:如果在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片段命名。


3.4.5 配置控制文件和数据库参数文件的自动备份

Oracle 10g 版本中的RMAN 提供了备份控制文件和数据库参数文件的功能。我们可以配置默认执行这些备份操作。

示例:

Configure controlfile autobackup on;

Configure controlfile autobackup off;

配置控制文件和参数文件的自动备份时的一些规则:

(1) 在RUN 程序块之外执行每个RMAN的backup 或者 copy 命令时,都会自动备份控制文件和参数文件。

(2) 使用使用了RUN 程序块,而且该程序块的最后一个命令不是backup 或者copy,在RUN 程序块结尾处会备份控制文件和参数文件。

除了上面2种自动控制文件备份类型,我们还可以配置另一种特殊的控制文件备份类型。该类型发生在数据库变化时,这些变化包括添加新的表空

间,添加数据文件,添加联机重做日志等。 这些自动备份类型只在磁盘上发生,使用configure controlfile autobackup命令的特殊选项可以简

化备份。如:

Configure controlfile autobackup format for device type disk to 'd:/backup/sid_%F';

使用了该选项,RDBMS 会在数据结构的变化控制文件产生影响时自动备份控制文件。强调一点,只支持磁盘。


3.4.6 备份默认的保存策略:

RMAN 允许用户使用configure retention policy 命令来配置保存粗略。 配置保存粗略不会导致自动删除备份,需要使用delete obsolete 命令

才能删除过期的备份集。 在report obsolete 命令时显示到期的备份集。 如果列出的某个文件不能被删除,需要鱼腥crosscheck 命令,否则,

Oracle 删除delete obsolete命令输出的所有项。

如:

configure retention policy to recovery window of 7 days;

--recover window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为

obsolete。

configure retention policy to redundancy 5;

--redundancy 是为了保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。它的默认值是1份。

configure retention policy clear;

-- 保存策略重置为默认值(冗余为1)

CONFIGURE RETENTION POLICY TO NONE;

-- 不应用任何保存策略。

注意: 如果使用磁带管理系统,该系统会具有自己的保存策略。如果磁带管理系统的保存策略与RMAN中定义的备份保存策略冲突,则磁带管理系

统的保存策略优先,同时,恢复备份的能力会大受影响。


3.4.7 配置默认的加密级别

在Oracle 10g R2以后的版本中,RMAN 可以创建加密备份,在备份期间,Oracle 在创建备份集时对其进行加密。当还原备份时,则对其进行解密

Oracle 提供了3种不同的机密模式:

(1) 透明模式: 透明模式的加密不需要DBA 干涉,为了使用该模式,必须配置Oracle 加密电子皮夹(Encryption Wallet).

(2) 口令模式:口令模式加密需要在创建将要加密的备份或还原(在创建时)加密的备份时提供口令。 在RMAN备份脚本中使用命令: set

encryption on identified by password only 提供口令。

(3) 双重模式:可以通过口令或Oracle 加密电子皮夹来还原双重模式的备份。 因为不需要安装Oracle 加密电子皮夹,双重模式简化了备份的

离站还原。可以使用: set encryption on identifiedby password 命令(注意,少了only) 创建双重模式加密备份。

使用configure 命令配置各种与RMAN备份加密相关的持久性设置。可以使用RMANconfigure 命令来设置以下相关内容:

(1) 是否应该加密所有的数据库文件

(2) 是否应该加密特定的表空间

(3) 应该使用那种可用的机密算法来机密备份

如果正在使用基于Oracle 加密电子皮夹的安全保护,则只需要设置configure 命令所需的持久性RMAN 设置。 如果希望使用口令模式加密或双重

模式加密,就需要使用configure 命令配置持久性安全默认值,然后启动备份时使用set 命令设置备份口令,则在每次RMAN备份或者恢复会话期

间必须输入该口令。

下面的示例中,为整个数据库配置并启用备份加密。 注意,如果没有配置Oracle 加密电子皮夹,随后的任何备份都将会失败,除非使用set 命

令建立会话的加密口令。

RMAN> configure encryption for database on;

新的 RMAN 配置参数:

CONFIGURE ENCRYPTION FOR DATABASE ON;

已成功存储新的 RMAN 配置参数

RMAN> set encryption on identified by admin only;

正在执行命令: SET encryption

RMAN> backup database plus archivelog;

如果满足下列条件,则使用加密备份归档的重做日志备份:

(1) 在进行归档重做日志的备份时执行set encryption on 命令。

(2) 已经为整个数据库配置了加密,或者至少为数据库的一个表空间配置了加密。


3.4.8 配置归档日志删除策略。

可以配置RMAN来管理归档重做日志的删除策略。默认情况下,Oracle 将配置的备份保存策略应用于归档的重做日志。 然而,如果正在使用FRA和

备用数据库,就可以配置RMAN, 在使用configure archivelog deletion policy to applied on standby 命令,将归档的重做日志应用与强制

的备用数据库后将其标记为可删除。 在这种情况下,一旦已经成功将归档的重做日志应用于强制的备用数据库位置,Oracle 就可以将其从FRA

中删除。

3.5 使用共享服务器的情况

如果使用Oracle 的共享服务器选项(10g以前称为MTS,或者 多线程服务器),就必须配置一个RMAN使用的专用服务器,这是因为RMAN不能使用

共享服务器会话连接到数据库。

如果共享的,就必须通过Net Manager 工具配置一个专用的:

MYICD =

 (DESCRIPTION =

   (ADDRESS = (PROTOCOL = TCP)(HOST = DavidDai)(PORT = 1521))

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = myicd)

   )

 )


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html