Oracle rman创建和自动化备份

数据库版本:Oracle 10.2.0.5  x86_64

操作系统版本:Oracle Linux 5.7  x86_64

注:#表示为root用户下输入该命令, $表示为oracle用户下输入该命令。

1.创建rman catalog

# su - oracle

$ sqlplus / as sysdba

SQL>

create tablespace CATALOG

datafile '/u02/oradata/data/CATALOG_01.dbf'

size 20M

autoextend on

next 5M maxsize 2G

extent management local;

SQL>

create user rman identified by rman

default tablespace CATALOG

temporary tablespace TEMP_SPC

quota unlimited on CATALOG;

SQL> grant connect,recovery_catalog_owner to rman;

SQL> exit

$ rman target system/system123 catalog rman/rman

RMAN> create catalog;

RMAN> register database;

2.创建目录

$ mkdir -p /u01/oracle/backup/orcl   存放备份文件

$ mkdir -p /u01/oracle/backup/orcl/log  存放备份日志

$ mkdir -p /home/oracle/script  存放脚本

 

3.创建脚本

备份计划:每天凌晨一点进行数据库全备和归档日志备份。

$ cd /home/oracle/script

创建shell脚本db_backup_orcl.sh

创建rman脚本db_backup_orcl.rcv

(脚本内容在本文档最后面)

赋予两个脚本执行的权限:

$ chmod 775 db_backup_orcl.sh

$ chmod 775 db_backup_orcl.rcv

4.制定定时计划

每天凌晨1点运行备份脚本

# crontab -u oracle -e  添加以下内容:

  
  
  
  
  1. 01 1 * * *  /home/oracle/script/db_backup_orcl.sh  >/dev/null 2>&1 

 

脚本:

db_backup_orcl.sh

 

  
  
  
  
  1. #!/bin/bash 
  2. source /home/oracle/.bash_profile 
  3. ORACLE_SID=orcl
  4. export ORACLE_SID 
  5.  
  6. #当天时间 
  7. DATA=`date +"%Y-%m-%d"
  8.  
  9. #检查备份存放目录是否存在,没有的话就创建 
  10. BK_PATH=/u01/oracle/backup/$ORACLE_SID 
  11. if [ ! -d $BK_PATH ]; then 
  12. mkdir -p $BK_PATH 
  13. fi 
  14.  
  15. #检查备份日志存放目录是否存在,没有的话就创建 
  16. LOG_PATH=/u01/oracle/backup/$ORACLE_SID/log 
  17. if [ ! -d $LOG_PATH ]; then 
  18. mkdir -p $LOG_PATH 
  19. fi 
  20.  
  21. #检查备份日志文件是否存在,没有的话就创建 
  22. LOG_FILE=$LOG_PATH/bk_$DATA.log 
  23. if [ ! -f $LOG_FILE ]; then 
  24. touch $LOG_PATH/bk_$DATA.log 
  25. fi 
  26.  
  27. rman=/u01/oracle/10.2.0/bin/rman 
  28.  
  29. $rman cmdfile=/home/oracle/script/db_backup_orcl.rcv  msglog=$LOG_FILE  

 

db_backup_orcl.rcv

  
  
  
  
  1. connect catalog rman/rman 
  2. connect target sys/sys123 
  3. run { 
  4. allocate channel d1 type disk; 
  5. allocate channel d2 type disk; 
  6. backup 
  7. incremental level 0  
  8. tag 'db_level_0' 
  9. filesperset 20 
  10. format '/u01/oracle/backup/orcl/df_%t_%s_%p' 
  11. database; 
  12. sql 'alter system archive log current'; 
  13. backup archivelog all delete input 
  14. filesperset 20 
  15. format '/u01/oracle/backup/orcl/al_%t_%s_%p'; 
  16. release channel d2; 
  17. release channel d1; 
  18. crosscheck backup; 
  19. resync catalog; 

 

你可能感兴趣的:(oracle,linux,备份,rman,休闲)