zoukankan      html  css  js  c++  java
  • Linux环境下用exp备份Oracle数据表并导入的脚本

    有时候为了两个Oracle数据库部分表的同步,我们可以采用从源库exp需要的表再在本地执行imp导入。

    操作的思路:首先从远程数据库exp需要的表到本地,然后在本地执行drop table命令把要替换的表删除,这里要注意那些主外键关联的表的删除的顺序,最后再执行imp导入即可。脚本如下:

    首先建立执行命令的.sh文件:

    [oracle@erpdevdb ~]$ cat erpupdate.sh
    echo "----------------------------------------------------------------" >>/home/oracle/erptable.log
    echo `date` >> /home/oracle/erptable.log
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
    export ORACLE_SID=erpstudydb
    export PATH=/home/oracle/bin:.:/u01/app/oracle/oracle/product/10.2.0/db_1/bin
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

    cd /home/oracle

    SJ=`date '+%Y%m%d'`
    exp banping/******@remotedb parfile=/home/oracle/parexptbl.lst file=/home/oracle/exptable/table${SJ}.dmp

    sqlplus -S "banping/******" @/home/oracle/droptable.sql

    imp userid=banping/****** file=/home/oracle/exptable/table${SJ}.dmp full=y commit=y

    #delete old files
    find /home/oracle/exptable -mtime +10 -exec ls -la {} \; >>/home/oracle/erptable.log
    find /home/oracle/exptable -mtime +10 -exec rm {} \; >>/home/oracle/erptable.log

    echo `date` >> /home/oracle/erptable.log
    echo "----------------------------------------------------------------" >>/home/oracle/erptable.log
    cat /home/oracle/erptable.log | sed "s/\n/\r\n/g" >/home/oracle/expimpmail.txt
    mail -s "StudyDB EXP-IMP Log" banping@banping.com < /home/oracle/expimpmail.txt
    rm /home/oracle/erptable.log

    其中droptable.sql就是一堆删除表的命令:

    [oracle@erpdevdb ~]$ cat droptable.sql
    drop table msgtask;
    drop table rdata;
    ......

    而parexptbl.lst就是要导入的表的列表:

    [oracle@erpdevdb ~]$ cat parexptbl.lst
    tables=(msgtask,rdata,......)

    这几个文件都弄好了之后,把.sh加入到定时任务即可:

    [oracle@erpdevdb ~]$ crontab -l
    30 5 * * * /home/oracle/erpupdate.sh >>/home/oracle/erptable.log 2>&1

    这样,每天通过邮件就可监控导出导入的信息了。

  • 相关阅读:
    leetcode 190 Reverse Bits
    vs2010 单文档MFC 通过加载位图文件作为客户区背景
    leetcode 198 House Robber
    记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence
    逆序数2 HDOJ 1394 Minimum Inversion Number
    矩阵连乘积 ZOJ 1276 Optimal Array Multiplication Sequence
    递推DP URAL 1586 Threeprime Numbers
    递推DP URAL 1167 Bicolored Horses
    递推DP URAL 1017 Staircases
    01背包 URAL 1073 Square Country
  • 原文地址:https://www.cnblogs.com/wzmenjoy/p/2367629.html
Copyright © 2011-2022 走看看