Ora2Pg 是一個免費工具,用于將 Oracle 或者 MySQL 數據庫遷移到 PostgreSQL。它通過連接 Oracle 數據庫,執行自動掃描并且提取數據庫的結構和數據,然后生成相應的 SQL 腳本。這些腳本可以用于將數據庫結構和數據導入 PostgreSQL 之中。
Ora2Pg 可以用于各種場景,小到 Oracle 數據庫的反向工程,大到大型企業數據庫遷移,或者簡單地將一些 Oracle 數據復制到 PostgreSQL 數據庫。它非常簡單易用,甚至不需要任何 Oracle 數據庫的相關知識,只需要提供連接到 Oracle 數據庫的配置參數。
Ora2Pg 由一個 Perl 腳本(ora2pg)以及一個 Perl 模塊(Ora2Pg.pm)組成,唯一需要做的事情就是修改它的配置文件 ora2pg.conf,設置連接 Oracle 數據庫的 DSN 和一個可選的模式名稱。完成之后,只需要設置導出的類型:
TABLE(包括約束)、VIEW、MVIEW、TABLESPACE、SEQUENCE、INDEXES、TRIGGER、GRANT、FUNCTION、PROCEDURE、PACKAGE、PARTITION、TYPE、INSERT 或 COPY、FDW、QUERY、KETTLE 以及 SYNONYM。
默認情況下,Ora2Pg 導出一個文件,可以通過 psql 客戶端將文件加載到 PostgreSQL 數據庫;但是也可以在配置文件中設置一個數據庫的 DSN,直接導入 PostgreSQL 數據庫。通過 ora2pg.conf 中的配置選項,可以控制導出的內容和方式。
下面介紹ora2pg是如何遷移表數據的:
要求:perl版本5.8以上
# 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-22.1.tar.bz2
# cd ora2pg-22.1
# perl Makefile.PL
# make
# make install
默認安裝在/usr/local/bin/目錄下
3. 編輯配置文件
# vi ora2pg_tab_1.conf
ORACLE_HOME /u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_DSN dbi:Oracle:host=x.x.x.x;sid=PROD;port=xxx
ORACLE_USER xxxxxxx
ORACLE_PWD xxxx
LOGFILE /tmp/test.log
USER_GRANTS 0
SCHEMA xxxx
EXPORT_SCHEMA 0
#TYPE TABLE
PARALLEL_TABLES 4
JOBS 4
PG_NUMERIC_TYPE 0
PG_INTEGER_TYPE 1
DEFAULT_NUMERIC float
SKIP fkeys pkeys ukeys indexes checks
NLS_LANG AMERICAN_AMERICA.UTF8
OUTPUT output.sql
LIMIT 100000
PG_DSN dbi:Pg:dbname=xxxx;host=x.x.x.x;port=xxx
PG_USER xxx
PG_PWD xxxxxx
PG_SCHEMA xxx
LOG_ON_ERROR 0
BLOB_LIMIT 100
TRUNCATE_TABLE 1
DISABLE_SEQUENCE 1
PG_VERSION 12
EMPTY_LOB_NULL
ORA_INITIAL_COMMAND
IMPORT imp_tab_1.conf
CREATE_SCHEMA 1
COMPILE_SCHEMA 0
debug 1
# vi imp_tab_1.conf
allow tablename
4. 執行導入
5. 查看導入日志
# tail -111f /tmp/test.log
可以看到當前導入速度
導入完成,可以看到平均速度
注意事項:
遷移數據之前一定要確保源端和目標端的表名、表結構都完全一致,否則導入會失敗。
開并行需謹慎,需要根據機器CPU的當前使用情況來確定。如果只導入單表,可以將PARALLEL_TABLES參數為調整為1。
配置文件中的用戶需要對表有相關使用權限,建議導數時使用高權限用戶。
TRUNCATE_TABLE參數會清空目標端表中現有數據,需要根據實際情況謹慎使用。
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129767.html
摘要:指南無論你正在構建什么,這些指南都旨在讓你盡快提高工作效率使用團隊推薦的最新項目版本和技術。使用進行消息傳遞了解如何將用作消息代理。安全架構的主題指南,這些位如何組合以及它們如何與交互。使用的主題指南以及如何為應用程序創建容器鏡像。 Spring 指南 無論你正在構建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團隊推薦的最新Spring項目版本和技術。 入門指南 這些...
摘要:對于廣大的前端開發人員來說,網站構建本是家常便飯其中也不得不涉及到性能優化的問題。將不影響首屏的資源和當前屏幕資源不用的資源放到用戶需要時才加載,可以大大提升重要資源的顯示速度和降低總體流量按需加載會導致大量重繪,影響渲染性能。對于廣大的前端開發人員來說,網站構建本是家常便飯;其中也不得不涉及到性能優化的問題。之前也有接觸過,今天總結一下這方面的技巧,下面是我的一下認知,歡迎探討: ? Nu...
摘要:表示本次查詢使用了索引,具體來說,是使用了和上的索引,。建立索引時,或者是每執行次查詢之后,查詢優化器都會重新評估查詢計劃。上一篇文章指南使用復合索引操作符如何使用索引索引對象和數組索引基數下一篇文章指南索引類型 上一篇文章:MongoDB指南---11、使用復合索引、$操作符如何使用索引、索引對象和數組、索引基數下一篇文章:MongoDB指南---13、索引類型 使用explain...
摘要:表示本次查詢使用了索引,具體來說,是使用了和上的索引,。建立索引時,或者是每執行次查詢之后,查詢優化器都會重新評估查詢計劃。上一篇文章指南使用復合索引操作符如何使用索引索引對象和數組索引基數下一篇文章指南索引類型 上一篇文章:MongoDB指南---11、使用復合索引、$操作符如何使用索引、索引對象和數組、索引基數下一篇文章:MongoDB指南---13、索引類型 使用explain...
摘要:每一個規則都是一個插件并且你可以在運行時添加更多的規則。強制回調函數最大嵌套深度層 因為前幾天發現 CSDN上有直接把我文章 復制過去然后標原創的情況,以后會統一在博客頭部加入原文鏈接~ 本文個人博客原址 在很久之前就想通過工具來規范自己的代碼風格,減少程序出錯的概率,如果看過我的一個前端程序猿的Sublime Text3的自我修養,這篇博客的朋友,肯定知道在當時我使用Sublim...
閱讀 1347·2023-01-11 13:20
閱讀 1685·2023-01-11 13:20
閱讀 1133·2023-01-11 13:20
閱讀 1860·2023-01-11 13:20
閱讀 4101·2023-01-11 13:20
閱讀 2705·2023-01-11 13:20
閱讀 1386·2023-01-11 13:20
閱讀 3598·2023-01-11 13:20