Oracle数据库中使用Shell对数据表导出与导入
使用Shell对Oracle数据表进行导出
shell命令如下:
#!/bin/sh
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin:.
export ORACLE_SID=orcl
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#export NLS_LANG=american_america.UTF8
#获取当前日期
CURDATE=$(date -d "1 days ago" '+%Y-%m-%d')
#指定一个目录
backdir=/home/oracle/dump
#指定目录下指定dmp文件名字
backupfile=$backdir/HX_HX1_$CURDATE.dmp
#删除指定日期导出文件
delete_prev_month_data_file()
{
premonth=$(date -d"5 days ago" '+%Y-%m-%d')
rm -rf $backdir/HX_HX1_$premonth*
}
#导出
cd $backdir
exp huangth/huangth@192.168.1.222/bow FILE=$backdir/HX_HX1_$CURDATE.dmp log=$backdir/dumlog.log tables=test;
#压缩
zip -r HX_HX1_$CURDATE.zip $backdir/HX_HX1_$CURDATE.dmp #压缩mydata目录
#ftp 文件传输
scp $backdir/HX_HX1_$CURDATE.zip oracle@192.168.1.222:/home/oracle/ODS
使用shell将数据文件导入到oracle
shell命令如下:
#!/bin/sh
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export PATH=$PATH:$ORACLE_HOME/bin:.
export ORACLE_SID=orcl
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#export NLS_LANG=american_america.UTF8
#获取当前日期
CURDATE=$(date -d "1 days ago" '+%Y-%m-%d')
#指定一个目录
backdir=/home/oracle/ODS
#指定目录下指定dmp文件名字
backupfile=$backdir/HX_HX1_$CURDATE.zip
filename=HX_HX1_$CURDATE.zip
cd $backdir
if [ -e "$filename" ]; then
#scp 从中间服务器导入到DW的ODS层服务器上面
#解压zip文件
unzip -j $filename
imp huangth/huangth@192.168.1.91/orcl file =/home/oracle/ODS/HX_HX1_$CURDATE.dmp log =/home/oracle/ODS/imp.log full = y
exit 0
fi