RMAN备份
需要用RMAN进行备份数据库,现将过程写下来(经过测试,通过)
一.建立catalog
1. 建立catalog表空间
Create tablespace orman datafile ‘/opt/oracle/oradata/orcl/orman.dbf’ size 200m autoextend on next 1m maxsize 2048m extent managememt local;
2. 建立rman用户
Create user rman identified by rman temporary tablespace temp default tablespace orman quota unlimited on orman;
3. 给rman 用户授权
Grang connect,resource,recovery_catalog_owner to rman;
4. 连接rman完成catalog 建立
Rman catalog rman/rman@orcl
Rman>create catalog tablespace “ORMAN”;
5. 注册目标数据库
rman target sys/oracle@orcl catalog rman/rman@orcl
rman>register database;
二.配置rman
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
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 '/opt/oracle/10g/dbs/snapcf_orcl.f'; # default
三.建立备份目录
mkdir /frog/rmanback/fullback
mkdir /frog/rmanback /level0_back
mkdir /frog/rmanback /level1_back
mkdir /frog/rmanback /level2_back
chown -R oracle:oinstall /frog/rmanback/
四.建立备份脚本
a. 建立数据库全备份脚本
vi fullback.sh
#!/bin/bash
#this is rman auto full backup script
#Copyright by frog
#date 2010-1-11
#
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/10g
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export NLS_LANG=american_america.ZHS16GBK
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH
export PATH=$PATH:/opt/local/bin
cd $ORACLE_HOME/bin
./rman target sys/oracle@orcl catalog rman/rman@orcl <
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup database filesperset 3 format '/frog/rmanback/fullback/ora_full_%d_%t%s%p%u';
sql 'alter system archive log current';
backup archivelog all format '/frog/rmanback/archback/arc_log_%d_%s_%p_%u' delete all input;
release channel c1;
release channel c2;
release channel c3;
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
EOF
b.建立L0备份脚本
#!/bin/bash
#this is rman auto LEVEL 0 backup script
#Copyright by frog
#date 2010-1-11
#
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/10g
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export NLS_LANG=american_america.ZHS16GBK
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/bin
./rman target sys/oracle@orcl catalog rman/rman@orcl <
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 database format '/frog/rmanback/L0_back/ora_full_%d_%t%s%p%u';
sql 'alter system archive log current';
backup archivelog all format '/frog/rmanback/archback/arc_log_%d_%s_%p_%u' delete all input;
release channel c1;
release channel c2;
release channel c3;
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
EOF
C.建立L1,L2备份
#!/bin/bash
#this is rman auto LEVEL 0 backup script
#Copyright by frog
#date 2010-1-11
#
#set env
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/10g
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export NLS_LANG=american_america.ZHS16GBK
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/bin
#login and begin backup
./rman target sys/oracle@orcl catalog rman/rman@orcl <
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 1 cumulative
skip offline
skip readonly
skip inaccessible
database format '/frog/rmanback / L1_back/ora_full_%d_%t%s%p%u';
release channel c1;
release channel c2;
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
EOF
#!/bin/bash
#this is rman auto LEVEL 0 backup script
#Copyright by frog
#date 2010-1-11
#
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/10g
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export NLS_LANG=american_america.ZHS16GBK
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/bin
. /rman target sys/oracle@orcl catalog rman/rman@orcl <
run{
allocate channel c1 type disk;
backup incremental level 2 cumulative
skip offline
skip readonly
skip inaccessible
database format '/frog/rmanback/L2_back/ora_full_%d_%t%s%p%u';
release channel c1;
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
EOF
建立定时任务
[oracle@bbs rmanbackscript]$ crontab -e
* 1 28 * * /frog/rmanback/rmanbackscript/fullback.sh >> /frog/rmanback/rmanbacklog/fullback"`date`".log
55 23 * * 0 /frog/rmanback/rmanbackscript/l0back.sh >> /frog/rmanback/rmanbacklog/l0back"`date`".log
50 1 * * 1 /frog/rmanback/rmanbackscript/l2back.sh >> /frog/rmanback/rmanbacklog/l2back"`date`".log
45 3 * * 2 /frog/rmanback/rmanbackscript/l2back.sh >> /frog/rmanback/rmanbacklog/l2back"`date`".log
35 2 * * 3 /frog/rmanback/rmanbackscript/l1back.sh >> /frog/rmanback/rmanbacklog/l1back"`date`".log
25 3 * * 4 /frog/rmanback/rmanbackscript/l2back.sh >> /frog/rmanback/rmanbacklog/l2back"`date`".log
15 3 * * 5 /frog/rmanback/rmanbackscript/l1back.sh >> /frog/rmanback/rmanbacklog/l1back"`date`".log
5 2 * * 6 /frog/rmanback/rmanbackscript/l2back.sh >> /frog/rmanback/rmanbacklog/l2back"`date`".log
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22779291/viewspace-625244/ ,如需转载,请注明出处,否则将追究法律责任。