1 2 3 4

异步传输

异步传输

银行通常会将核心系统的数据放到中间服务器上
采集核心系统数据时,我们只需到中间服务器获取信息即可

使用虚拟机模拟,会用两个步骤

  1. 导出

将192.168.0.33的LOAN1用户中的某个表,导出到中间文件服务器192.168.0.133中

  1. 导入

从文件服务器192.168.0.133上将文件导入到192.168.0.33的LOAN2BK中

导出

[oracle@localhost ~]$ cat exp.sh 
#!/bin/bash

# 获取昨日日期
CURDATE=$(date -d "1 days ago" '+%Y-%m-%d')
# 指定一个目录
backdir=/home/oracle/exp
# 指定目录下指定dmp文件
backfile=$backdir/$1_$2_$CURDATE.dmp

# 导出
cd $backdir
exp LOAN1/"123456"@192.168.0.33:1521/orcl file=$backfile log=$backdir/1g_$CURDATE.log tables=F_LN_LNP_CTRT_CBAPP;

# 压缩
zip -r $1_$2_$CURDATE.zip $backdir/$1_$2_$CURDATE.dmp

#ftp 文件传输
scp  $backdir/$1_$2_$CURDATE.zip root@192.168.0.133:/root
[oracle@localhost ~]$ ls exp/
1g_2020-03-15.log  CBD_SLZ_2020-03-15.dmp  CBD_SLZ_2020-03-15.zip  

登录133文件服务器查看

[root@localhost ~]# ls
anaconda-ks.cfg  CBD_SLZ_2020-03-15.zip

导入

新建导入用户LOAN2BK

SQL> CREATE USER LOAN2BK IDENTIFIED BY 123456;
User created.

SQL> GRANT DBA TO LOAN2BK;
Grant succeeded.
[oracle@localhost ~]$ cat imp.sh 
#!/bin/bash

# 获取日期
CURDATE=$(date -d "1 days ago" '+%Y-%m-%d')

# 目录
zjfwq=/root
fwq=/home/oracle/dw

# 文件名称
filename=$1_$2_$CURDATE.zip
backfile=$fwq/$filename

# 从中间服务器导入到导入层服务器上
scp root@192.168.0.133:$zjfwq/$filename $fwq

cd $fwq

if [ -e "$filename" ]; then
  # 解压到本地
  unzip -j $filename
  imp LOAN2BK/"123456"@192.168.0.33:1521/orcl file=$fwq/$1_$2_$CURDATE.dmp log=$fwq/imp_$CURDATE.log full=y
  exit 0
fi

[oracle@localhost ~]$ chmod 755 imp.sh 
[oracle@localhost ~]$ ./imp.sh CBD SLZ
[oracle@localhost ~]$ ls dw
CBD_SLZ_2020-03-15.dmp  CBD_SLZ_2020-03-15.zip  imp_2020-03-15.log

登录LOAN2BK用户查看是否成功

SQL> SELECT TABLE_NAME FROM USER_TABLES;

TABLE_NAME
------------------------------
F_LN_LNP_CTRT_CBAPP
posted @ 2020-03-16 22:20  多走多看  阅读(394)  评论(1)    收藏  举报