oralce备份脚本

来源:这里教程网 时间:2026-03-03 22:28:54 作者:

一、Linux版本:

1、 备份脚本

[oracle@db1 ~]$ cat backup.sh #!/bin/bash . /home/oracle/.bash_profile export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1 export ORACLE_SID=orcl export RMANBAK=/backup export DATE=`date +%Y-%m-%d-%H%M` export CMDFILE=/tmp/fullbak.rcv export LOGFILE=$RMANBAK/$DATE/logs/rman_full_`date +%Y-%m-%d-%H%M`.log   if [ ! -d $RMANBAK/$DATE ]; then     mkdir $RMANBAK/$DATE fi   if [ ! -d $RMANBAK/$DATE/logs ]; then     mkdir $RMANBAK/$DATE/logs fi   cat > $CMDFILE <<EOF connect target / run{ CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; allocate channel ch00 device type disk; allocate channel ch01 device type disk; allocate channel ch02 device type disk; allocate channel ch03 device type disk;   crosscheck backup; crosscheck archivelog all;   delete noprompt expired archivelog all; delete noprompt expired backup; report obsolete; delete noprompt obsolete;   backup as compressed backupset database format '$RMANBAK/$DATE/full_%T_%u_%p.%d' tag='FULLDB-$DATE' plus archivelog format '$RMANBAK/$DATE/arch_%T_%u_%p.%d' tag='ARCH-$DATE' delete all input ; sql 'alter system archive log current'; backup current controlfile format '$RMANBAK/$DATE/control_%T_%u_%p.%d.bak'; backup spfile format '$RMANBAK\$DATE\spfile_%T_%u_%p.%d.bak'; crosscheck backup; crosscheck archivelog all;   delete noprompt expired archivelog all; delete noprompt expired backup; report obsolete; delete noprompt obsolete;   release channel ch00; release channel ch01; release channel ch02; release channel ch03; } EOF   ########################################################################   echo "started backup at : "`date +%Y%m%d-%H%M` >> $LOGFILE echo "---------------------------------------------------">>$LOGFILE $ORACLE_HOME/bin/rman  @$CMDFILE log $LOGFILE append echo "---------------------------------------------------">>$LOGFILE echo "finished backup at: "`date +%Y%m%d-%H%M` >> $LOGFILE   2 、计划任务 [oracle@db1 ~]$ crontab -l 30 20  * * *  /home/oracle/backup.sh   3 、检查保留备份时间或份数 [oracle@db1 ~]$ rman target /   Recovery Manager: Release 19.0.0.0.0 - Production on Mon Jul 28 21:00:25 2025 Version 19.3.0.0.0   Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.   connected to target database: ORCL (DBID=1726369794)   RMAN> show all;      using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default (保留一份备份数据) CONFIGURE BACKUP OPTIMIZATION ON; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; CONFIGURE CONTROLFILE AUTOBACKUP OFF; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/auto_%T_%F.%d'; 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 LOAD TRUE ; # default CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/19.3.0/dbhome_1/dbs/snapcf_orcl.f'; # default  

一、Windows版本:

1、 备份脚本 backup.bat(可执行文件) @echo off set timestamp=%date:~0,4%%date:~5,2%%date:~8,2% mkdir d:\backup\%timestamp%

rman target / nocatalog CMDFILE 'd:\scripts\full_backup.sql' log 'd:\scripts\log\rman_backup_%timestamp%.log' append   full_backup.sql(命令文本) run{ CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; allocate channel ch00 device type disk; allocate channel ch01 device type disk; allocate channel ch02 device type disk; allocate channel ch03 device type disk; crosscheck backup; crosscheck archivelog all; delete noprompt expired archivelog all; delete noprompt expired backup; report obsolete; delete noprompt obsolete; backup as compressed backupset database format 'D:\backup\%T\full_%T_%u_%p.%d' tag='FULLDB-%T' plus archivelog format 'D:\backup\%T\arch_%T_%u_%p.%d'  delete all input; sql 'alter system archive log current'; backup current controlfile format 'D:\backup\%T\control_%T_%u_%p.%d.bak'; backup spfile format 'D:\backup\%T\spfile_%T_%u_%p.%d.bak'; crosscheck backup; crosscheck archivelog all;   delete noprompt expired archivelog all; delete noprompt expired backup; report obsolete; delete noprompt obsolete;   release channel ch00; release channel ch01; release channel ch02; release channel ch03; }  

2、 保留数据备份时间或份数 CONFIGURE RETENTION POLICY TO REDUNDANCY 2; 备注:在磁盘空间允许情况下,可以配置多个副本。

相关推荐