Linux环境下用exp备份Oracle数据表并导入的脚本
2012-01-17 17:25
573 查看
有时候为了两个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
这样,每天通过邮件就可监控导出导入的信息了。
操作的思路:首先从远程数据库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
这样,每天通过邮件就可监控导出导入的信息了。
相关文章推荐
- Linux环境下用exp备份Oracle数据表并导入的脚本
- Linux环境中Oracle数据导入与导出备份创建用户操作
- Linux环境中Oracle数据导入与导出备份创建用户操作
- Linux环境中Oracle数据导入与导出备份操作
- 分享一个LINUX下备份ORACLE到本地磁盘的脚本EXP,保留7天
- oracle数据库备份(2)——Oracle 的数据导出导入命令:exp、imp
- Linux环境数据备份Python脚本
- Linux环境下Oracle exp/imp导出导入工具的使用
- Linux环境下Oracle exp/imp导出导入工具的使用
- Oracle数据导入导出imp/exp就相当于oracle数据还原与备份
- oracle linux shell sqlloader导入文件以及exp备份的优化问题
- Oracle数据备份Imp导入和Exp导出
- Linux 下 Oracle备份脚本(RMAN/EXP)
- Linux 下 Oracle备份脚本(RMAN/EXP)
- Linux环境下Oracle数据泵(expdp)备份报ORA-39006: internal error
- Linux 平台下 Oracle 数据泵备份(expdp) SHELL 脚本
- [Oracle]配置path使oracle备份/导入数据命令exp/imp起作用
- Linux环境下oracle数据库exp命令导出数据及imp命令导入数据
- oracle 数据备份 导入导出 exp,imp
- Oracle数据导入导出imp/exp就相当于oracle数据还原与备份