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