- 挂載nfs,并設定開機自動挂載。

2,編寫level0備份腳本并chmod執行權限。
[oracle@oracle170 job]$ vim bak0.sh
#~/.bashrc中有定義環境變量,腳本中就不需要重複定義。
export ORACLE_SID=OCR
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export TMP=/tmp
export TMPDIR=$TMP
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$HOME/.local/bin:$HOME/bin:$PATH
export EDITOR=vim
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin
export SQLPATH=$ORACLE_HOME/sqlplus/admin
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
alias sqlplus=\'rlwrap sqlplus\'
alias rman=\'rlwrap rman\'
alias asmcmd=\'rlwrap asmcmd\'
/u01/app/oracle/product/12.2.0/db_1/bin/rman target / log=/orabaskup/data/bak0.log append <<EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
crosscheck archivelog all;#先crosscheck一下減少archivelog備份集大小
delete noprompt expired archivelog all;
backup incremental level 0 tag \'bak0\' format \'/orabaskup/data/bak0_%u_%d_%s\' database ;
sql \'alter system archive log current\';#歸檔level0備份日志
backup archivelog all tag=\'arch_bak\' format \'/orabaskup/data/archbak_%u_%d_%s\' delete input;#控制檔案和參數檔案會自動備份。
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;#删除廢棄的備份。
release channel c1;
release channel c2;
release channel c3;
}
EOF
3,編寫差異增量level1備份腳本并chmod執行權限。
[oracle@oracle170 job]$ vim bak1.sh
export ORACLE_SID=OCR
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export TMP=/tmp
export TMPDIR=$TMP
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$HOME/.local/bin:$HOME/bin:$PATH
export EDITOR=vim
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin
export SQLPATH=$ORACLE_HOME/sqlplus/admin
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
alias sqlplus=\'rlwrap sqlplus\'
alias rman=\'rlwrap rman\'
alias asmcmd=\'rlwrap asmcmd\'
/u01/app/oracle/product/12.2.0/db_1/bin/rman target / log=/orabaskup/data/bak1.log append <<EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
crosscheck archivelog all;
delete noprompt expired archivelog all;
backup incremental level 1 tag \'bak1\' format \'/orabaskup/data/bak1_%u_%d_%s\' database ;
sql \'alter system archive log current\';
backup archivelog all tag=\'arch_bak\' format \'/orabaskup/data/archbak_%u_%d_%s\' delete input;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
release channel c1;
release channel c2;
release channel c3;
}
EOF
4,oracle使用者建立任務計劃crontab
[oracle@oracle170 data]$ crontab -e
1 0 * * sat /orabaskup/job/bak0.sh#周六level0級備份
1 0 * * sun,mon,tue,wed,thu,fri /orabaskup/job/bak1.sh#其他level1級備份