国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于ora2pg遷移Oracle19C到postgreSQL14

這篇具有很好參考價值的文章主要介紹了基于ora2pg遷移Oracle19C到postgreSQL14。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

????????????
哈嘍!大家好,我是【IT邦德】,江湖人稱jeames007,10余年DBA及大數(shù)據(jù)工作經(jīng)驗
一位上進心十足的【大數(shù)據(jù)領(lǐng)域博主】!??????
中國DBA聯(lián)盟(ACDU)成員,目前服務(wù)于工業(yè)互聯(lián)網(wǎng)
擅長主流Oracle、MySQL、PG、高斯及Greenplum運維開發(fā),備份恢復,安裝遷移,性能優(yōu)化、故障應(yīng)急處理等。
? 如果有對【數(shù)據(jù)庫】感興趣的【小可愛】,歡迎關(guān)注【IT邦德】??????
??????感謝各位大可愛小可愛!??????

前言

本文詳細介紹了我的旅程、從Oracle遷移到PostgreSQL遇到的挑戰(zhàn),我希望分享這些經(jīng)驗將使你的PostgreSQL之旅更加順利.

?? 1.Ora2Pg介紹

Ora2Pg是我的第一個盟友。
它是一個開源工具,可將Oracle數(shù)據(jù)庫模式轉(zhuǎn)換為PostgreSQL格式。
可以處理大量的甲骨文對象
可通過配置文件進行配置
https://ora2pg.darold.net/

特點:
支持導出數(shù)據(jù)庫絕大多數(shù)對象類型,包括表、視圖、序列、索引、外鍵、約束、函數(shù)、存儲過程等。
提供PL/SQL到PL/PGSQL語法的自動轉(zhuǎn)換,一定程度避免了人工修正。
可生成遷移報告,包括遷移難度評估、人天估算。
可選對導出數(shù)據(jù)進行壓縮,節(jié)約磁盤開銷。
配置選項豐富,可自定義遷移行為。

基于ora2pg遷移Oracle19C到postgreSQL14,PostgreSQL,Oracle,postgresql,oracle

?? 2.ora2pg安裝

? 2.1 安裝依賴包

yum install -y gcc perl-DBD-Pg perl perl-devel perl-DBI perl-CPAN bzip2
perl-ExtUtils-eBuilder perl-ExtUtils-MakeMaker perl-Time-HiRes perl-tests perf cpan

? 2.2 正式安裝

perl -MCPAN -e ‘install DBI’
perl -MCPAN -e ‘install DBD::Oracle’
perl -MCPAN -e ‘install DBD::Pg’

基于ora2pg遷移Oracle19C到postgreSQL14,PostgreSQL,Oracle,postgresql,oracle
基于ora2pg遷移Oracle19C到postgreSQL14,PostgreSQL,Oracle,postgresql,oracle

?? 3.相關(guān)配置

? 3.1 表結(jié)構(gòu)配置

cat > /etc/ora2pg/ora2pg_table_ddl.conf <<“EOF”
ORACLE_HOME /usr/lib/oracle/21/client64
ORACLE_DSN dbi:Oracle:host=172.18.12.90;sid=oradb;port=1521
#ORACLE_DSN dbi:Oracle:host=192.168.1.29;service_name=pdb1;port=1521
#ORACLE_DSN dbi:Oracle:tns_ora19c
ORACLE_USER system
ORACLE_PWD oracle
SCHEMA STEST
EXPORT_SCHEMA 1
CREATE_SCHEMA 1
TYPE TABLE
PG_NUMERIC_TYPE 0
PG_INTEGER_TYPE 1
DEFAULT_NUMERIC float
SKIP fkeys checks
#SKIP keys pkeys ukeys indexes checks
NLS_LANG AMERICAN_AMERICA.UTF8
OUTPUT_DIR /tmp
OUTPUT ora2pg_table_ddl.sql
PG_VERSION 14
EOF

? 3.2 表數(shù)據(jù)的配置文件

cat > /etc/ora2pg/ora2pg_table_data.conf <<“EOF”
ORACLE_HOME /usr/lib/oracle/21/client64
ORACLE_DSN dbi:Oracle:host=172.18.12.90;sid=oradb;port=1521
#ORACLE_DSN dbi:Oracle:tns_ora19c
ORACLE_USER system
ORACLE_PWD oracle
SCHEMA STEST
TYPE COPY
PG_NUMERIC_TYPE 0
PG_INTEGER_TYPE 1
DEFAULT_NUMERIC float
SKIP fkeys checks
#SKIP fkeys pkeys ukeys indexes checks
NLS_LANG AMERICAN_AMERICA.UTF8
OUTPUT_DIR /tmp
OUTPUT ora2pg_table_data.sql
PG_DSN dbi:Pg:dbname=jemdb;host=172.18.12.50;port=5432
PG_USER postgres
PG_PWD jeames
PG_SCHEMA stest
PG_VERSION 14
EOF

?? 4.ora2pg遷移數(shù)據(jù)

? 4.1 遷移全部表結(jié)構(gòu)

mkdir -p /ora2pg
ora2pg -c /etc/ora2pg/ora2pg_table_ddl.conf -t table -b /ora2pg

基于ora2pg遷移Oracle19C到postgreSQL14,PostgreSQL,Oracle,postgresql,oracle

? 4.2 PG中創(chuàng)建數(shù)據(jù)

su - postgres
psql
CREATE USER STEST WITH password ‘post’ CREATEDB SUPERUSER replication createrole login;
create database jemdb;
alter database jemdb owner to STEST;
\c jemdb

– 跑腳本
\i /ora2pg/ora2pg_table_ddl.sql
jemdb=# \d

基于ora2pg遷移Oracle19C到postgreSQL14,PostgreSQL,Oracle,postgresql,oracle

? 4.3 遷移數(shù)據(jù)

ora2pg -d -t copy -c /etc/ora2pg/ora2pg_table_data.conf -P 12 -L 100000 -j 12
此過程執(zhí)行完成后,數(shù)據(jù)就已經(jīng)插入到PG數(shù)據(jù)庫中了:文章來源地址http://www.zghlxwxcb.cn/news/detail-751628.html

?? 5.數(shù)據(jù)驗證

su - postgres
psql
\c jemdb

emdb=# show search_path;
   search_path   
-----------------
 "$user", public
(1 row)

jemdb=# set search_path=stest,public;
SET
jemdb=# \dt
                List of relations
 Schema |         Name         | Type  |  Owner   
--------+----------------------+-------+----------
 stest  | addresses            | table | postgres
 stest  | card_details         | table | postgres
 stest  | customers            | table | postgres
 stest  | inventories          | table | postgres
 stest  | logon                | table | postgres
 stest  | order_items          | table | postgres
 stest  | orderentry_metadata  | table | postgres
 stest  | orders               | table | postgres
 stest  | product_descriptions | table | postgres
 stest  | product_information  | table | postgres
 stest  | warehouses           | table | postgres
(11 rows)

jemdb=# select  nspname AS schemaname,
jemdb-# relname,
jemdb-# reltuples::numeric as rowcount,
jemdb-# pg_size_pretty (
jemdb(# pg_total_relation_size ( '"' || nspname || '"."' || relname || '"' )) AS SIZE
jemdb-# from    pg_class C LEFT JOIN pg_namespace N ON ( N.oid = C.relnamespace ) 
jemdb-# where   nspname NOT IN ( 'pg_catalog', 'information_schema' ) 
jemdb-# AND relkind = 'r' 
jemdb-# ORDER by reltuples DESC 
jemdb-# LIMIT 20;
 schemaname |       relname        | rowcount |    size    
------------+----------------------+----------+------------
 stest      | inventories          |   899441 | 433 MB
 stest      | order_items          |     7341 | 1072 kB
 stest      | logon                |     2383 | 160 kB
 stest      | card_details         |     1500 | 264 kB
 stest      | addresses            |     1500 | 264 kB
 stest      | orders               |     1430 | 376 kB
 stest      | warehouses           |     1000 | 192 kB
 stest      | customers            |     1000 | 440 kB
 stest      | product_descriptions |     1000 | 288 kB
 stest      | product_information  |     1000 | 400 kB
 stest      | orderentry_metadata  |       -1 | 8192 bytes
(11 rows)

jemdb=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 jemdb     | stest    | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

jemdb=# \dn
  List of schemas
  Name  |  Owner   
--------+----------
 public | postgres
 stest  | stest
(2 rows)

jemdb=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 stest     | Superuser, Create role, Create DB, Replication             | {}

到了這里,關(guān)于基于ora2pg遷移Oracle19C到postgreSQL14的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Oracle 19c的參數(shù)sec_case_sensitive_logon與ORA-01017錯誤

    Oracle的參數(shù)sec_case_sensitive_logon是Oracle 11g開始被引入。這個參數(shù)主要是為了控制密碼的大小寫敏感問題。 sec_case_sensitive_logon=true表示密碼區(qū)分大小寫。 sec_case_sensitive_logon=false表示密碼不區(qū)分大小寫。 從Oracle 12c開始,參數(shù)sec_case_sensitive_logon被棄用了。但是為了向下兼容,即使在

    2023年04月26日
    瀏覽(20)
  • OGG實現(xiàn)Oracle19C到postgreSQL14的實時同步

    ???????????? 哈嘍!大家好,我是【IT邦德】,江湖人稱jeames007,10余年DBA及大數(shù)據(jù)工作經(jīng)驗 一位上進心十足的【大數(shù)據(jù)領(lǐng)域博主】!?????? 中國DBA聯(lián)盟(ACDU)成員,目前服務(wù)于工業(yè)互聯(lián)網(wǎng) 擅長主流Oracle、MySQL、PG、高斯及Greenplum運維開發(fā),備份恢復,安裝遷移,性能優(yōu)

    2024年02月04日
    瀏覽(21)
  • Oracle19c數(shù)據(jù)庫安裝 - 基于Linux環(huán)境

    Oracle19c數(shù)據(jù)庫安裝 - 基于Linux環(huán)境

    安裝文件鏈接在文章末尾。 本文介紹多種在Linux環(huán)境下安裝Oracle19c數(shù)據(jù)庫軟件和Oracle數(shù)據(jù)庫的方式,多種方式選擇其中一種即可,適用于19c數(shù)據(jù)庫學習環(huán)境的配置。 數(shù)據(jù)庫軟件和數(shù)據(jù)庫是不同的,都需要安裝。 關(guān)閉防火墻和selinux 更改完reboot,使其生效 搭建yum,安裝依賴包

    2024年02月15日
    瀏覽(76)
  • 基于RHEL9,ORACLE LINUX 9安裝Oracle 19c 數(shù)據(jù)庫

    基于RHEL9,ORACLE LINUX 9安裝Oracle 19c 數(shù)據(jù)庫

    要基于RHEL9,ORACLE LINUX 9 或RHEL分支,安裝ORACLE 19C 數(shù)據(jù)庫,在一年前,沒有人會告訴你能夠成功,都會告訴你說19C只支持 RHEL7/8,在RHEL9上不支持, 如果你非要安裝,在安裝到11%時,就會報以下錯誤: Error in invoking target \\\' libasmclntsh19.ohso libasmperl19.ohso client_sharedlib \\\' of makefile \\\'/u

    2024年02月03日
    瀏覽(100)
  • docker部署oracle 19c

    docker部署oracle 19c

    步驟2:規(guī)劃鏡像數(shù)據(jù)存儲路徑 進入容器后有個 setPassword.sh 腳本 步驟5: 檢查新生成的容器的時區(qū) jdbc連接: 原因: 在表空間“USERS”無權(quán)限 解決辦法: 查看當前用戶所屬表空間: 修改表空間: ?

    2024年02月04日
    瀏覽(37)
  • Docker安裝Oracle19c

    Docker安裝Oracle19c

    1.下載鏡像 到?https://hub.docker.com?搜索合適的鏡像,這里選擇banglamon/oracle193db:19.3.0-ee。 ?拉取鏡像 docker pull banglamon/oracle193db:19.3.0-ee 這里走了點彎路,這個鏡像安裝后實例無法正常啟動,而且掛載的目錄下面沒有生成文件,想辦法啟動以后sqlplus能用,但容器外部連接報ora-1

    2023年04月21日
    瀏覽(22)
  • docker 安裝 oracle19c

    docker 安裝 oracle19c

    docker 安裝 oracle19c 拉取鏡像 創(chuàng)建掛載目錄 授權(quán) 安裝 或者講字符集修改為 AL32UTF8 安裝過程中可以通過日志監(jiān)控安裝情況 連接 Oracle 數(shù)據(jù)庫 打開容器終端 sqlplus登錄 sysdba身份登錄,默認進入CDB 進入CDB 進入PDB 查看連接模式 網(wǎng)頁登錄 https://ip:5500/em sqldeveloper Oracle SQL Developer Do

    2024年02月10日
    瀏覽(17)
  • Oracle 19c 安裝(Linux)

    Oracle 19c 安裝(Linux)

    操作系統(tǒng)基礎(chǔ)配置 本章節(jié)所有操作使用root用戶 關(guān)閉防火墻和SELINUX 關(guān)閉selinux: 編輯/etc/selinux/config 文件 RPM包安裝 Oracle安裝需要以下RPM包: compat-libcap1-1.10-1 (x86_64) gcc-4.4.4-13.el6 (x86_64) gcc-c+±4.4.4-13.el6 (x86_64) glibc-devel-2.12-1.7.el6 (x86_64) libaio-devel-0.3.107-10.el6 (x86_64) libstdc+±devel-

    2024年02月02日
    瀏覽(16)
  • docker 安裝Oracle19c

    docker 安裝Oracle19c

    如下操作基于已經(jīng)裝好docker 環(huán)境 1.下載鏡像 docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c 通過docker images 命令查看 如下圖:已經(jīng)有oracle 19c鏡像。 ?2.創(chuàng)建掛載文件 # 創(chuàng)建文件 mkdir -p /mydata/oracle/oradata # 授權(quán),不授權(quán)會導致后面安裝失敗 chmod 777 /mydata/oracle/oradata 3.安裝Or

    2024年02月04日
    瀏覽(18)
  • docker環(huán)境安裝 部署 Oracle 19c

    docker環(huán)境安裝 部署 Oracle 19c

    3.1 啟動Oracle 容器 3.2 配置Oracle 初始化 3.3 dbvs 連接 到此就安裝連接成功了

    2024年02月03日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包