Ora2Pg 是一個免費工具,用于將 Oracle 或者 MySQL 數(shù)據(jù)庫遷移到 PostgreSQL。它通過連接 Oracle 數(shù)據(jù)庫,執(zhí)行自動掃描并且提取數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù),然后生成相應(yīng)的 SQL 腳本。這些腳本可以用于將數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)導(dǎo)入 PostgreSQL 之中。
Ora2Pg 可以用于各種場景,小到 Oracle 數(shù)據(jù)庫的反向工程,大到大型企業(yè)數(shù)據(jù)庫遷移,或者簡單地將一些 Oracle 數(shù)據(jù)復(fù)制到 PostgreSQL 數(shù)據(jù)庫。它非常簡單易用,甚至不需要任何 Oracle 數(shù)據(jù)庫的相關(guān)知識,只需要提供連接到 Oracle 數(shù)據(jù)庫的配置參數(shù)。
Ora2Pg 由一個 Perl 腳本(ora2pg)以及一個 Perl 模塊(Ora2Pg.pm)組成,唯一需要做的事情就是修改它的配置文件 ora2pg.conf,設(shè)置連接 Oracle 數(shù)據(jù)庫的 DSN 和一個可選的模式名稱。完成之后,只需要設(shè)置導(dǎo)出的類型:
TABLE(包括約束)、VIEW、MVIEW、TABLESPACE、SEQUENCE、INDEXES、TRIGGER、GRANT、FUNCTION、PROCEDURE、PACKAGE、PARTITION、TYPE、INSERT 或 COPY、FDW、QUERY、KETTLE 以及 SYNONYM。
默認情況下,Ora2Pg 導(dǎo)出一個文件,可以通過 psql 客戶端將文件加載到 PostgreSQL 數(shù)據(jù)庫;但是也可以在配置文件中設(shè)置一個數(shù)據(jù)庫的 DSN,直接導(dǎo)入 PostgreSQL 數(shù)據(jù)庫。通過 ora2pg.conf 中的配置選項,可以控制導(dǎo)出的內(nèi)容和方式。
下面介紹ora2pg是如何遷移表數(shù)據(jù)的:
要求: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. 執(zhí)行導(dǎo)入
5. 查看導(dǎo)入日志
# tail -111f /tmp/test.log
可以看到當(dāng)前導(dǎo)入速度
導(dǎo)入完成,可以看到平均速度
注意事項:
遷移數(shù)據(jù)之前一定要確保源端和目標端的表名、表結(jié)構(gòu)都完全一致,否則導(dǎo)入會失敗。
開并行需謹慎,需要根據(jù)機器CPU的當(dāng)前使用情況來確定。如果只導(dǎo)入單表,可以將PARALLEL_TABLES參數(shù)為調(diào)整為1。
配置文件中的用戶需要對表有相關(guān)使用權(quán)限,建議導(dǎo)數(shù)時使用高權(quán)限用戶。
TRUNCATE_TABLE參數(shù)會清空目標端表中現(xiàn)有數(shù)據(jù),需要根據(jù)實際情況謹慎使用。
更多精彩干貨分享
點擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/129767.html
摘要:指南無論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率使用團隊推薦的最新項目版本和技術(shù)。使用進行消息傳遞了解如何將用作消息代理。安全架構(gòu)的主題指南,這些位如何組合以及它們?nèi)绾闻c交互。使用的主題指南以及如何為應(yīng)用程序創(chuàng)建容器鏡像。 Spring 指南 無論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團隊推薦的最新Spring項目版本和技術(shù)。 入門指南 這些...
摘要:對于廣大的前端開發(fā)人員來說,網(wǎng)站構(gòu)建本是家常便飯其中也不得不涉及到性能優(yōu)化的問題。將不影響首屏的資源和當(dāng)前屏幕資源不用的資源放到用戶需要時才加載,可以大大提升重要資源的顯示速度和降低總體流量按需加載會導(dǎo)致大量重繪,影響渲染性能。對于廣大的前端開發(fā)人員來說,網(wǎng)站構(gòu)建本是家常便飯;其中也不得不涉及到性能優(yōu)化的問題。之前也有接觸過,今天總結(jié)一下這方面的技巧,下面是我的一下認知,歡迎探討: ? Nu...
摘要:表示本次查詢使用了索引,具體來說,是使用了和上的索引,。建立索引時,或者是每執(zhí)行次查詢之后,查詢優(yōu)化器都會重新評估查詢計劃。上一篇文章指南使用復(fù)合索引操作符如何使用索引索引對象和數(shù)組索引基數(shù)下一篇文章指南索引類型 上一篇文章:MongoDB指南---11、使用復(fù)合索引、$操作符如何使用索引、索引對象和數(shù)組、索引基數(shù)下一篇文章:MongoDB指南---13、索引類型 使用explain...
摘要:表示本次查詢使用了索引,具體來說,是使用了和上的索引,。建立索引時,或者是每執(zhí)行次查詢之后,查詢優(yōu)化器都會重新評估查詢計劃。上一篇文章指南使用復(fù)合索引操作符如何使用索引索引對象和數(shù)組索引基數(shù)下一篇文章指南索引類型 上一篇文章:MongoDB指南---11、使用復(fù)合索引、$操作符如何使用索引、索引對象和數(shù)組、索引基數(shù)下一篇文章:MongoDB指南---13、索引類型 使用explain...
摘要:每一個規(guī)則都是一個插件并且你可以在運行時添加更多的規(guī)則。強制回調(diào)函數(shù)最大嵌套深度層 因為前幾天發(fā)現(xiàn) CSDN上有直接把我文章 復(fù)制過去然后標原創(chuàng)的情況,以后會統(tǒng)一在博客頭部加入原文鏈接~ 本文個人博客原址 在很久之前就想通過工具來規(guī)范自己的代碼風(fēng)格,減少程序出錯的概率,如果看過我的一個前端程序猿的Sublime Text3的自我修養(yǎng),這篇博客的朋友,肯定知道在當(dāng)時我使用Sublim...
閱讀 1495·2023-01-11 13:20
閱讀 1853·2023-01-11 13:20
閱讀 1291·2023-01-11 13:20
閱讀 2043·2023-01-11 13:20
閱讀 4244·2023-01-11 13:20
閱讀 2959·2023-01-11 13:20
閱讀 1583·2023-01-11 13:20
閱讀 3862·2023-01-11 13:20