数据泵是Oracle 10g的新特性,10g之后的版本才有。 关于数据泵的理论知识参考个人Blog:数据库
Logicalbackup.sh.net
#!/bin/kshblog
# Oracle Environment settingscrontab
PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/binip
export PATH资源
ORACLE_SID=SID;pw=oracle; export pw ; export ORACLE_SID部署
ORACLE_BASE=/dba/oracle; export ORACLE_BASEget
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 toSYSTEM;
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
#
expdpuser/pwdDIRECTORY=dump_backup_dir DUMPFILE=$DMP_FILE TABLESPACES=TS_NAMEElogfile=$LOG_FILEparallel=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 crontab 命令详解
------------------------------------------------------------------------------