微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle GoldenGate学习笔记

Oracle GoldenGate学习笔记

1.Oracle GoldenGate的体系结构 Oracle GoldenGate(OGG)是一种基于日志的结构化数据复制方式,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步,双活。 OGG体系结构如下: *Manager* *Manager* *Extract* *Data PumP* *Replicat* Source Database -----------> Loacl Trail -------------> Remote Trail ------------> Target Database ------------------------------------------------------ ------------------------------------------ Source Server Target Server 物理结构可分为源端(Source Server),目标端(Target Server). 逻辑结构可分为数据抽取进程(Extract),传输进程(Data Pump),复制进程(Replicat). OGG各个进程的作用: 进程统一由管理进程(Manager)管理。 抽取进程(Extract)将Redo日志或归档日志作为数据源,当其发生变化时抽取进程会将主键字段和变化字段(如果是既无主键又无唯一索引的表就会抽取全部字段)形成本地的Trail文件(Local Trail)。 传输进程(Data Pump)根据目标端的IP和端口配置将本地Trail文件发送至目标端,生成远程Trail文件(Temote Trail)。 复制进程(Replicat)根据远程Trail文件反向生成sql语句在目标数据库中执行。 OGG要求源端数据库必须开启归档模式,以保证正常获取归档数据。 针对既无主键又无唯一索引的表,OGG的处理方式为: 一是打开数据最小附加日志开关: alter database add supplemental log data. 二是增加单表级别的表结构字段信息的获取: add trandata. 这两项操作可以保证所用的表都能正确抽取及复制。 2.Oracle GoldenGate 12c下载地址 进入Oracle官方网址www.oracle.com,选择Downloads/Middleware/GoldenGate http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html 选择下面的下载选项: Oracle GoldenGate 12.2.0.1.1 for Oracle on Linux x86-64 (454 MB) 下载文件: fbo_ggs_Linux_x64_shiphome.zip 安装和配置可以参考Oracle官方在线文档: http://docs.oracle.com/goldengate/c1221/gg-winux/index.html http://docs.oracle.com/goldengate/c1221/gg-winux/GIORA/GUID-3108B63B-F2A2-446E-8006-D685C8E9B3A3.htm#GIORA110 3.Oracle GoldenGate安装 Oracle GoldenGate安装很简单,但首先需要安装Oracle数据库,安装方法参考Oracle数据库安装文档。 本例安装OGG的环境: 操作系统: Redhat Enterprise Linux 7.3 数据库: Oracle 12c 12.1.0.2 OGG版本: Oracle GoldenGate 12c 12.2.0.1.1 需要设置Oracle数据库全局变量: export ORACLE_BASE=/u01/app/oracle; export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1; export ORACLE_SID=sales; 建立OGG的安装目录: # mkdir /u01/app/ogg # chown -R oracle /u01/app/ogg # chmod -R 775 /u01/app/ogg 设置OGG的全局变量: export PATH=$ORACLE_HOME/bin:/u01/app/ogg/12.2.0:$PATH; export LD_LIBBARY_PATH=$ORACLE_HOME/lib;/u01/app/ogg/12.2.0:/lib:/usr/lib; 然后将Oracle GoldenGate安装包解压,在oracle用户下运行安装程序即可. # unzip fbo_ggs_Linux_x64_shiphome.zip # su - oracle $ export LANG="" $ cd /fbo_ggs_Linux_x64_shiphome/disk1 $ ./runInstaller Software Location: 775 /u01/app/ogg/12.2.0 -- OGG软件的安装位置 Database Location: /u01/app/oracle/product/12.1.0/db_1 -- 需要同步的数据库的位置 在源端与目标端均需要安装. 安装好后在安装目录执行ggsci即可运行Oracle GoldenGate工具: $ cd /u01/app/ogg/12.2.0 $ ggsci GGSCI> info all GGSCI> start manager 在Oracle中创建OGG访问的账号,在源端与目标端均需要创建. $ sqlplus / as sysdba; sql> create user ogg identified by ogg; sql> grant connect,resource,unlimited tablespace to ogg; sql> grant unlimited tablespace to ogg; sql> grant execute on utl_file to ogg; sql> grant dba to ogg; 进入OGG命令界面,确认能访问Oracle数据库. $ cd /u01/app/ogg/12.2.0 $ ggsci GGSCI (rhel7a) 1> dblogin userid ogg Password: Successfully logged into database. 4.Oracle GoldenGate源端系统配置 (1).数据库开启归档模式 $ sqlplus / as sysdba; sql> shutdown immediate; sql> startup mount; sql> alter database archivelog; sql> alter database add supplemental log data; -- 添加附加日志 sql> alter database force logging; -- 强制记录日志 sql> alter datebase open; (2).添加需要同步的表 语法结构: ADD SCHEMATRANDATA schema [ALLCOLS | NOSCHEDULINGCOLS] ADD TRANDATA [container.]schema.table [,COLS (columns)] [,NOKEY] [,ALLCOLS | NOSCHEDULINGCOLS] 例子: $ cd /u01/app/ogg/12.2.0 $ ggsci GGSCI> dblogin userid ogg GGSCI> add trandata astt.* (3).编辑源端系统配置参数. 管理器配置参数: GGSCI (rhel7a) 1> edit param mgr PORT 7809 日志提取配置参数: GGSCI (rhel7a) 1> edit params extastt EXTRACT extastt USERID ogg,PASSWORD ogg EXTTRAIL /u01/app/ogg/12.2.0/dirdat/lt TABLE astt.*; 数据传输配置参数: GGSCI (rhel7a) 1> edit params pumpastt EXTRACT pumpastt USERID ogg,PASSWORD ogg RMTHOST 192.168.1.72,MGRPORT 7809 RMTTRAIL /u01/app/ogg/12.2.0/dirdat/rt TABLE astt.*; (4).添加源端系统进程. (4.1).添加提取主进程(Adding the Primary Extract): DBLOGIN USERIdaliAS alias ADD EXTRACT group name {,TRANLOG |,INTEGRATED TRANLOG} {,BEGIN {Now | yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]} | SCN value} [,THREADS n] (4.2).添加Trail文件(Add the Local Trail): ADD EXTTRAIL pathname,EXTRACT group name (4.3).添加传输进程(Add the Data Pump Extract Group): ADD EXTRACT group name,EXTTRAILSOURCE trail name (4.4).添加远程Trail文件(Add the Remote Trail): ADD RMTTRAIL pathname,EXTRACT group name 例子: $ ggsci add extract extastt,tranlog,begin Now add exttrail /u01/app/ogg/12.2.0/dirdat/lt,extract extastt add extract pumpastt,exttrailsource /u01/app/ogg/12.2.0/dirdat/lt add rmttrail /u01/app/ogg/12.2.0/dirdat/rt,extract pumpastt start extract extastt start extract pumpastt 源端系统打开防火墙端口:1521,7809. 5.Oracle GoldenGate目标端系统配置 (1).修改Oracle系统参数,允许执行OGG复制. $ sqlplus / as sysdba; sql> alter system set enable_goldengate_replication=true scope=both; (2).编辑目标端系统配置参数. 管理器配置参数: GGSCI (rhel7b) 1> edit param mgr PORT 7809 DYNAMICPORTLIST 7810-7820 --远程队列端口 GLOBALS配置参数: GGSCI (rhel7b) 1> edit params ./GLOBALS CHECKPOINTTABLE ogg.checkpoint 数据复制配置参数: GGSCI (rhel7b) 1> edit params repastt REPLICAT repastt USERID ogg,PASSWORD ogg ASSUMetaRGETDEFS MAP astt.*,TARGET astt.*; (3).添加目标端系统进程. $ ggsci dblogin userid ogg add checkpointtable ogg.checkpoint -- 如果已存在需删除 delete checkpointtable ogg.checkpoint add replicat repastt,exttrail /u01/app/ogg/12.2.0/dirdat/rt,checkpointtable ogg.checkpoint start replicat repastt 目标端系统打开防火墙端口:1521,7809,7810-7820. 6.测试同步 在源端数据库的表中插入数据. 检查源端ogg的dirdat目录中是否有生成提取文件. 检查目标端ogg的dirdat目录中是否有接收到文件. 检查目标端数据库中是否已同步数据. 7.重新安装OGG. 先停止OGG的进程 $ ggsci stop extastt stop pumpastt stop mgr 删除ogg目录所有文件修改下inventory.xml,去掉OGG的HOME配置即可. $ cd /u01/app $ rm -r ogg $ cd /u01/app/oraInventory/ContentsXML $ vi inventory.xml 8.查看错误方法及常见错误信息 如OGG的进程有中断,可以通过命令查看错误信息: $ ggsci view report repastt 常见错误信息: (1).参数配置错误 OGG-00041 Data source not specified 检查参数是否拼写错误. (2).远程主机防火墙未打开,或动态队列端口配置有问题 OGG-01224 TCP/IP error 113 (No route to host),endpoint: 192.168.1.72:7820 一般OGG的DUMP进程会从管理端口7809后面寻找远程主机动态端口,须保证远程主机动态队列端口设置正确,防火墙有开放端口.

原文地址:https://www.jb51.cc/oracle/211243.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐