快速搭建golden gate环境
准备操作系统用户和文件系统
- 准备安装和运行用户(操作系统用户)
- 建议使用Oracle用户
- 也可使用新建用户,但需做以下配置
- 该用户必须加入到oinstall组
- 该用户使用与oracle相同的profile文件
- 操作系统必须为该用户开放一定的CPU、内存等资源限制,可以通过ulimit –a查看,建议在/etc/security/limits.conf中设置和oracle用户一致.
- 准备安装位置和空间
- OGG可以安装于任意位置,RAC下建议安装在存储阵列,可以在单点失败后切换到其它节点继续运行.只在一个节点上跑。
- 分配空间
- 软件本身所需空间约为200M以下 (OGG 12c需要约500M空间,建议1GB)
- 为缓存数据建议保留相当于1-3天归档日志的存储空间 (trial文件)--很多客户用1周的量。
- 将安装目录的owner修改为OGG运行用户
源库的准备
- 数据库必须打开归档模式:OGG重启时需要读取未提交交易开始时的日志。如果系统稳定,只要你不需要去归档日志读取就不需要打开。
- 验证未使用并行日志(只针对9i ):Sql> show parameter LOG_PARALLELISM。如结果为1,无需修改;否则需要修改为1。
- 如果是OGG12c,需要设置(不管源和目标,只要运行12c的就要设置):alter system set enable_goldengate_replication=true;
- 打开数据库最小附加日志:
- SQL>select supplemental_log_data_min from v$database;
- 结果为NO,表示没有打开附加日志。使用以下命令将数据库附加日志打开:
- SQL>alter database add supplemental log data;
- 切换日志以使附加日志生效:
- SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
- 建立OGG数据库用户:
- OGG需要从数据字典读取表结构
- 如Oracle日志中没有足够信息,则需通过flash back或者直接读取数据库记录(例如,CLOB/BLOG/BINARY等)
- OGG数据库用户权限:
- CREATE USER goldengate IDENTIFIED BY goldengate DEFAULT TABLESPACE USERS ;
- GRANT CONNECT TO goldengate;
- GRANT CREATE SESSION TO goldengate;
- GRANT ALTER SESSION TO goldengate;
- GRANT RESOURCE TO goldengate;
- GRANT SELECT ANY DICTIONARY TO goldengate;
- GRANT SELECT ANY TABLE TO goldengate;
- GRANT FLASHBACK ANY TABLE TO goldengate;
- GRANT ALTER ANY TABLE TO goldengate;
目标库的准备
- 建立OGG数据库用户:通过sql将数据写入数据库
- OGG目标数据库用户权限:
- CREATE USER goldengate IDENTIFIED BY goldengate DEFAULT TABLESPACE USERS ;
- GRANT CONNECT TO goldengate;
- GRANT CREATE SESSION TO goldengate;
- GRANT ALTER SESSION TO goldengate;
- GRANT RESOURCE TO goldengate;
- GRANT SELECT ANY DICTIONARY TO goldengate;
- GRANT SELECT ANY TABLE TO goldengate;
- GRANT FLASHBACK ANY TABLE TO goldengate;
- GRANT ALTER ANY TABLE TO goldengate;
- GRANT INSERT ANY TABLE TO goldengate;
- GRANT UPDATE ANY TABLE TO goldengate;
- GRANT DELETE ANY TABLE TO goldengate;
软件安装(源和目标)
- 上传软件包到安装目录
- 以oracle用户登录
- 使用unzip XXX.zip解压缩;
- 使用tar xvf XXX.tar解开tar包;
- 在goldengate目录下,执行./ggsci进入命令行界面,左侧提示出现GGSCI (myhost) 1>,表示进入成功
- 如果ggsci进入出错,设置一下环境变量:
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- 在ggsci环境下创建GoldenGate子目录:GGSCI>create subdirs
- 该命令会在OGG安装目录下建立若干子目录,其中几个主要目录如下所示:
- dirchk:用于存放各个进程的检查点
- dirdat:用于存放数据队列文件
- dirprm:用于存放各进程参数文件
- dirrpt:用于存放各进程报告
- dirpcs:存放各个正在运行的进程信息
Mgr进程配置 (源和目标):
- 以oracle用户登录,在goldengate目录下,执行./ggsci进入命令行界面
- 为mgr进程配置参数:
- GGSCI>edit param mgr
- 会打开一个编辑窗口,在其中输入以下内容然后保存退出。
port 7809
--DYNAMICPORTLIST 7820-7830, 7833, 7835
--autostart er *
--autorestart er *, retries 5, waitminutes 3
--purgeoldextracts /u01/oracle/goldengate/dirdat/*,usecheckpoints, minkeepdays 7 - 启动mgr进程:GGSCI>start mgr
- 说明:参数前面加入两个中划线表示该参数被注释掉
添加表级附加日志(源):
- 以oracle用户进入goldengate目录下执行./ggsci命令进入命令行界面;
- 在GGSCI命令行中登录数据库,为所有要复制的数据表添加trandata:
- ggsci>dblogin userid goldengate, password goldengate
- ggsci>add trandata myschema.mytable1
- 或者
- ggsci>add trandata myschema.*
- 结尾无逗号,注意空格位置
添加抽取进程(源):
- 添加exta进程,从数据库日志中抓取有效数据
- GGSCI> add ext exta, tranlog, begin now
- exta为进程名,一般为ext开头表示是extract进程,后面可以加1-2位字符标识;
- tranlog表示要抽取数据库日志;
- begin now表示从当前时间点开始抽取
抽取进程直接到目标端(源):
- 添加远程队列ra, exta进程捕捉到的有效数据直接写入远程队列 :一般不会采用这样的方式。
- GGSCI> add rmttrail /u01/oracle/goldengate/dirdat/ra, ext exta, MEGABYTES 20
- 每一个ext进程都要对应一个本地或者远程队列,指明ext进程抽取的数据要写到何处。
- Rmttrail参数指定的位置就是目标队列的位置(注意:不是在源主机上的位置),队列一般以路径加上两个标识如ra来表示,ext后面指定该队列是对应哪个ext进程。
- Megabytes表示每个队列文件的大小限制,超过该大小则会滚动写下一个队列文件。
- 注意:如果网络中端,则extract会中止,如果长时间以后再启动则有可能日志已经被删除,因此建议在异地和系统经常要重启或停机的情况下采用添加一个传输进程的方式。
配置传输进程(源):
- 如果是异地复制或者网络不稳定,建议首先抽取到本地,然后再单独配一个进程传输到目标。
- 创建完exta进程后,使用本地队列时为exta进程配置队列如下:
GGSCI> add exttrail /u01/oracle/goldengate/dirdat/la, ext exta, MEGABYTES 20
- 由于此时exta复制到了本地,还需要配置一个传输进程负责将数据原封不动的搬运到目标端:
GGSCI> add extract dpea, EXTTRAILSOURCE /u01/oracle/goldengate/dirdat/la
- 注意此时exttrail指定的是本地队列位置。然后为该传输进程配置远程队列:
GGSCI> add rmttrail /u01/oracle/goldengate/dirdat/ra, ext dpea, MEGABYTES 20
- 其中队列位置是在目标主机上的位置
配置抽取进程参数(源):
- 如果是直接投递到目标端,不使用data pump (对应前面进程的配置方法,一般不这样用)
GGSCI>edit param exta
EXTRACT exta
setenv(NLS_LANG = AMERICAN_AMERICA.AL32UTF8)
setenv(ORACLE_SID = oggsource)
USERID goldengate, PASSWORD goldengate
rmthost oggtarget, mgrport 7809
rmttrail /u01/oracle/goldengate/dirdat/ra
dynamicresolution
--GETUPDATEBEFORES
--NOCOMPRESSDELETES
table myschema.maytable1;
table myschema.maytable2;
--table myschema.*;
--TABLE hq.acct, COLS (col1, col3);
--TABLE hq.acct, COLSEXCEPT (col4); - 如果是使用了data pump,则抽取日志进程exta参数如下:
GGSCI>edit param exta
EXTRACT exta
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
setenv (ORACLE_SID = oggsource)
USERID goldengate, PASSWORD goldengate
EXTTRAIL /u01/oracle/goldengate/dirdat/la
dynamicresolution
--GETUPDATEBEFORES
--NOCOMPRESSDELETES
table myschema.maytable1;
table myschema.maytable2;
--table myschema.*;
--TABLE hq.acct, COLS (col1, col3); //只复制该表的col1和col3列
--TABLE hq.acct, COLSEXCEPT (col4); //复制该表除col4外的所有列
--相比不使用data pump,其区别就是使用exttrail 代替了rmttrail,也无需再配置rmthost。 - 如果是使用了data pump,还需要配置data pump进程dpea
extract dpea
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
passthru
--REPORT AT 01:59
--reportrollover at 02:00
rmthost 99.16.1.11,mgrport 7809, compress
rmttrail /oradata/goldengate/dirdat/ra
dynamicresolution
table myschema.mytable1;
table myschema.mytable2;
TABLE hq.acct; //注意此时不用再过滤cols了。
--其中:passthru表示本进程是一个传输进程data pump,无需跟数据库交互,只需要搬运数据即可;
--因为data pump要传输数据到目标,所以需要配置rmthost和rmttrail指定目标主机和队列信息
启动源端进程(源):
- 启动源端所有进程:GGSCI>start ext *
- 表示启动所有的extract进程。也可以使用start直接加进程名,如 start dpea分别启动各个进程。
- 可以通过info all查看各进程状态,正常启动后应当是running状态。
- 注:此时应当保证目标端mgr已经启动,否则可能dpea进程无法启动。
投递进程配置(目标)初始化目标表:
- GoldenGate的extract进程CDC工作方式不负责为目标端建立对应表和初始数据
- 可以通过exp/imp、RMAN、init load进行数据初始化
- 如果目标端不需要历史数据,可以只建立表结构。
投递进程配置(目标端)– 添加投递进程:
- 添加repa进程,将队列中的数据应用到目标库
GGSCI> add rep repa, exttrail /u01/oracle/goldengate/dirdat/ra, nodbcheckpoint
- repa为进程名,一般为rep开头表示是replicat进程,后面可以加1-2位字符标识,一般与ext进程对应;
- exttrail表示要抽取的数据队列,注意是目标端的队列位置;
- nodbcheckpoint表示不使用数据库检查点。
投递进程配置(目标端)– 配置投递进程参数:
- 为投递进程配置参数:
GGSCI>edit param repa
replicat repa
setenv (NLS_LANG = 'SIMPLIFIED CHINESE_CHINA.AL32UTF8')
setenv (ORACLE_SID = GUTJ)
userid goldengate, password ********
--REPORT AT 01:59
--reportrollover at 02:00
reperror default,abend
discardfile /u01/oracle/goldengate/dirrpt/repa.dsc,append, megabytes 10
assumetargetdefs
--allownoopupdates
dynamicresolution
--INSERTALLRECORDS
map myschema.maytable, target myschema.maytable;
map gy25500.F_09B201A_APPEND, target odiu.F_B201A_APPEND, COLMAP ( usedefaults , etltime = @GETENV ("GGHEADER", "COMMITTIMESTAMP")); - 启动目标端投递进程:GGSCI>start rep * 表示启动所有的replicat进程。也可以使用start直接加进程名,如 start repa分别启动各个进程。可以通过info all查看各进程状态,正常启动后应当是running状态,注意:如果涉及到在线数据初始化过程,语法不一样.
安装过程总结:
- 分段配置
- 相关参数使用合理性
- 相对路径和绝对路径的一致性
快速搭建golden gate环境的更多相关文章
- 9款一键快速搭建PHP运行环境的好工具
9款一键快速搭建PHP运行环境的好工具 胡倡萌 2011/02/19 网络资源 77,063 1 内容提要: 建立一个PHP网站,首先需要搭建PHP的开发和运行环境,对于PHP初学者也是一个难 ...
- WAMP Server助你在Windows上快速搭建PHP集成环境
WAMP Server助你在Windows上快速搭建PHP集成环境 原文地址 我想只要爬过几天网的同学都会知道PHP吧,异次元的新版本就是基于PHP的WordPress程序制造出来的,还有国内绝大部分 ...
- CentOS 7快速搭建Nodejs开发环境
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.学习Nodejs首先需要会安装环境.这里我介绍如 ...
- 基于 Jenkins 快速搭建持续集成环境--转
源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...
- Jenkins 快速搭建持续集成环境
持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...
- Linux下快速搭建php开发环境
php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XA ...
- 利用Docker Compose快速搭建本地测试环境
前言 Compose是一个定义和运行多个Docker应用的工具,用一个YAML(dockder-compose.yml)文件就能配置我们的应用.然后用一个简单命令就能启动所有的服务.Compose编排 ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Windows下快速搭建安卓开发环境android-studio
Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...
随机推荐
- QT线程使用收集示例
关于多线程问题: Qt和Boost做跨平台的线程封装,OpenMP主要做并行计算,让不精通多线程的人也能高效地利用CPU的计算能力.个人倾向于用boost.thread, boost.mpi. 一 ...
- Laravel5.6安裝:Warning: require(../vendor/autoload.php): failed to open stream: No such file or directory
在phpstudy下使用composer+laravel安装器的方式安装了Laravel,但是访问的时候报错: Warning: require(D:\phpstudy\WWW\public\mybl ...
- java 常用API 包装 数据转换
package com.oracel.demo01; public class Sjzh { // 将基本数据类型转字符串 public static void main(String[] args) ...
- 如何在php中优雅的地调用python程序
1.准备工作 安装有python和php环境的电脑一台. 2.书写程序. php程序如下 我们也可以将exec('python test.py') 换成 system('python test.p ...
- 关于linux系统的sendmail使用中的问题与解决
系统环境是ubuntu16.04 安装 sudo apt-get install sendmail 检查运行情况 sudo service sendmail status 结果如下,表示正在运行 ● ...
- 配置sudo命令行为审计
1.检查是否安装 rpm -aq sudo rsyslog #检验是否安装此软件 ***如果没有需执行(yum install sudo rsyslog -y)安装*** 2.配置审计 echo &q ...
- Hibernate之HQL基本用法
关于HQL HQL与SQL非常类似,只不过SQL的操作对象是数据表,列等对象,而HQL操作的是持久化类,实例,属性等. HQL是完全面向对象的查询语言,因此也具有面向对象的继承,多态等特性. 使用HQ ...
- Python中的全局变量与局部变量的区别
全局变量与局部变量两者的本质区别就是在于作用域 用通俗的话来理解的话, 全局变量是在整个py文件中声明,全局范围内都可以访问 局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地 ...
- 【hdu 6396】Swordsman
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 开k个优先队列.每个队列都满足从小到大那种.. 首先将所有的怪物加入到第一个队列中. 然后对于v[i]>=pq[i].top( ...
- 用2003版的Excel使用“宏”打开NMON软件生产的.nmon文件
用2003版的Excel使用“宏”打开NMON软件生产的.nmon文件 nmon analyser——生成 AIX 性能报告的免费工具,可从 NMON 的输出中生成大量的报告图形.nmon_analy ...