目录
异步传输
数据源/上游系统
- exp
将数据源中的数据导出 ==> dmp 文件- scp
把dmp文件远程传输到中间服务器
中间层服务器
异步传输
命名规范
系统名_用户名_时间.dmp
贴源层/ODS
- scp
把文件从中间层服务器传输过来- imp
把数据文件导入贴源层中的数据库中
脚本
导出
exp 用户名/密码@IP地址:端口号/实例名 file=路径/文件名.dmp log=日志文件名.log tables=表1,表2;
导入
imp 用户名/密码@IP地址:端口号/实例名 file=路径/文件名.dmp full=y
压缩
zip -r 文件名.zip 文件
解压
unzip -j 文件名.zip
远程传输命令
scp 源 目标
前一天的数据导入导出
shell脚本
数据源中导出
exp
vi exp.sh
#!/bin/bash
CURDATE=$(date -d "1 days ago" '+%Y-%m-%d') #前一天
cd /home/oracle/dump_yuan #到dump_yuan下导出
exp tom/123456@ip:1521/orcl file=tom_$CURDATE.dmp log=tom_$CURDATE.log tables=student #从数据库tom用户下导出
zip -r tom_$CURDATE.zip tom_$CURDATE.dmp #压缩
scp tom_$CURDATE.zip root@ip:/home/dump #传输到Linux服务器下root账户下/home/dump目录里
chmod +x exp.sh
./exp.sh
贴源层导入
imp
#!/bin/bash
CURDATE=$(date -d "1 days ago" '+%Y-%m-%d') #前一天
scp root@IP:/home/dump/tom_$CURDATE.zip /home/oracle/dump_ods #传输到贴源层
cd /home/oracle/dump_ods #到dump_ods下
if [ -e "tom_$CURDATE.zip" ] #如果有这个
then
sqlplus O_tom/123456@IP:1521/orcl:<<EOF
drop table student; #就删掉
exit
EOF
unzip -j tom_$CURDATE.zip #解压tom_$CURDATE这个文件
imp O_tom/123456@IP:1521/orcl file=tom_$CURDATE.dmp full=y #导入到数据库用户O_tom里
exit
fi