Oracle_fdw是PG的一個外部數據接口,可以使PostgreSQL輕松跨庫操作Oracle。Oracle_fdw的作用有以下兩點:
- PG可以跨庫增刪改查Oracle中的表,可以查詢Oracle的視圖,可以使PG中的表和Oracle中表/視圖作Join查詢,類似dblink的功能。
- 快速將Oralce表遷移進入PostgreSQL。
本文簡單介紹下Oracle_fdw的安裝和使用。
一、環境
centos6.8 64位,postgresql9.6.8 x86_64
二、oracle_fdw安裝
官方地址:http://pgxn.org/dist/oracle_fdw/ ,選擇一個版本下載。
2.1 安裝Oracle Instant Client
具體安裝參照centos安裝oracle客戶端
此安裝不包括sdk文件,因此從oralce官網下載 sdk-10.2.0.5.0-linux-x64.zip文件,放到/opt/soft/目錄下
解壓sdk-10.2.0.5.0-linux-x64.zip文件
進入解壓出來的instantclient_10_2文件,拷貝sdk文件到$ORACLE_HOME目錄
進入以下目錄
創建軟連接
設置/etc/profile環境變量
保存退出,執行source /etc/profile命令,使配置生效。
2.2 編譯oracle_fdw
啟用postgres用戶環境變量
解壓oracle_fdw-2.0.0.zip
編譯安裝oracle_fdw
沒報錯,代表安裝成功。
三、創建oracle_fdw擴展
四、使用oracle_fdw
4.1 創建server
打開$ORACLE_HOME/network/admin/tnsnames.ora,內容如下:
先用oracle的客戶端如pl/sql登陸下,登陸正常進行下一步。
oradb_12是server的名稱,'12'指向tnsnames.ora中配置的實例名。
4.2 授予用戶權限
將剛創建的服務oradb_12授予權限於postgresql用戶postgres。
4.3 數據庫同步
postgres為postgres數據庫用戶 swdn_new為被訪問的oracle數據庫用戶名,123456為密碼
4.4 創建foreign table
create foreign table t_record_change_foreign ( table_name varchar(32), last_update_time timestamp(6), trans_id varchar(64), commited numeric(1) )server oradb_12 options(schema 'SWDN_NEW',table 'T_RECORD_CHANGE');
SWDN_NEW為oracle數據庫用戶名,T_RECORD_CHANGE為需要訪問的Oracle數據庫的表,兩者均要大寫
4.5 查詢t_record_change_foreign表記錄
五、參考鏈接