ITPub博客

首页 > 数据库 > Oracle > RMAN定时备份和恢复脚本

RMAN定时备份和恢复脚本

原创 Oracle 作者:a960549548 时间:2024-03-14 09:46:06 0 删除 编辑

rman恢复数据文件

export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product/11.2.0/db_1
export ORACLE_SID=orc1
rman target / log=/oradata/backup/rman.log << EOF
run{
CATALOG BACKUPPIECE '/oradata/backup/FULL_BACKUP_20190702_49354.BAK';
CATALOG BACKUPPIECE '/oradata/backup/FULL_BACKUP_20190703_49355.BAK';
set newname for datafile 1 to '/oradata/orc1/system01.dbf';
set newname for datafile 2 to '/oradata/orc1/sysaux01.dbf';
set newname for datafile 3 to '/oradata/orc1/undotbs01.dbf';
set newname for datafile 4 to '/oradata/orc1/users01.dbf';
set newname for datafile 5 to '/oradata/orc1/example01.dbf';
set newname for datafile 6 to '/oradata/orc1/undotbs02.dbf';
set newname for datafile 7 to '/oradata/orc1/htbase01.dbf';
restore database;     
switch datafile all;
}
exit
EOF

 

windows中 rman 定时备份

让 rman_backup.bat 调用 backup_database.sh

rman_backup.bat

rman target / cmdfile= C:\TEMP\backup_database.sh > C:\TEMP\backupdatabaselog.log

 

backup_database.sh

run{
    crosscheck backupset;
    delete noprompt expired backupset;
    delete noprompt backupset completed before 'sysdate-10';
    backup as compressed backupset database format 'C:\TEMP\full_backup_%Y%M%D_%s.bak' tag='FULLDB';
    }

 

run{
    crosscheck backupset;
    delete noprompt expired backupset;
    delete noprompt backupset completed before 'sysdate-10';
    backup database format 'C:\TEMP\full_backup_%Y%M%D_%s.bak' tag='FULLDB';
    }

 

 

windows中rman定时备份 , 保留 2 天

rmanbak.bat

set var=%date:~0,4%%date:~5,2%%date:~8,2%
rman target / cmdfile='Z:\scripts\full_backup.txt' log='Z:\scripts\full_backup.log' append

 

Full_backup.txt

run{
delete noprompt backupset completed before 'sysdate-2' tag='FULLDB';
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-7';
allocate channel d1 type disk;
backup database include current controlfile format 'Z:\rmanbak\EMRRMANFULL_%T_%s' tag='FULLDB';
release channel d1;
}

 

windows 中 rman定时 备份脚本(只保留一天)

rmanbackp.bat :

echo %date% %time% >> C:\tmp\OracleBackUp.log
rman  target SYS/oracle nocatalog CMDFILE'C:\tmp\rmanbackup.rcv' >>C:\tmp\OracleBackUp.log

 

rmanbackup.rcv :

run {
allocate channel oem_disk_backup device type disk;
backup as compressed backupset full tag 'radinfo_full_backup' database format 'C:\tmp\full_%d_%t_%s_%p.bak';
backup as compressed backupset archivelog all format 'C:\tmp\archive_%d_%s_%p_%u.bak' delete all input;
release channel oem_disk_backup;
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
exit


 

 

linux 中 rman 定时备份脚本 (只保留一天)

#!/bin/ksh
. /home/oracle/.bash_profile
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product/11.2.0/db_1
export ORACLE_SID=orcl2
rman target / log /backup/rman.log append<<EOF
run {
allocate channel oem_disk_backup device type disk;
backup as compressed backupset full tag 'radinfo_full_backup' database format '/backup/full_%d_%t_%s_%p.bak';
release channel oem_disk_backup;
}
crosscheck backup;
delete noprompt expired backup;--------------删除备份和归档,若要设置多保留几天,这两行勿用
delete noprompt obsolete;
#delete noprompt  backup completed before 'sysdate-7'; ------删除七天前的备份
#delete noprompt archivelog until time 'sysdate-7';------删除七天前的归档
EOF
#----set files to remote
#!/bin/bash
ftp -n 10.33.48.135 <<EOF
user root Snp123!@#
prompt
binary
lcd /backup
cd /data/dmp
mput *.bak
bye
EOF


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3008913/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: exp备份脚本
请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171518