Linux下Oracle expdp和rman备份脚本
1、Linux下脚本 :expdpe脚本:
vi expdp.sh
PATH=$PATH:$HOME/bin
export PATH
export PS1='[\u@\h \w]$'
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=xxxuatdb1
export ORACLE_BASE=/oracle/app/db
export ORACLE_HOME=/oracle/app/product/12.1.0/db_1
export ORACLE_UNQNAME=xxxuatdb
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export EDITOR=vi
export
export NLS_LANG=american_america.AL32UTF8
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
umask 022
echo "begin_dbaflag `date +%Y-%m-%d` `date +%H:%M:%S`"
cd /backup/expdp
Dat=`date +%Y%m%d`
dat=`date +%Y-%m-%d-%H-%M-%S`
day=`date +%w`
if [ -e $day ]
then rm -rf $day
fi
mkdir $day;
sql (){
sql="select current_scn from v\$database;"
sqlplus /nolog <<EOF
conn / as sysdba;
$sql
EOF
}
cd /backup/expdp/$day
sql >sql.log 2>&1
scn=`cat sql.log |egrep -v "Version|Release|Copyright|SQL|Disconnected|OLAP|Application|CURRENT_SCN|-"|sed '/^$/d'|awk '{print $1}'`
echo ${scn}
expdp xxxx2/xxxx2 dumpfile=expdp:xxxx2-${Dat}.dmp flashback_scn=${scn} logfile=expdp:xxxx2-${Dat}.log cluster=n exclude=table:\"like \'VT%\'\"
expdp xxxx3/xxxx3 dumpfile=expdp:xxxx3-${Dat}.dmp flashback_scn=${scn} logfile=expdp:xxxx3-${Dat}.log cluster=n exclude=table:\"like \'VT%\'\"
expdp xxxx4/xxxx4 dumpfile=expdp:xxxx4-${Dat}.dmp flashback_scn=${scn} logfile=expdp:xxxx4-${Dat}.log cluster=n exclude=table:\"like \'VT%\'\"
#cd /backup/expdp/
mv xxxx*.dmp $day;
mv xxxx*.log $day;
echo -e "\n end_dbaflag `date +%Y-%m-%d` `date +%H:%M:%S`"
1.1需要在实例下创建导入目录expdp
a.先在操作系统上创建备份的目录,并且需要有oracle:oinstall权限,这里以/backup/expdp目录为例:
mkdir -p /backup/expdp;
chmod 775 /backup/expdp;
chown oracle:oinstall /backup/expdp
b.实例下创建expdp导出目录并给予导出权限
sqlplus / as sysdba
create directory expdp as '/backup/expdp';
grant read,write on directory expdp to public;
grant imp_full_database to public;
2.linux下rman全备份脚本
vi rman.sh
PATH=$PATH:$HOME/bin
export PATH
export PS1='[\u@\h \w]$'
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=xxxuatdb1
export ORACLE_BASE=/oracle/app/db
export ORACLE_HOME=/oracle/app/product/12.1.0/db_1
export ORACLE_UNQNAME=xxxuatdb
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export EDITOR=vi
export
export NLS_LANG=american_america.AL32UTF8
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
umask 022
echo "begin_dbaflag `date +%Y-%m-%d` `date +%H:%M:%S`"
cd /backup/rman_backup
Dat=`date +%Y%m%d`
dat=`date +%Y-%m-%d-%H-%M-%S`
day=`date +%w`
if [ -e $day ]
then rm -rf $day
fi
mkdir $day;
cd $day
rman target system/xxxuat123$ log="/backup/rman_backup/$day/rmanback$dat.log" <<EOF
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman_backup/$day/control%F';
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
sql 'alter system checkpoint';
crosscheck archivelog all;
crosscheck backup;
delete noprompt obsolete;
delete noprompt expired backup;
delete expired archivelog all;
delete noprompt archivelog until time 'sysdate-7';
run {
allocate channel c1 type disk maxpiecesize 4096M rate 20M;
allocate channel c2 type disk maxpiecesize 4096M rate 20M;
backup as compressed backupset format '/backup/rman_backup/$day/%T_%d_%s_%p.dat' tag 'full_dat' database plus archivelog;
backup as compressed backupset format '/backup/rman_backup/$day/%T_%d_%s_%p.ora' tag 'full_ora' spfile;
backup as compressed backupset format '/backup/rman_backup/$day/%T_%d_%s_%p.ctl' tag 'full_ctl' current controlfile;
backup as compressed backupset format '/backup/rman_backup/$day/AL_%d_%T_S%s_P%p' tag 'all_arc' archivelog all delete input;
release channel c1;
release channel c2;
}
EOF
echo -e "\n end_dbaflag `date +%Y-%m-%d` `date +%H:%M:%S`"
以上环境变量改为自己Oracle系统用户下.bash_profile中内容,并修改备份导出的目录位置。
Linux下Oracle expdp和rman备份脚本
本文2024-09-22 20:30:20发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-114048.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf