Oracle 提供了exp程序,能方便的导出数据, 但该工具没有压缩功能。 对於磁盘空间紧张的主机,比较好的方法是使用用命名管道,将数据导到pipe, mknod /dev/pipe p, 通过gzip,或bzip2压缩数据 。 写了段小程序自动处理,并提供自动ftp到远端主机的功能 #!/bin/bash # Write : Gan Jian Hui # Description export ORACLE DUMP DATA and auto compress # can auto upload to ftp server # example: # bexp userid=user/pass log=/tmp/aa。
log rows=no owner=OLAPSYS file=ftp://ftpuser:ftppass@ftpserver/aaa。dmp。bz2 statistics=none # # Date : 2010/08/11 # PID=$$; PIPE="/tmp/tmp$USER。
pipe。$PID" PARFILE="/tmp/tmp$USER。parm。$PID" [ -z $ORACLE_HOME ] && exit [ -z "$*" ] && $ORACLE_HOME/bin/exp help=y if echo "$*" |grep -qi 'help=y' ;then $ORACLE_HOME/bin/exp help=y exit fi # [[ "$Parm" =~ '[Ff][Ii][Ll][Ee]=*' ]] && echo file while [ -n "$1" ] ; do Parm=$1 ; shift ; case $Parm in [fF][iI][lL][eE]\=*) echo "file=$PIPE" >>$PARFILE DMPFILE=${Parm:5} ;; *) echo "$Parm" >>$PARFILE ;; esac; done [ -f "$PARFILE" ] || exit [ -p $PIPE ] || mknod $PIPE p trap "rm -f -- '$PIPE' '$PARFILE'" EXIT case $DMPFILE in ftp://*) [ -e /usr/bin/curl ] || exit esac $ORACLE_HOME/bin/exp parfile=$PARFILE & case $DMPFILE in ftp://*。
gz) gzip $DMPFILE ;; *。bz2) bzip2 $DMPFILE ;; *) echo "'$1' cannot be compressd by bexp()" ;; esac
以上是我对于这个问题的解答,希望能够帮到大家。
全部