Oracle 数据表搬迁到 openGauss
搬迁方法
Oracle 数据表搬迁到 openGauss 数据库比较容易想到的两个工具是 oracle_fdw 及 Ora2Pg。
oracle_fdw
oracle_fdw 是嵌入在目标端数据库里的一个扩展插件,允许在目标端数据库里访问其他异构数据库的表,openGauss 数据库目前也支持这一插件。
oracle_fdw 在 openGauss 数据库的使用可以参考我写的这篇文章:<<opengauss1.0.1 支持 oracle_fdw 和 mysql_fdw>>
如下所示,目标端建立了到源端数据表的映射,可以在目标端用 create table as select 方式进行拷贝。
CREATE FOREIGN TABLE public.f_oracle_test (
id int,
info character varying
)
SERVER server_ora
OPTIONS (
schema 'scott',
"table" 'AA'
);
Ora2Pg
Ora2Pg 是一个开源的迁移转换工具,它可以连接 Oracle 数据库并进行扫描,自动提取结构或数据,然后生成可加载到 PostgreSQL 数据库中的 SQL 脚本。
本文介绍使用 Ora2Pg 工具先搬迁数据表及数据到 PostgreSQL,然后再从 PostgreSQL 搬迁到 openGauss。
Ora2Pg 工具的安装可以参考附录一,搬迁前常见的操作命令可以参考附录二。
下面演示具体操作步骤:
1.初始一个搬迁目录
在 postgres 用户下操作
ora2pg --init_project project20210507 \
--project_base /home/postgres/data
该目录用于分类存放源端不同的对象类型,如 table、view、package、function 等,以及 Oracle 端原生的 SQL 脚本及 Ora2Pg 转换后的脚本等。
2.定制 Ora2Pg 配置文件
在 postgres 用户下操作 vi project20210507/config/ora2pg.conf
NO_HEADER
ORACLE_DSN dbi:Oracle:host=x.x.x.x;port=1521;sid=xxx
ORACLE_USER xxx
ORACLE_PWD xxx
PG_VERSION 12
PG_DSN dbi:Pg:host=***.***.***.***;port=6000;dbname=xxx
PG_USER xxx
PG_PWD xxx
SCHEMA xxx
ALLOW T_.* UL_.*
EXCLUDE TMP_.* .*_BACKUP
DATA_TYPE VARCHAR2:character vary