****欧欧美毛片4,国产午夜精品视频,97视频在线观看免费视频,久久七国产精品

數(shù)據(jù)恢復(fù)咨詢熱線:400-666-3702??

歡迎訪問(wèn)南京兆柏?cái)?shù)據(jù)恢復(fù)公司,專業(yè)數(shù)據(jù)恢復(fù)15年

兆柏?cái)?shù)據(jù)恢復(fù)公司

?常見(jiàn)問(wèn)題

?當(dāng)前位置: 主頁(yè) > 常見(jiàn)問(wèn)題

如何使用Ora2Pg遷移Oracle數(shù)據(jù)庫(kù)到openGauss

瀏覽量: 次 發(fā)布日期:2023-10-17 07:35:23

如何使用Ora2Pg遷移Oracle數(shù)據(jù)庫(kù)到openGauss

ra2Pg介紹

Ora2Pg是一個(gè)將Oracle遷移至PostgreSQL的開(kāi)源工具,通過(guò)連接Oracle數(shù)據(jù)庫(kù),自動(dòng)掃描并提取其中的對(duì)象結(jié)構(gòu)及數(shù)據(jù),產(chǎn)生SQL腳本,通過(guò)手動(dòng)或自動(dòng)的方式將其應(yīng)用到PostgreSQL。

官方網(wǎng)站:

https://ora2pg.darold.net/

浦東數(shù)據(jù)恢復(fù)

Ora2Pg優(yōu)秀特性支持導(dǎo)出數(shù)據(jù)庫(kù)絕大多數(shù)對(duì)象類型,包括表、視圖、序列、索引、外鍵、約束、函數(shù)、存儲(chǔ)過(guò)程等。提供PL/SQL到PL/PGSQL語(yǔ)法的自動(dòng)轉(zhuǎn)換,一定程度避免了人工修正。可生成遷移報(bào)告,包括遷移難度評(píng)估、人天估算。可選對(duì)導(dǎo)出數(shù)據(jù)進(jìn)行壓縮,節(jié)約磁盤(pán)開(kāi)銷。配置選項(xiàng)豐富,可自定義遷移行為。

Ora2Pg在openGauss的應(yīng)用

Ora2Pg主要語(yǔ)言是perl,使用Perl DBI模塊,通過(guò)DBD:Pg連接PostgreSQL目標(biāo)數(shù)據(jù)庫(kù),openGauss兼容PostgreSQL的通信協(xié)議以及絕大部分語(yǔ)法,因此只需作部分命名上的修改,Ora2Pg同樣可應(yīng)用于openGauss。

Ora2Pg使用示例

對(duì)于對(duì)象結(jié)構(gòu),Ora2Pg將其DDL語(yǔ)句導(dǎo)出到SQL文件中,對(duì)于表數(shù)據(jù),則既可以以INSERT或COPY命令導(dǎo)出到文件,也支持直接導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù),不需要產(chǎn)生中間SQL文件。

為了完成上述過(guò)程,Ora2Pg工具同時(shí)支持命令行和一鍵式腳本的方式完成遷移。命令行方式通過(guò)Ora2Pg二進(jìn)制分布執(zhí)行各條命令,來(lái)完成對(duì)應(yīng)的步驟;一鍵式腳本通過(guò)創(chuàng)建遷移項(xiàng)目,分別得到導(dǎo)出導(dǎo)入腳本以及遷移目錄模板,腳本集成了若干Ora2Pg命令以及導(dǎo)入SQL文件所需的psql命令(openGauss為gsql),用戶只需要執(zhí)行兩個(gè)腳本即可完成遷移。本次主要演示腳本的方式。

1. 依賴安裝

Ora2Pg語(yǔ)言為perl,故需安裝所需perl模塊。

安裝DBI、DBD:Pg、DBD:Oracle,Ora2Pg依賴這些軟件去連接數(shù)據(jù)庫(kù)。

安裝DBD:Oracle,需要先安裝Oracle Instant Client或者本地已安裝Oracle數(shù)據(jù)庫(kù)。

2. Ora2Pg安裝并創(chuàng)建遷移項(xiàng)目

源碼路徑:

https://github.com/darold/ora2pg

創(chuàng)建遷移項(xiàng)目后會(huì)在當(dāng)前目錄下生成oramig目錄模板,如下所示。其中主要包含兩個(gè)腳本export_schema.sh和import_all.sh,后續(xù)導(dǎo)出和導(dǎo)入即使用這兩個(gè)腳本。schema和sources目錄存放各對(duì)象的DDL語(yǔ)句,區(qū)別在于schema存放PL/SQL語(yǔ)法轉(zhuǎn)化為PL/PGSQL后的語(yǔ)句, sources目錄存放轉(zhuǎn)化前PL/SQL的語(yǔ)句,data目錄存放表數(shù)據(jù)文件,config目錄包含配置文件ora2pg.conf,reports目錄存放遷移報(bào)告。

至此您已可以使用Ora2Pg命令,以下是使用該命令時(shí)允許指定的部分命令行參數(shù),這些參數(shù)都可以在ora2pg.conf設(shè)置,指定配置文件時(shí),命令行選項(xiàng)指定的值會(huì)覆蓋配置文件中的對(duì)應(yīng)值。

3. 配置Ora2Pg

ora2pg.conf文件包含所有配置選項(xiàng),通過(guò)配置項(xiàng)可以自定義遷移時(shí)的行為。這里簡(jiǎn)單介紹幾個(gè)常用的配置項(xiàng)。

ORACLE_HOME:設(shè)置環(huán)境變量ORACLE_HOME,DBD:Oracle模塊使用該變量查找所需的Oracle庫(kù)。設(shè)置方式在依賴安裝中已涉及。

ORACLE_DSN:該參數(shù)以標(biāo)準(zhǔn)DBI DSN形式設(shè)置數(shù)據(jù)源名稱,例如:

或者

第二種方式需要在$

ORACLE_HOME/network/admin/tnsnames.ora 文件或者環(huán)境變量 TNS_ADMIN 指定目錄下的 tnsnames.ora 文件中定義 SID。

ORACLE_USER, ORACLE_PWD:這兩個(gè)參數(shù)用于定義Oracle數(shù)據(jù)庫(kù)連接的用戶名和密碼。請(qǐng)注意,如果可以的話,以O(shè)racle超級(jí)管理員身份登錄,以避免在數(shù)據(jù)庫(kù)掃描時(shí)遇到權(quán)限問(wèn)題,以及丟失內(nèi)容。

PG_DSN:設(shè)置目標(biāo)數(shù)據(jù)庫(kù)名稱,如下為openGauss示例,連接IP為localhost,端口為5432,名稱為mydb的數(shù)據(jù)庫(kù)。

PG_USER,PG_PWD:設(shè)置目標(biāo)數(shù)據(jù)庫(kù)的用戶、密碼。請(qǐng)注意,這里使用的用戶需要有遠(yuǎn)程連接openGauss的權(quán)限,以及對(duì)對(duì)應(yīng)數(shù)據(jù)庫(kù)的讀寫(xiě)權(quán)限,具體是運(yùn)行Ora2Pg所在的機(jī)器和該用戶需要在openGauss的遠(yuǎn)程訪問(wèn)白名單里。

SCHEMA:此參數(shù)用于設(shè)置要導(dǎo)出的schema。如下,將提取APPS下的對(duì)象。

ORA_INITIAL_COMMAND:該參數(shù)可用于在連接之后向Oracle發(fā)送初始命令。例如,在讀取對(duì)象前關(guān)閉訪問(wèn)限制策略,或設(shè)置一些會(huì)話參數(shù)。

TYPE:設(shè)置要導(dǎo)出的對(duì)象類型,包括表、視圖、序列、索引、外鍵、約束、函數(shù)、存儲(chǔ)過(guò)程等,默認(rèn)為T(mén)ABLE。如下,將導(dǎo)出普通表和視圖。

更多更詳細(xì)的配置項(xiàng)說(shuō)明,可查看官網(wǎng):

https://ora2pg.darold.net/documentation.html

連接測(cè)試:配置好Oracle數(shù)據(jù)庫(kù)的DSN之后,可執(zhí)行以下命令測(cè)試數(shù)據(jù)庫(kù)的連接。

以上命令將顯示Oracle數(shù)據(jù)庫(kù)的版本。

4. 執(zhí)行遷移腳本

本次演示的配置如下,以system用戶連接目標(biāo)數(shù)據(jù)庫(kù)

修改export_schema.sh中導(dǎo)出類型,本次遷移導(dǎo)出表和函數(shù)。

執(zhí)行導(dǎo)出腳本,等待遷移完成。結(jié)束后在schema和source的子目錄下生成對(duì)應(yīng)類型的DDL文件,并在末尾給出導(dǎo)出表數(shù)據(jù)的命令。

同時(shí)reports目錄下也生成html格式的遷移報(bào)告。

執(zhí)行導(dǎo)入腳本之前需要做如下準(zhǔn)備:

1. 先在openGauss庫(kù)中創(chuàng)建數(shù)據(jù)庫(kù),并在該數(shù)據(jù)庫(kù)下創(chuàng)建用戶,把mydb屬主設(shè)為該用戶。(import_all.sh中使用PostgreSQL特有的createuser和createdb創(chuàng)建用戶和數(shù)據(jù)庫(kù))

2. 為了使用openGauss命令行工具gsql,需要將數(shù)據(jù)庫(kù)的bin和lib加在操作系統(tǒng)的環(huán)境變量PATH和LD_LIBRARY_PATH中。

3. 將import_all.sh里的psql修改為gsql。

4. 當(dāng)使用普通用戶導(dǎo)入數(shù)據(jù)時(shí),可增加一個(gè)執(zhí)行該腳本的選項(xiàng),指定用戶密碼,避免頻繁輸入密碼。

執(zhí)行導(dǎo)入腳本,表示使用用戶testuser登錄名為mydb的數(shù)據(jù)庫(kù),ip和端口分別是127.0.0.1和5432,-f選項(xiàng)表示跳過(guò)用戶和數(shù)據(jù)庫(kù)是否需要?jiǎng)?chuàng)建的檢查。

執(zhí)行后會(huì)交互式提示是否導(dǎo)入各對(duì)象結(jié)構(gòu)及數(shù)據(jù),如下所示。(其中的-w是手動(dòng)修改import_all.sh腳本,添加密碼選項(xiàng))

對(duì)于表的索引和約束,可選擇延遲導(dǎo)入,即在導(dǎo)入數(shù)據(jù)之后。

登錄openGauss數(shù)據(jù)庫(kù)查看遷移結(jié)果。

Ora2Pg不足

Ora2Pg對(duì)PL/SQL和PL/PGSQL的語(yǔ)法轉(zhuǎn)換處理采用正則表達(dá)式和文本替換的方式,先天設(shè)計(jì)不足,很難覆蓋所有的語(yǔ)法,目前僅支持部分轉(zhuǎn)換。因此,Ora2Pg可以滿足SQL簡(jiǎn)單的應(yīng)用遷移,對(duì)于復(fù)雜的語(yǔ)法,并不能完全保證轉(zhuǎn)換的正確性,需要對(duì)生成的SQL語(yǔ)句進(jìn)行核對(duì),必要時(shí)需要人工修正。

更多內(nèi)容請(qǐng)參考:

相關(guān)推薦

. 超融合怎么用,如何高效運(yùn)用超融合技術(shù)

. raid如何恢復(fù),全面解析與操作指南

. 如何查詢sql表數(shù)據(jù)

. raid1壞了一個(gè)硬盤(pán)如何恢復(fù),raid1第一塊硬盤(pán)壞怎么辦

. 硬盤(pán)數(shù)據(jù)恢復(fù),當(dāng)數(shù)據(jù)丟失,如何找回寶貴信息?

. 移動(dòng)硬盤(pán)數(shù)據(jù)刪除數(shù)據(jù)恢復(fù),移動(dòng)硬盤(pán)數(shù)據(jù)刪除,如何進(jìn)行數(shù)據(jù)恢復(fù)?

. 移動(dòng)硬盤(pán)燈亮但不讀取無(wú)法識(shí)別怎么導(dǎo)出數(shù)據(jù),移動(dòng)硬盤(pán)燈亮但不讀取,如何成功導(dǎo)出數(shù)據(jù)?

. sql server如何連接本地服務(wù)器

. 如何查看oracle錯(cuò)誤日志,Oracle數(shù)據(jù)庫(kù)錯(cuò)誤日志查看指南

. 手機(jī)被重置怎么找回原來(lái)的數(shù)據(jù),手機(jī)被重置后如何找回原來(lái)的數(shù)據(jù)

. 數(shù)據(jù)庫(kù)當(dāng)前時(shí)間怎么表示,數(shù)據(jù)庫(kù)中如何表示當(dāng)前時(shí)間

. 打開(kāi)數(shù)據(jù)庫(kù),如何打開(kāi)數(shù)據(jù)庫(kù)

. 怎么恢復(fù)已刪微信好友,微信已刪好友如何恢復(fù)?全方位攻略助你找回失聯(lián)好友

. 硬盤(pán)數(shù)據(jù)恢復(fù)后文件夾亂了,硬盤(pán)數(shù)據(jù)恢復(fù)后文件夾亂序,如何快速整理?

. 如何恢復(fù)手機(jī)相冊(cè)永久刪除的照片

. 恢復(fù)回收站已刪除東西,如何恢復(fù)回收站已刪除的東西?——全方位數(shù)據(jù)恢復(fù)指南

. 怎么恢復(fù)手機(jī)的原來(lái)的數(shù)據(jù),手機(jī)數(shù)據(jù)丟失?教你如何恢復(fù)原來(lái)的數(shù)據(jù)

. oracle如何恢復(fù)刪除的數(shù)據(jù),Oracle數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)的恢復(fù)方法詳解

. 如何計(jì)算機(jī)硬盤(pán)數(shù)據(jù)恢復(fù)

. 被勒索病毒加密了怎么辦,遭遇勒索病毒加密,如何應(yīng)對(duì)與恢復(fù)數(shù)據(jù)?