ITPub博客

首页 > 数据库 > Oracle > Oracle GoldenGate在RAC上部署安装

Oracle GoldenGate在RAC上部署安装

Oracle 作者:xushaonan001 时间:2017-05-12 16:01:16 0 删除 编辑
很多用户都采用了OGG作为生产环境的灾备复制软件,生产端通常是双节点的RAC,灾备端可能是同样环境也可能是单实例环境。生产端在安装OGG时会从存储上划分一个独立的共享磁盘,将其做成文件系统,然后将OGG软件和目录都放在该磁盘上,包括本地trail文件。下面的实验我们在虚拟机上来简单的创建一个上述灾备架构。

环境介绍:
Target
os:Enterprise Linux Enterprise Linux Server release 5.7

oracle 11.2.0.3 RAC 双节点
192.168.1.191   node1.localdomain       node1
192.168.1.192   node2.localdomain       node2

ogg:11.2.1.0.1

Source
os:Enterprise Linux Enterprise Linux Server release 5.7

oracle 11.2.0.3 单实例
192.168.1.21    oggtarget

ogg:11.2.1.0.1


Source系统设置

为Source端分配磁盘创建OGG,该磁盘为共享类型
划分磁盘
[root@node1 dev]# fdisk /dev/sdj
格式化磁盘
[root@node1 dev]# mkfs -t ext3 /dev/sdj1
创建挂载点
[root@node1 dev]# mkdir /goldengate
[root@node1 /]# chown oracle:oinstall /goldengate
加载挂载点
[root@node1 dev]# mount /dev/sdj1 /goldengate
开机自动加载
[root@node1 dev]# vi /etc/fstab
/dev/sdj1               /goldengate             ext3    defaults        1 2
解压缩ogg安装包
# su - oracle
[oracle@node1 ~]$ cd /goldengate/
[oracle@node1 goldengate]$ unzip /tmp/ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[oracle@node1 goldengate]$ tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

在bash_profile中添加OGG_HOME
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node1.localdomain
export ORACLE_SID=devdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_UNQNAME=devdb
export OGG_HOME=/goldengate
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export EDITOR=vi
export LANG=en_US
export NLS_LANG=american_america.AL32UTF8
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'

创建OGG应用目录
cd $OGG_HOME
[oracle@node1 goldengate]$ ggsci
GGSCI (node1.localdomain) 1> CREATE SUBDIRS

开启数据库级别日志补充
SYS@devdb1 >ALTER DATABASE FORCE LOGGING;
SYS@devdb1 >ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SYS@devdb1 >ALTER SYSTEM ARCHIVE LOG CURRENT;

SYS@devdb1 >col open_mode for a10
SYS@devdb1 >SELECT name,open_mode,force_logging,supplemental_log_data_min FROM v$database;

创建测试用户
SYS@devdb1 >CREATE USER snow IDENTIFIED BY snow DEFAULT TABLESPACE USERS;
SYS@devdb1 >GRANT CONNECT, RESOURCE TO snow;
SYS@devdb1 >conn snow/snow
SNOW@devdb1 >CREATE TABLE t1 (id INT PRIMARY KEY, name VARCHAR2(10));

创建OGG管理用户及其表空间
conn / as sysdba
SYS@devdb1 >select name from v$datafile;
SYS@devdb1 >CREATE TABLESPACE goldengate DATAFILE '+DATA/devdb/datafile/goldengate.dbf' SIZE 100M AUTOEXTEND ON;
SYS@devdb1 >CREATE USER oggadmin IDENTIFIED BY oggadmin DEFAULT TABLESPACE goldengate;
SYS@devdb1 >GRANT dba TO oggadmin;

添加角色
SYS@devdb1 >@/goldengate/role_setup
Enter GoldenGate schema name:oggadmin
GRANT GGS_GGSUSER_ROLE TO oggadmin;

设置全局参数
ogg global
GGSCI> EDIT PARAMS ./GLOBALS
GGSCHEMA oggadmin

Target系统设置
解压缩ogg安装包
cd /u01/app/oracle
mkdir gg
cd gg
unzip /tmp/ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

在bash_profile中添加OGG_HOME
vi /home/oracle/.bash_profile
export ORACLE_SID=oggtarget
export ORACLE_BASE=/u01/app/oracle
export OGG_HOME=$ORACLE_BASE/gg
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export EDITOR=vi
export LANG=en_US
export NLS_LANG=american_america.AL32UTF8
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
umask 022
alias s="sqlplus / as sysdba"
stty erase ^h

创建OGG应用目录
[oracle@oggtarget ~]$ cd $OGG_HOME
[oracle@oggtarget gg]$ ggsci
GGSCI (oggtarget) 1> CREATE SUBDIRS

创建测试用户
create user snow identified by snow default tablespace users;
grant connect, resource to snow;
conn snow/snow
create table t1 (id int primary key, name varchar2(20));

创建OGG管理用户及其表空间
conn / as sysdba
CREATE TABLESPACE goldengate
DATAFILE '/u01/app/oracle/oradata/oggtarget/goldengate01.dbf' SIZE 100m AUTOEXTEND ON;

CREATE USER oggadmin IDENTIFIED BY oggadmin DEFAULT TABLESPACE goldengate;
GRANT dba TO oggadmin;

设置全局参数
GGSCI> EDIT PARAMS ./GLOBALS
GGSCHEMA oggadmin


Source系统设置
配置管理进程
GGSCI> EDIT PARAM MGR
PORT 7809

开启表级别日志补充,追加对象为用户snow下所有表
DBLOGIN USERID oggadmin,PASSWORD oggadmin
ADD TRANDATA snow.t1

创建初级提取组ex1,源端是双节点RAC,此处设置参数THREADS 2
ADD EXTRACT ex1,TRANLOG,BEGIN NOW,THREADS 2

为初级提取组ex1指定本地trail文件
ADD EXTTRAIL /goldengate/dirdat/ex, EXTRACT ex1 MEGABYTES 5

配置初级提取组参数文件,源端是双节点RAC,此处设置参数TRANLOGOPTIONS DBLOGREADER
GGSCI> EDIT PARAMS ex1

EXTRACT ex1
USERID oggadmin, PASSWORD oggadmin
TRANLOGOPTIONS DBLOGREADER
EXTTRAIL /goldengate/dirdat/ex
TABLE snow.*;

创建投递组dp1,设置本地trail文件
ADD EXTRACT dp1 EXTTRAILSOURCE /goldengate/dirdat/ex

为投递进组dp1设置target端trail文件地址
ADD RMTTRAIL /u01/app/oracle/gg/dirdat/rt, EXTRACT dp1

配置投递组dp1参数文件
GGSCI> EDIT PARAMS dp1

EXTRACT dp1
USERID oggadmin, PASSWORD oggadmin
RMTHOST 192.168.1.21, MGRPORT 7809
RMTTRAIL /u01/app/oracle/gg/dirdat/rt
TABLE snow.*;

Target系统
配置管理进程
GGSCI> EDIT PARAM MGR
PORT 7809

创建检查点表
DBLOGIN USERID oggadmin,PASSWORD oggadmin
ADD CHECKPOINTTABLE oggadmin.checkpointtable

在全局环境中添加检查点表
EDIT PARAMS ./GLOBALS
GGSCHEMA oggadmin
CHECKPOINTTABLE oggadmin.checkpointtable


创建复制组rt1,设置读取trail文件路径以及检查点表
ADD REPLICAT rt1, EXTTRAIL /u01/app/oracle/gg/dirdat/rt, checkpointtable oggadmin.checkpointtable

为复制组rt1配置参数文件
GGSCL> EDIT PARAM rt1

REPLICAT rt1
USERID oggadmin, PASSWORD oggadmin
ASSUMETARGETDEFS
DISCARDFILE /u01/app/oracle/discards.dsc, PURGE
MAP snow.*, TARGET snow.*;

测试环节
启动source管理进程
GGSCI (node1.localdomain) 1> START MGR

启动target管理进程
GGSCI (oggtarget) 1> START MGR

启动source提取进程
GGSCI (node1.localdomain) 2> START EX1

启动target复制进程
GGSCI (oggtarget) 2> START RT1

启动source投递进程
GGSCI (node1.localdomain) 3> START DP1

确认source进程状态
GGSCI (node1.localdomain) 4> INFO ALL

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     DP1         00:00:00      00:00:08
EXTRACT     RUNNING     EX1         00:00:00      00:00:03

确认target进程状态
GGSCI (oggtarget) 3> INFO ALL

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     RT1         00:00:00      00:00:02

源端节点node1插入数据
SNOW@devdb1 >insert into t1 values(1,'SNOW’);
SNOW@devdb1 >commit;

源端节点node2插入数据
SNOW@devdb2 >insert into t1 values(2,'LILY');
SNOW@devdb2 >commit;

复制端验证
SNOW@oggtarget >select * from t1;

        ID NAME
---------- ------------------------------
         1 SNOW
         2 LILY

实验结束。 

Oracle GoldenGate是一个轻量级软件,在Oracle数据库上安装配置是一种松耦合的状态,这点非常理想。无论是在单实例环境还是多实例的RAC环境只需要做少量的配置就可以生效,软件的启动和关闭也不需要数据库做任何设置。从安装的角度来说,比DataGuard要轻便的多。DataGuard是一种“侵入式”配置。需要修改Oracle本身的配置文件。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30336782/viewspace-2138996/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-07-09

  • 博文量
    271
  • 访问量
    128542