0
点赞
收藏
分享

微信扫一扫

使用GoldenGate 迁移Oracle到PostgreSQL/LightDB

流沙雨帘 2022-07-12 阅读 86

说明

1.1 数据库国产化背景Oracle迁移到PostgreSQL/LightDB

OGG软件长度:Oracle GoldenGate V11.2.1.0.1 for Oracle 10g on Linux x86-64 84.7 MB


使用OGG+ora2pg迁移

源库:centos 7 单节点Oracle 19c

目标库:centos 7 单节点LightDB22.1


软件目标数据库和OG

2.创建OGG安装目录()1

源和目标两台服务器都需要创建ogg的安装目录ggs_Linux_x64_PostgreSQL_64bit.tar

V983658-01.zip


2.2创建ogg的管理用户,使用oracle作为ogg的管理用户。(源端)

在oracle环境变量配置文件中增加以下内容:


导出编辑器=vi

导出 GGATE=/home/oracle/ogg19c

导出 NLS_LANG=AMERICAN_AMERICA.AL32UTF8

导出 ORACLE_BASE=/u01/app/oracle

导出 ORACLE_HOME=/home/oracle

导出 ORACLE_SID=test

导出 PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GGATE:$PATH

导出 LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$GGATE:$LD_LIBRARY_PATH

别名 sqlplus='rlwrap sqlplus'

别名 ggsci='rlwrap ggsci'

2.3建立OGG表空间和用户(源端)

创建表空间 ogg 数据文件 '/data2/oradata/TEST/ogg01.dbf' 大小 50M 自动扩展;

创建由 ogg 默认表空间 ogg 标识的用户 ogg;

授予连接,资源到 ogg;

grant select any dictionary, select any table to ogg;

将任何表授予 ogg 闪回;

在 dbms_flashback 上授予对 ogg 执行;

将 ALTER ANY TABLE 授予 ogg;

授予向ogg插入任何表;

授予更新任何表到 ogg;

授予 ogg 删除任何表;

授予创建表,创建序列给ogg;

将 utl_file 上的执行权限授予 ogg;

2.4 添加附加日志和强制记录,并切换日志(源端)

如果源端未开启归档,需添加多组日志。


更改数据库强制记录;

更改数据库添加补充日志数据;

SQL> 从 v$database 中选择 NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN;

名称 OPEN_MODE FORCE_LOGGING SUPPLEME

--------- -------- ----------- ------

ORCL 读写 是 是

2.5 创建OGG的管理工作目录(源端)

在OGG流程之前,首先需要配置创建OGG的管理目录,执行以下操作:


ggsci

GGSCI (hs-10-20-30-199) 2> 创建子目录

##19c会默认创建,不需要执行

提交事务的记录只是被授予。只是提交、投递、应用日志的单位是记录,只是跟踪文件。


2.6配置MGR参数文件,并启动mgr(源端)

mgr是这些的管理和进程进程,目标端的mgr进程进程还与源端进行


源端:

编辑参数经理

端口 7809

PURGEOLDEXTRACTS /home/oracle/ogg19c/dirdat/*,USECHECKPOINTS, minkeepdays 7

——不清除轨迹文件

AUTORESTART EXTRACT *,重试 3,WAITMINUTES 5,RESETMINUTES 60

GGSCI (hs-10-20-30-199) 6> 开始经理

GGSCI (hs-10-20-30-199) 7> 全部信息

2.7添加extract(进程源端)

是的进程5 (ORA 2的时候:需要提取数据的时候需要传输数据(需要提取进程的时候为启动点,添加进程的

开始 时间))

2847434.1)


测试 =

(描述=

(地址 =(协议 = TCP)(主机 = 10.20.30.199)(端口 = 1521))

(连接数据 =

(服务器 = 专用)

(SERVICE_NAME = 测试)

)

)

配置提取进程


编辑参数 ext_1

提取 ext_1

SETENV (NLS_LANG=AMERICAN_AMERICA.UTF8)

SETENV (ORACLE_HOME=/home/oracle)

SETENV (ORACLE_SID=测试)

用户名 ogg,密码 ogg

丢弃文件 /home/oracle/ogg19c/dirrpt/ext_1.dsc,APPEND,MEGABYTES 1024

EXTTRAIL /home/oracle/ogg19c/dirdat/aa

表 ta6_pub11*;

# 创建提取组;

添加 EXTRACT ext_1,TRANLOG,现在开始

# 创建本地路径文件

添加 EXTTRAIL /home/oracle/ogg19c/dirdat/aa,提取 ext_1,MEGABYTES 5

# 启动解压进程

开始提取 ext_1

GGSCI (hs-10-20-30-199) 16> 信息全部

自 Chkpt 以来 Chkpt 时间的程序状态组滞后

经理运行

提取运行 EXT_1 00:00:15 00:00:02

2.8 投递进程(源端)

递递进程:


编辑参数 pump_1

# 将内容复制到文件内,酌情修改参数保存

提取泵_1

SETENV (NLS_LANG=AMERICAN_AMERICA.UTF8)

直通

RMTHOST 10.20.30.199,MGRPORT 7810

RMTTRAIL /home/lightdb/ogg/dirdat/pa

表 ta6_pub11.*;

# 使用 add extract 指定本地路径文件

添加 EXTRACT pump_1,EXTTRAILSOURCE /home/oracle/ogg19c/dirdat/aa

# 用 add rmttrail 指定远程路径文件

添加 RMTTRAIL /home/lightdb/ogg/dirdat/pa,提取 pump_1,MEGABYTES 5

# 启动Pump进程

开始提取泵_1

2.9 生成定义文件

在多个精细的同步复制中;需要数据不同的数据库。


# 编辑参数文件

GGSCI (oracle221) 16> 编辑参数 defgen

# 参数文件内容

defsfile /home/oracle/ogg19c/dirdef/defgen.def

用户名 ogg,密码 ogg

表 ta6_pub11.*;

#退出ggsci命令

GGSCI (oracle221) 17> 退出

#root用户下生成文件

defgen 参数文件 /home/oracle/ogg19c/dirprm/defgen.prm

[oracle@hs-10-20-30-199 ogg19c]$ defgen 参数文件 /home/oracle/ogg19c/dirprm/defgen.prm

****************************************************** ************************

适用于 Oracle 的 Oracle GoldenGate 表定义生成器

版本 19.1.0.0.4 OGGCORE_19.1.0.0.0_PLATFORMS_191017.1054

Linux,x64,64bit(优化),Oracle 19c 2019 年 10 月 17 日 15:32:20

版权所有 (C) 1995、2019,Oracle 和/或其附属公司。版权所有。

2022-06-30 10:31:23 开始

****************************************************** ************************

操作系统版本:

Linux

版本 #1 SMP 2021 年 4 月 28 日星期三 21:49:45 UTC,版本 3.10.0-1160.25.1.el7.x86_64

节点:hs-10-20-30-199

机器:x86_64

软限制硬限制

地址空间大小:无限制

堆大小:无限制

文件大小:无限制

CPU时间:无限无限

进程号:106662

****************************************************** ************************

** 使用以下参数运行 **

****************************************************** ************************

defsfile /home/oracle/ogg19c/dirdef/defgen.def

用户名 ogg,密码 ***

表 ta6_pub11.*;

扩展通配符表规范 ta6_pub11.*:

检索 ta6_pub11.BONUS 的定义。

2022-06-30 10:31:24 警告 OGG-06439 没有为表 BONUS 定义唯一键。所有可行的列都将用于表示键,但可能不保证唯一性。KEYCOLS 可用于定义密钥。

检索 ta6_pub11.DEPARTMENTS 的定义。

2022-06-30 10:31:24 警告 OGG-06439 没有为表 DEPARTMENTS 定义唯一键。所有可行的列都将用于表示键,但可能不保证唯一性。KEYCOLS 可用于定义密钥。

正在检索 ta6_pub11.DEPT 的定义。

正在检索 ta6_pub11.EMP 的定义。

检索 ta6_pub11.ORDERS 的定义。

正在检索 ta6_pub11.SALGRADE 的定义。

2022-06-30 10:31:25 警告 OGG-06439 没有为表 SALGRADE 定义唯一键。所有可行的列都将用于表示键,但可能不保证唯一性。KEYCOLS 可用于定义密钥。

正在检索 ta6_pub11.USERS 的定义。

为 /home/oracle/ogg19c/dirdef/defgen.def 中的 7 个表生成定义。

# 传送到目标端

scp /home/oracle/ogg19c/dirdef/defgen.def lightdb@10.20.30.199:/home/lightdb/ogg/dirdef

举报

相关推荐

0 条评论