查看原文
其他

Oracle RMAN (基于catalog) 配置与使用步骤

Oracle Recovery Management

(基于catalog)

 

一、   简介

RMAN(Recovery Management)是一款Oracle自带的备份恢复工具软件,是DBA的一个重要工具。专门用于数据库的备份、恢复、修复操作,同时自动管理备份。


二、   特点

1、功能类似于物理备份,但是比物理备份更加强大

2、可以压缩空块、检测坏块,并且在数据块的水平上做增量备份。

3、可以把备份输出打包为备份集(backupset),也可以根据需求切割备份集。

4、 备份与恢复的过程可以自动管理,也可以使用脚本。

 

三、   环境

操作系统:windows 7 专业版 64位

数据库版本: oracle 11g R2  64位

 

四、   配置

1、   创建用户

1.1    创建rman表空间并指定大小

create tablespace rman_tbsdatafile 'D:appAdministratororadataheheman_tbs.dbf' size 2G;

1.2    创建rman用户,指定表空间

create user rman identified by rman defaulttablespace rman_tbs;

1.3    为rman用户授权

create user rman identified by rman defaulttablespace rman_tbs;

1.4    创建并注册恢复目录

rman target rman/rman@hehe catalogrman/rman@hehe

create catalog tablespace rman_tbs;

register database;    (unregisterdatabase  注销)

不注册恢复目录,create script时会出现rman-20001错误未注册恢复目录

2、   设置归档

1、  查看归档模式

select log_mode from v$database;

archive log list;

2、  设置归档模式

Shutdown immediate;

Startup mount

Alter database (no)archivelog

3、   设置归档路径

Alter system set log_archive_dest_1='location=D:appAdministratororadataarchivelog';

Alter systemset standby_archive_dest='';

4、   归档参数

Log_archive_dest_n=’location=’;

--设置本地归档路径

Log_archive_dest_n=’service=zwy’;

--设置远程归档路径(zwy网络服务名必须在tnsnames文件内有解析)

Log_archive_dest_state_n=defer/enable;

--禁用/启用对应的归档路径

Log_archive_dest、standby_archive_dest这两个参数和log_archive_dest_n参数无法同时使用。


五、   RMAN备份脚本

1、创建脚本

create (global) script zwy

comment 'level 0 backup for database hehe'

--脚本说明

{

allocatechannel ch1 device type disk;  

--分配备份通道指定类型

backupspfile format 'd:manspfile.ora';

--备份参数文件

backup ascopy current controlfile format 'd:mancontrol01.ctl';

--备份当前使用的控制文件   

backupincremental level 0 database format 'd:man%d_%T_%u.bak'

--对数据库进行0级备份

plusarchivelog format 'd:manarch_%u.log';

--加所有归档日志

releasechannel ch1;

--释放通道

2、 将脚本生成本地文档

print (global) scriptzwy to file 'd:script_oracleman.txt'; 

3、 本地文档变为rman脚本

create (global)script zwy from file 'd:script_oracleman.txt';

4、  列出所有脚本

list all/global script names

5、   查看脚本内容

     print (global) script zwy

6、    删除脚本

delete script zwy


六、   备份源数据

运行备份脚本

 run {

       execute script zwy;

        }

   或

     run  {

      allocate channel ch1 device typedisk;  

      backup spfile format'd:manspfile.ora';

      backup as copy current controlfile format'd:mancontrol01.ctl';

      backup incremental level 0 databaseformat 'd:man%d_%T_%u.bak'

      plus archivelog format 'd:manarch_%u.log';

      release channel ch1;

      }

单独备份参数文件和控制文件

0级备份数据库和归档日志

备份源数据时,若出现ora-19625 找不到指定归档日志文件,或者归档日志丢失,需要执行以下命令:

changearchivelog all crosscheck;       ——交叉验证所有归档日志

(crosscheckarchivelog all)

deleteexpired archivelog all;           ——删除过期的归档


七、   恢复

1、 创建数据库实例

C:> oradim -new-sid hehe -startmode auto -spfile

         rman target /

2、  启动数据库到非挂载状态

RMAN> startupnomount;

3、  恢复参数文件(创建相应路径的文件夹)

RMAN> restorespfile from 'd:manhehe.ora';

4、  恢复控制文件(创建相应路径的文件夹)

RMAN> restorecontrolfile from 'd:mancontrol01.ctl;

5、  启动数据库到挂载状态

     RMAN> alterdatabase mount;

此时可能会报错:

ORA-01103: 控制文件中的数据库名 ''HEHE'' 不是''DUMMY''

需要关闭数据库,然后再启动到nomount

再次执行alter database mount;

此时又报错:

ORA-00205: 标识控制文件时出错, 有关详细信息, 请查看预警日志

查看预警日志D:appAdministratordiagdbmshehehehealertlog.xml

提示无法在指定位置找到控制文件。恢复的参数文件中指定的有控制文件的位置,从之前的控制文件恢复目录内把控制文件copy到指定目录下,更名。

6、将归档日志、备份片加入编目

RMAN> catalog backuppiece 'path';

RMAN> catalog archivelog 'path'; (如果归档日志是单独备份,则需要加上这条命令,如果是plus在database的备份集内,则不需要加)

7、恢复数据库

RMAN> restore database;

8、启动数据库

RMAN> alter databse open resetlogs;

9、验证恢复结果

ora-32004 obsoleteor deprecated parameter(s) specified for RDBMS instance

手动创建参数文件时可能会报错,因为参数文件中有没用的参数,注释掉即可,也可在alert日志内查看。


八、   RMAN中各个配置

1、  保留策略冗余

  Configureretention policy to redundancy 3;

  Configureretention policy to recovery window of  7days;

  Configureretention policy clear;

2、  备份优化开/关

  Configurebackup optimization on;

  Configurebackup optimization off;

  Configurebackup optimization clear;

3、  默认设备类型

  Configuredefault device type to disk;   --默认磁盘设备

  Configuredefault device type to sbt;    --SBT-TAPE磁带设备

  Configuredefault device type clear;

4、  控制文件

  Configurecontrolfile autobackup on;

  Configurecontrolfile autobackup format for device type to disk to ‘/tmp/ctl_%F’;

  Configuresnapshot controlfile name to ‘/tmp/control.snp’;

  Configurecontrolfile autobackup clear;

  Configurecontrolfile autobackup format for device type to disk clear;

  Configuresnapshot controlfile name clear;

5、   并行通道数

  Configuredevice type disk/sbt parallelism 2;

  Configuredevice type disk/sbt clear;

  Configurechannel device type disk format ‘/tmp/rman_backup_%U’;

  Configurechannel 1 device type disk format ‘/tmp/rman_backup_%U’;

  Configure channel2 device type disk format ‘/tmp/rman_backup_%U’;

  Configurechannel device type disk rate 1200K;       --备份速度

  Configurechannel device type disk maxpiecesize 100M; --备份片最大大小

6、   生成备份副本

  Configuredatafile backup copies for device type disk/sbt to 3;

  Configurearchivelog backup copies for device type disk/sbt to 3;

  Configuredatafile/ archivelog backup copies for device type disk/sbt clear;

7、   排除选项(exclude)

  Configureexclude for tablespace ‘USERS’;

  Configureexclude clear;

8、    备份集大小

  Configuremaxsetsize to 1G/1000M/1000000K/unlimited;

  Configuremaxsetsize clear;

9、    其它辅助选项(auxiliary)

  Configureauxname for datafile 1 to ‘/oracle/auxfiles/aux_1.dbf’

  Configureauxname for datafile 1 clear;

 

九、   注意事项

1、   RMAN不能用于备份口令文件(密码文件)。

2、   RMAN启动数据库上的oracle服务器来进行备份或还原。备份、还原、修复是由这些进程驱动的。

3、   RMAN可以由OEM上的 backup manager GUI来控制。

4、   RMAN的备份级别分为:数据库级别、表空间级别、文件级别。

5、   RMAN的备份方式有两种:catalog方式、控制文件方式(nocatalog)

6、   在RMAN中分别开启会话

set command id to ‘sess1’

set command id to ‘sess1’;

指定cmmand id之后,在会话查询中可以看到以下信息


由社区会员上传分享,如想下载word版文档请点击阅读原文


长按二维码关注公众号

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存