ora2pg的安裝與使用


ora2pg是一款可以方便將oracle內的數據導出並轉換成pgsql格式的工具。它支持導出表,視圖,序列等,十分強大,下面介紹它的安裝與使用:
 
安裝ora2pg需要以下三個軟件支持
  1)、DBD::Oracle
  2)、DBI
  3)、Ora2pg
要求:perl版本5.8以上
查看perl版本
  perl -v
1、首先安裝依賴包
  
   yum install perl-DBI perl-DBD-Pg perl-ExtUtils-MakeMaker gcc
  wget http://search.cpan.org/CPAN/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.74.tar.gz
  tar -zxvf DBD-Oracle-1.74.tar.gz
  cd DBD-Oracle-1.74
  source /home/oracle/.bash_profile
  perl Makefile.PL -l
  make
  make install        

  

 
2、安裝 ora2pg包
  下載地址:https://sourceforge.net/projects/ora2pg/files/?source=navbar
  解壓文件
  
  tar -jxvf ora2pg-18.2.tar.bz2
  cd ora2pg-18.2
  perl Makefile.PL
  make
  make install
  默認安裝在 /usr/local/bin/ 目錄下
3、配置
 
ORACLE_DSN dbi:Oracle:host=192.168.0.153;sid=orcl
ORACLE_USER system
ORACLE_PWD highgo
SCHEMA TEST (注意要大寫,否則匹配不到)
TYPE TABLE DATA 設置導出的內容
allow emp 導出TEEST下面的emp表 如果需要讓數據自動導入到PostgreSQL中,則需要同時配置關於連接PostgreSQL的相關信息,配置類似上面Oracle的配置,如下: PG_DSN dbi:Pg:dbname
=test_db;host=192.168.100.106;port=5432 PG_USER test PG_PWD highg

4、使用

ora2pg -c /etc/ora2pg.conf

vim /etc/ora2pg/ora2pg.conf
-d | --debug :啟用詳細輸出。   -h | --help :打印出簡單的幫助信息。   -v | --version :顯示Ora2Pg的版本。   -c | --conf file :使用另一個替代的配置文件,默認是/etc/ora2pg/ora2pg.conf。   -l | --log file :使用一個日志文件,默認是標准輸出。   -o | --out file :指定導出的SQL腳本文件的路徑,默認是當前目錄下。   -t | --type export :指定導出格式。覆蓋配置文件中指定的TYPE。   -p | --plsql :啟用PLSQL到PLPSQL碼的轉換。   -s | --source dsn :設置Oracle DBI數據源。   -u | --user user :設置連接Oracle的用戶名。   -w | --password pass :設置Oracle用戶密碼。   -n | --namespace schema :設置用於提取的Oracle模式名稱。   -b | --basedir dir :設置默認的輸出文件目錄,輸出的文件將被保存到該目錄。   -x | --xtable relname :用於顯示給定表的列名,僅在TYPE為SHOW_COLUMN時使用。   -f | --forceowner :如果設置為1將促使Ora2Pg設置表和序列的所有者。如果將其值設置為一個用戶名會被設定為對象的所有者。   --nls_lang code :設置Oracle NLS_LANG客戶端編碼。   --client_encoding code :設置PostgreSQL客戶端編碼。   -i | --input_file file :文件包含在沒有Oracle數據庫連接發起時Oracle PL/SQL代碼的轉換。  

如果出現以下錯誤

請不要驚慌,耐心等待即可

 5、將導出的文件導入pgsql數據庫

  首先創建一個test_db數據庫,再創建一個test用戶,在test_db數據庫下以超級用戶創建一個schema,並將該schema的權限者設為test,最后以test用戶在test_db數據庫下導入數據腳本:

$ psql  
postgres=# CREATE DATABASE test_db;  
postgres=# CREATE USER test password ‘highgo’;  
postgres=# \c test_db  
test_db=# CREATE schema test authorization test;  
test_db=# \c test_db test  
test_db=> \i /root/output.SQL 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM