文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Oracle export 數據自動壓縮

Oracle export 數據自動壓縮

时间:2010-08-12  来源:gangjh

 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 < $PIPE |curl -T - $DMPFILE ;;
    ftp://*.bz2) bzip2 < $PIPE |curl -T - $DMPFILE ;;
    *.gz) gzip < $PIPE > $DMPFILE ;;
    *.bz2) bzip2 < $PIPE > $DMPFILE ;;
    *) echo "'$1' cannot be compressd by bexp()" ;;
esac



阿飛 2010/08/12
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载