Oracle RMAN 详解与实例(2)

2018-11-25 21:05

%F:一个基于DBID唯一的名称,这个格式的形式为c-xxx-YYYYMMDD-QQ,其中xxx位该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列; %n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8; %u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集产生一个唯一的名称;

%p:表示备份集中的备份片的编号,从1开始编号;

%U:是%u_%p_%c的简写形式,利用它可以为每一个备份片段(既磁盘文件)生成一个唯一的名称,这是最常用的命名方式; %t:备份集时间戳;

%T:年月日格式(YYYYMMDD);

channel的概念:一个channel是rman于目标数据库之间的一个连接,\channel\命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份和恢复操作使

用的I/O类型

通道控制命令可以用来:

控制rman使用的OS资源 影响并行度

指定I/O带宽的限制值(设置 limit read rate 参数) 指定备份片大小的限制(设置 limit kbytes)

指定当前打开文件的限制值(设置 limit maxopenfiles)

=================================RMAN一周典型备份方案============================

1.星期天晚上 -level 0 backup performed(全备份) 2.星期一晚上 -level 2 backup performed 3.星期二晚上 -level 2 backup performed 4.星期三晚上 -level 1 backup performed 5.星期四晚上 -level 2 backup performed 6.星期五晚上 -level 2 backup performed 7.星期六晚上 -level 2 backup performed

如果星期二需要恢复的话,只需要1+2,

如果星期四需要恢复的话,只需要1+4, 如果星期五需要恢复的话,只需要1+4+5, 如果星期六需要恢复的话,只需要1+4+5+6.

自动备份:备份脚本+crontab bakl0 bakl1 bakl2

执行脚本:

rman target / msglog=bakl0.log cmdfile=bakl0 (/表示需要连接的目标数据库,msglog表示日志文件,cmdfile表示的是脚本文件) rman target / msglog=bakl1.log cmdfile=bakl1 rman target / msglog=bakl2.log cmdfile=bakl2

实例:rman target system/oracle@ora10g(/) msglog=/u01/rmanbak/bakl1.log cmdfile=/u01/rmanbak/bakl0

完整的命令:/u01/oracle/product/10.2.0/bin/rman target system/oracle@ora10g(/) msglog=/u01/rmanbak/bakl1.log cmdfile=/u01/rmanbak/bakl0

把备份脚本放到/u01/rmanbak/script目录下面,vi bakl0,bakl0的内容为: run{

allocate channel cha1 type disk; backup

incremental level 0

format '/u01/rmanbak/inc0_%u_%T'(u表示唯一的ID,大T是日期,小t是时间)

tag monday_inc0 //标签可以顺便起,没关系 database;

release channel cha1; }

,类似就可以写出bakl1,bakl2相应的脚本.

自动备份

crontab

crontab -e -u oracle(改命令的意思是编辑oracle用户的定时执行(-e,edit -u oracle,oracle用户))

分 时 日 月 星期(0代表星期天)

45 23 * * 0 rman target / msglog=bakl0.log cmdfile=bakl0(星期天的23:45会以oracle用户的身份来执行命令)

45 23 * * 1 rman target / msglog=bakl2.log cmdfile=bakl2 45 23 * * 2 rman target / msglog=bakl2.log cmdfile=bakl2 45 23 * * 3 rman target / msglog=bakl1.log cmdfile=bakl1 45 23 * * 4 rman target / msglog=bakl2.log cmdfile=bakl2 45 23 * * 5 rman target / msglog=bakl2.log cmdfile=bakl2 45 23 * * 6 rman target / msglog=bakl2.log cmdfile=bakl2

然后启动crontab ,启动crontab的命令: root> service crond restart

=======================RMAN恢复================

在非catalog模式下,备份的信息存储在controlfile文件中,如果controlfile文件发生毁坏,那么就不能能够进行恢复,

使用在备份的时候需要把controlfile也进行自动备份

RMAN>show all;

using target database control file instead of recovery catalog

RMAN configuration parameters are:

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 ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home/oracle/product/10.20/dbs/snapcf_ora10g.f'; # default

其中CONFIGURE CONTROLFILE AUTOBACKUP OFF; 没有对controlfile进行 autobackup,使用我们需要运行下面命令来对controlfile进行自动备份 RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

RMAN> show all;

手动备份控制文件: backup current controlfile

Dbid表示database的一个ID,将来用于恢复spfile和controlfile时候要用到. RMAN> connect target /

connected to target database: ORA10G (DBID=3988862108) 这个Dbid=3988862108

RMAN> list backup;查看以前备份的信息

RMAN>delete backupset 24;//24代表backupset 的编号

RMAN>backup format '/u01/rmanbak/full_%T_%U.bak' database plus archivelog;(进行一次全备份)

验证备份:

RMAN> validate backupset 3; //3代表backupset的编号

口令文件丢失(不属于rman备份的范畴),我们只需要用一个命令来重建这个文件就可以了:

orapw file=orapwsid password=pass entries=5; //口令文件的路径:/u01/oracle/product/10.20/db_1/dbs目录下 oracle> cd /u01/oracle/product/10.20/db_1/dbs oracle> rm orapwora10g;(文件删除,模拟丢失)

oracle> orapwd file=orapwora10g password=oracle entries=5;(重新建立一个文件),entries的意思(DBA的用户最多有5个)

SPFILE丢失: startup nomount; set dbid 3988862108; restore spfile from autobackup; shutdown immediate; set dbid 3988862108; startup;

模拟操作:

oracle> mv spfileora10g.ora spora10g.ora oracle>rman target /; rman> shutdown immediate;

rman> startup nomount;

startup failed: ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/home/oracle/product/10.20/dbs/initora10g.ora' rman>set dbid 3988862108; rman>restore spfile from autobackup;

执行该命令,如果没有找到的话,那可能是文件的路径发生错误.可以通过直接赋予它的文件

rman>restore spfile from

'/u01/oracle/flash_recovery_area/ORA10G/autobackup/2008_12_09/o1_mf_s_673025706_4mw7xc79_.bkp

在dbs/目录下产生spfileora10g.ora文件。证明spfile 已经恢复好

rman> shutdown immediate;

rman> startup ;(如果该命令不能够启动数据库,那么需要set dbid 3988862108)

controlfile 丢失:

startup nomount;

restore controlfile from autobackup; alter database mount;


Oracle RMAN 详解与实例(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Oracle-Rman备份详细讲解

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: