oracle數據庫落地成本地文件

使用場景:把Oracle數據庫落地為本地文件。

1、安裝oracle client

  rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 
  rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

配置環境變量命令:vim /etc/profile
配置如下:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64  #通過whereis oracle 查看oracle安裝路徑
export PATH=/root/jdk1.8.0_121/bin:$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
保存之后,執行:source /etc/profile 

2、修改oracle配置文件,配置連接數據庫

cd /usr/lib/oracle
編輯配置文件:vim tnsnames.ora
 
DATABASENAME =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = servicename)
    )
  )
 
SERVICE_NAME查詢方法
show parameter service_names;

3、測試是否連接成功

sqlplus username/password@service_name

4、布置腳本,每天生成一個ORACLE的最新文件(不適用與增量采集)

#! /bin/bash

new_date=`date +%Y%m%d`
export NLS_LANG=american_america.AL32UTF8
sql="SELECT * FROM SERVER_DETAIL_${new_date}"

sqlplus dbname/passwd@service_names >>/app/oracleData/${new_date}'.log' << EOF
set heading off
set line 4000
set numwidth 12
set feedback on
set colsep','
set WRAP OFF
${sql};
exit
EOF
sed -i 1,12d /app/oracleData/${new_date}'.log'
sed -i -e '/selected/,$d' /app/oracleData/${new_date}'.log'
sed -i -e '/Disconnected/,$d' /app/oracleData/${new_date}'.log'
sed -i '$d' /app/oracleData/${new_date}'.log'
sed -i '/^$/d' /app/oracleData/${new_date}'.log'
cat /app/oracleData/${new_date}'.log' |awk -F ',' '{print $1,$2,$3,$4,$5,$6,$7,$8,$9}' |awk '{sub("^ *","");sub(" *$","");print $1,$2,$3,$4,$5,$6,$7,$8,$9}' > /app/oracleData/data/${new_date}'.log'
rm -f /app/oracleData/${new_date}'.log'

如果亂碼執行:

export NLS_LANG=american_america.AL32UTF8
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容