Linux 平臺下 Oracle 資料泵備份(expdp) SHELL 指令碼

murkey發表於2013-12-18
Logicalbackup.sh
#!/bin/ksh
# ##################################################################
#
#              created by tianlesoftware
#                   2010-7-7
#              Email: tianlesoftware@vip.qq.com
# ##################################################################
# Oracle Environment settings
PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin
export PATH
ORACLE_SID=SID; pw=oracle ; export pw ; export ORACLE_SID
ORACLE_BASE=/dba/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;  export ORACLE_HOME
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data ; export ORA_NLS33
TNS_ADMIN=$ORACLE_HOME/network/admin ; export TNS_ADMIN
LD_LIBRARY_PATH=$ORACLE_HOME/lib ; export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:/usr/local/bin:/usr/ccs/bin:$PATH:/usr/sbin
export PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib ; export CLASSPATH
backup_dir=/u03/oradata/dump_backup_dir
#資料泵需要directory,這裡指定自己的目錄就可以了
#SQL>CREATE DIRECTORY backup as ‘/u03/oradata/dump_backup_dir’;
#SQL>grant read,write on directory backup to SYSTEM; 
 
DMP_FILE=SID_`date +%d%m%Y_%H%M%S`.dmp
LOG_FILE=SID_`date +%d%m%Y_%H%M%S`.log
#
#  Let's start with an export of the database
#
expdp user/pwd DIRECTORY=dump_backup_dir DUMPFILE=$DMP_FILE TABLESPACES=TS_NAMEE logfile=$LOG_FILE  parallel=3;
# 這裡的2個說明,使用者名稱和密碼換成自己的,我這裡是備份表空間。 
# parallel 這個引數是控制並行度的,預設是1,但對於資料庫比較大的時候,可以設定parallel,這樣可以較少備份的
#時間,但是設定並行會耗CPU 資源,如果CPU 資源比較緊張的話,就不要設了。
#
# Just to be safe (with space), we'll compress the export file
# 壓縮dmp 檔案,較少對空間的佔用
#
cd $backup_dir
compress *.dmp
#
# Let's delete the backups and logs that are more than 1 days old
# 刪除超過一天的dmp檔案
#
find $backup_dir -name "NewccsTablespace*" -mtime +1 -exec rm {} /;
# That's all

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/500314/viewspace-1063638/,如需轉載,請註明出處,否則將追究法律責任。

相關文章