Oracle GoldenGate 12C跨平台同步Oracle 12C



Goldengate 12c跨平台同步Oracle 12C

GoldenGate 12C源端为Linux 6.4和目标端为window2012R2的数据同步(单向,单实例)

1.对生产系统影响小:实时读取交易日志,以低资源占用实现大交易量数据实时复制;

2.以交易为单位复制,保证交易一致性:只同步已提交的数据;

3.高性能,智能的交易重组和操作合并,使用数据库本地接口访问,并行处理体系,灵活的拓扑结构:支持一对一、一对多、多对一、多对多和双向复制等。

1 环境准备

1.1 环境信息

角色 操作系统 IP地址 Oracle数据库版本 数据库SID Goldengate(OGG)版本
源端 Red Hat Enterprise Linux Server release 6.4 (Santiago) 2.6.32-358.el6.x86_64 192.168.11.223 Version12.2.0.1.0 PROD Version 12.3.0.1.4
目标端 Windows Server2012 R2 Datecenter [版本 6.3.9600]) 192.168.11.212 Version12.1.0.1.0 orcl12c Version 12.3.0.1.5

1.2 环境平台准备

操作系统,数据库部署不详细写,各自安装,不会百度一大堆

1.3 环境核查(源+目标)

在生产环境中要检查很多东西,不列举。实验中都是新环境,就检查下下面两项。

1.3.1 检查监听

提示:有网上资料说,源端和目标端的监听要一样,在监听文件(tnsnames.ora,listener.ora)需要配置成一样,也就在监听文件下互相加监听内容,这个没有测试,实验中只是各种的监听状态正常。

源端:

检查tnsnames.ora

vi tnsnames.ora

PROD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = enmoedu1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PROD)
    )
  )

LISTENER_PROD =
  (ADDRESS = (PROTOCOL = TCP)(HOST = enmoedu1)(PORT = 1521))
  
  注意:HOST=[主机名或主机本地IP]

检查listener.ora

listener.ora:用于服务端,用于提示服务端监听哪些实例。

cat listener.ora 
# listener.ora Network Configuration File: /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = enmoedu1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

检查监听状态:lsnrctl status

[oracle@enmoedu1 admin]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 03-JAN-2023 16:38:01

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=enmoedu1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                03-JAN-2023 16:03:17
Uptime                    0 days 0 hr. 34 min. 43 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/enmoedu1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=enmoedu1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=enmoedu1)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/PROD/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "PROD.enmoedu.com" has 1 instance(s).
  Instance "PROD", status READY, has 1 handler(s) for this service...
Service "PRODXDB.enmoedu.com" has 1 instance(s).
  Instance "PROD", status READY, has 1 handler(s) for this service...
The command completed successfully

ping测试:

[oracle@enmoedu1 admin]$ tnsping PROD
TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 03-JAN-2023 16:38:40
Copyright (c) 1997, 2016, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = enmoedu1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = PROD)))
OK (0 msec)

监听相关文件存放ORACLE_HOME/network/admin/目录下listener.ora , tnsnames.ora ;[ORACLE_HOME根据个人部署路径,不一定和实验一样]
cd $ORACLE_HOME/network/admin/
[oracle@enmoedu1 admin]$ ls
listener.ora  samples  shrept.lst  tnsnames.ora

目标端:

检查tnsnames文件配置:

ORCL12C =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl12c)
    )
  )

LISTENER_ORCL12C =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  
  注意:HOST = [主机名,主机本地IP]

检查listener.ora 文件配置

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

检查监听状态:lsnrctl status

PS C:\Users\Administrator> lsnrctl status

LSNRCTL for 64-bit Windows: Version 12.1.0.1.0 - Production on 05-1月 -2023 22:18:07

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 12.1.0.1.0 - Production
启动日期                  05-1月 -2023 17:35:19
正常运行时间              0 天 4 小时 42 分 47 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\app\oracle\product\12.1.0\dbhome_1\network\admin\listener.ora
监听程序日志文件          C:\app\oracle\diag\tnslsnr\WIN-812T4TNGO4M\listener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-812T4TNGO4M)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=WIN-812T4TNGO4M)(PORT=5500))(Security=(my_wallet_directory=C:\APP\ORACLE\ad
min\orcl12c\xdb_wallet))(Presentation=HTTP)(Session=RAW))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl12c" 包含 1 个实例。
  实例 "orcl12c", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orcl12cXDB" 包含 1 个实例。
  实例 "orcl12c", 状态 READY, 包含此服务的 1 个处理程序...

ping测试:

PS C:\Users\Administrator> tnsping orcl12c

TNS Ping Utility for 64-bit Windows: Version 12.1.0.1.0 - Production on 05-1月 -2023 22:18:46

Copyright (c) 1997, 2013, Oracle.  All rights reserved.

已使用的参数文件:
C:\app\oracle\product\12.1.0\dbhome_1\network\admin\sqlnet.ora


已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)
 (SERVICE_NAME = orcl12c)))
OK (10 毫秒)

1.3.2 检查字符集

主要两个数据库的字符集设置是否一致,不一致的话先进行修改(看资料说OGG12C字符集不一致也是可以同步)

它的格式如下:NLS_LANG = language_territory.charset

它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性

其中:
Language: 指定服务器消息的语言,
territory: 指定服务器的日期和数字格式,
charset: 指定字符集。
如:AMERICAN _ AMERICA. ZHS16GBK

源端:

SYS@PROD> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

目标:

SQL> select sys_context('userenv', 'language') from dual;

SYS_CONTEXT('USERENV','LANGUAGE')
--------------------------------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

修改字符集:
本实验修改源端字符集,在生产环境下,如果目标库是新建的,建议修改目标端。

Linux 下切换到安装数据库的用户下,本次实验是oracle,切换到Oracle用户下,添加环境变量。

su - oracle
vim ~/.bash_profile
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
:wq

执行 source ~/.bash_profile 使之生效

reboot重启系统

登录数据库确认字符集修改是否成功:

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
--------------------------------------------------------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8

上面的方法只修改前面语言,地域部分,字符集没有修改成想要的。继续下面的步骤:

管理员身份登录数据库

连接数据库软件:

sqlplus /nolog

管理员连接:

SQL> connect /as sysdba

关闭数据库:

SQL> shutdow immediate

挂载方式启动

SQL> startup mount

修改会话,进程:

SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter system set aq_tm_processes=0;

打开数据库:

SQL> alter database open;

修改字符集:

SQL> alter database character set  internal_use ZHS16GBK;

关闭数据库:

SQL> shutdown immediate;

打开数据库,重启

SQL> startup

再次确认字符集:

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

Windows 2012添加环境变量,修改注册表(实验中未修改windows,记录备用)

添加环境变量:

选中【我的电脑】——右键——【高级系统设置】——【环境变量】——【系统变量】

新建变量:NLS_LANG 值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

在这里插入图片描述

修改注册表:

win+R,输入regedit,进入注册表;找到以下路径HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ORACLE\KEY_OraDB12Home1
(注意:KEY_OraDB12Home1与自己要修改的数据库对应)
找到NLS_LANG,
在这里插入图片描述

右键,修改数值,修改为客户端/服务器对应的字符集;保存,关闭

重启系统

2 Goldengate(OGG) 安装(源+目标)

goldengate12.2支持的版本是oracle11.2,oracle12c需要goldengate12.3以上版本
G o l d e n g a t e 12.3 s u p p o r t s O r a c l e ≥ 12.2.0.1 G o l d e n g a t e 12.2 s u p p o r t s O r a c l e ≥ 11.2.0.1 G o l d e n g a t e 12.1 s u p p o r t s O r a c l e ≥ 11.1.0.6 G o l d e n g a t e 11.2 s u p p o r t s O r a c l e ≥ 10.2.0.4 F o r e a r l i e r d a t a b a s e v e r s i o n s ( 8 i ( D M L o n l y ) , 9 i − 11.1 ) u s e G o l d e n g a t e 10.4 Goldengate 12.3 supports Oracle \geq 12.2.0.1\\ Goldengate 12.2 supports Oracle \geq 11.2.0.1\\ Goldengate 12.1 supports Oracle \geq 11.1.0.6\\ Goldengate 11.2 supports Oracle \geq 10.2.0.4\\ For earlier database versions(8i(DML only),9i-11.1)use Goldengate10.4 Goldengate12.3supportsOracle12.2.0.1Goldengate12.2supportsOracle11.2.0.1Goldengate12.1supportsOracle11.1.0.6Goldengate11.2supportsOracle10.2.0.4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值