oracle服务器自动备份

1、

$sqlplus /nolog
$conn sys /as sysdba
SQL> create directory expdata as '/home/oracle/oraclebak';
Directory created.
SQL> grant read,write on directory expdata to public;  
SQL> exit

2、

$mkdir /home/oracle/oraclebak

3、创建备份角本,给执行权限 

----------------------

 

 #!/bin/sh  
      
    export ORACLE_BASE=/home/oracle/app/oracle 
    export ORACLE_HOME=$ORACLE_BASE/db11g
    export ORACLE_SID=X
    export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin  
      
    export DATA_DIR=/home/oracle/oraclebak  
   
    export DEL_TIME=`date -d "5 days ago" +%Y%m%d`  
    export BAKUP_TIME=`date +%Y%m%d%H%M%S`  
    echo "Starting bakup..."  
    echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp"  
    expdp system/'密码' directory=expdata dumpfile=$BAKUP_TIME.dmp full=y logfile=$BAKUP_TIME.log
      
    echo "Delete the file bakup before 5 days..."  
    rm -rf $DATA_DIR/$DEL_TIME*.dmp   $DATA_DIR/$DELTIME*.log  
    echo "Delete the file bakup successfully. "

4、

$crontab -e
#!/bin/sh  
00 3 * * * /home/oracle/orale.bak.sh