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
