天天看點

UNIX下 oracle expdp,Linux 平台下 Oracle 資料泵備份(expdp) SHELL 腳本

Linux 平台下 Oracle 資料泵備份(expdp) SHELL 腳本

分類: Linux

資料泵是Oracle 10g的新特性,10g以後的版本才有。 關于資料泵的理論知識參考我的Blog:

Oracle 10g EXPDP和IMPDP使用說明

http://www.doczj.com/doc/6c67fb6352ea551810a687e2.html/tianlesoftware/archive/2009/10/16/4674224.aspx

Logicalbackup.sh

#!/bin/ksh

# ##################################################################

#

# created by tianlesoftware

# 2010-7-7

# Email: tianl[email protected]://www.doczj.com/doc/6c67fb6352ea551810a687e2.html

# ##################################################################

# 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

部署的時候,隻要把這個sh 腳本添加到crontab 中就可以了。

添加方法: crontab -e 進入編輯狀态,然後把腳本的路徑和相關執行時間寫上。儲存後用crontab -l 就可以檢視内容:

$ crontab -l

45 1 * * * /u03/scripts/logicbackup.sh

前面5個參數的意義:

0~59 表示分

1~23 表示小時

1~31 表示日

1~12 表示月份

0~6 表示星期(其中0表示星期日)

有于更多crontab 的使用,參考blog:

Unix c