如何安装使用goldengate

一.环境:

OS:linux CentOS_Final_5.5(64bit)

DB:oracle11gR2(单机模式)

goldengate: ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar

网络:局域网,源端IP 192.168.128.100  镜像端IP  192.168.128.101

二.目标:

实现源端到镜像端的数据同步(单向)

三.源端数据库实施:

1数据库准备

1.1开启数据库归档日志

查看数据库当前日志模式

archive log list;

更改为归档模式

shutdown immediate;

start mount;

alter database archivelog;

alter database open;

开启第二归档路径(可选)

alter system set log_archive_dest_2=’location=/archive_2OPTIONAL’ scope=spfile;

alter system archive log start tolog_archive_dest_2;

查看第二归档日志是否生效(重启数据库)

show parameter archive;

1.2开启supplemental logging和force logging

查看当前数据库是否开启supplementallogging

select SUPPLEMENTAL_LOG_DATA_MIN fromv$database;

开启数据库级别的最小supplementallogging

alter database add supplemental log data;

查看当前数据库forcelogging的状态

select force_logging from v$database;

开启forcelogging

alter database force logging;

1.3创建goldengate管理用户,并赋予相关权限

创建管理用户的表空间

create tablespace tbs_ggmgr datafiel ‘/u01/app/oracle/goldengate/ggmgr.dbf’size 50M autoextend on;

创建goldengate管理用户

create user ggmgr identified by oracledefault tablespace tbs_ggmgr temporary tablespace TEMP quota unlimited ontbs_ggmgr;

赋予ggmgr相关权限(想简单的话,可以赋予DBA权限)

grant CONNECT,RESOURCE to ggmgr;

grant CREATE SESSION,ALTER SESSION toggmgr;

grant SELECT ANY DICTIONARY,SELECT ANYTABLE to ggmgr;

grant CREATE TABLE,ALTER ANY TABLE to ggmgr;

1.4创建测试用户和表

create user test identified by test;

conn test/test;

create table test(

stuid number(8),

stuname varchar2(20),

stupasswd varchar2(20)

);

insert into test values(1,’test1’,’test1);

insert into test values(2,’test2’,’test2’);

commit;

2goldengate安装及参数设置

2.1设置goldengate运行所需的环境变量

编辑oracle的home目录下.bash_profile文件

vi .bash_profile

添加如下内容

exportLD_LIBRARY_PATH=$ORACLE_BASE/goldengate:$ORACLE_HOME/lib

2.2创建goldengate安装目录

通常将goldengate安装在ORACLE_BASE目录下

mkdir –p /u01/app/oracle/goldengate/

2.3解压并初始化goldengate

将goldengate压缩文件解压到goldengate得安装目录

tar vxf ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar

执行./ggsci进入GGSCI

创建目录结构

create subdirs  --只在第一次启动执行

2.4 添加trandata

在GGSCI中

dbloign userid ggmgr,password oracle

对要进行复制的表添加表级supplemental logging

add trandata test.*

查看

info trandata test.*

2.5添加并配置mgr进程

edit param mgr

添加如下内容

port 7809

purgeoldextracts ./dirdat/*,usecheckpoints, minkeepfiles 20

2.6添加并配置extract进程

添加一个extract进程

add extract exts100,tranlog,begin now

给extract进程指定trail文件

add exttrail ./dirdat/s1,extract exts100,megabytes 100

配置extract的参数

edit param exts100

添加如下内容(开启第二归档的情况下)

extract exts100

userid ggmgr,password oracle

tranlogoptions archivedlogonly

tranlogoptions altarchivelogdest instanceorcl /archive_2

tranlogoptions altarchivedlogformat%t_%s_%r.dbf

gettruncates

reportcount every 30 minutes,rate

discardfile./dirrpt/exts100.dsc,APPEND,MEGABYTES 100

exttail ./dirdat/s1

table TEST.TEST;

2.7添加并配置pump进程

add extract dps100 exttrailsource./dirdat/s1

add rmttrail ./dirdat/t1,extract dps100

配置pump进程参数

edit param dps100

extract dps100

userid ggmgr,password oracle

rmthost 192.168.128.101,mgrport7809,compress

numfiles 5000

DYNAMICRESOLUTION

rmttrail ./dirdat/t1

table TEST.TEST;

2.8检查进程是否能够成功启动

start <进程名>

start mgr

start exts100

start dps100

查看进程状态

info all

四.镜像端数据库的初始化

1.从源端数据库导出相关的数据和表结构(需要相关权限,可以使用有DBA权限的用户)

exp username/password file=test_1203013.dmpowner=test triggers=n indexes=n log=test_120313.log;

2.将导出的数据文件传到镜像端

可以使用ftp

3.在镜像端创建和源端对应的用户和表空间,要保持表空间的名字一致

create user test identified by test;

4.在镜像端导入数据文件(需要相关权限,可以使用有DBA权限的用户)

imp username/password file=test_120313.dmpfromuser=test touser=test log=test_120313.log;

查看数据是否导入成功

五.镜像端数据库实施

1数据库准备

创建管理用户的表空间

create tablespace tbs_ggmgr datafiel ‘/u01/app/oracle/goldengate/ggmgr.dbf’size 50M autoextend on;

创建goldengate管理用户

create user ggmgr identified by oracledefault tablespace tbs_ggmgr temporary tablespace TEMP quota unlimited ontbs_ggmgr;

赋予ggmgr相关权限(想简单的话,可以赋予DBA权限)

grant CONNECT,RESOURCE to ggmgr;

grant CREATE SESSION,ALTER SESSION toggmgr;

grant SELECT ANY DICTIONARY,SELECT ANYTABLE to ggmgr;

grant CREATE TABLE to ggmgr;

2goldengate安装及参数设置

2.1.设置goldengate运行所需的环境变量

编辑oracle的home目录下.bash_profile文件

vi .bash_profile

添加如下内容

exportLD_LIBRARY_PATH=$ORACLE_BASE/goldengate:$ORACLE_HOME/lib

2.2.创建goldengate安装目录

通常将goldengate安装在ORACLE_BASE目录下

mkdir –p /u01/app/oracle/goldengate/

2.3.解压并初始化goldengate

将goldengate压缩文件解压到goldengate得安装目录

tar vxf ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar

执行./ggsci进入GGSCI

创建目录结构

create subdirs  --只在第一次启动执行

2.4编辑全局参数文件

dblogin userid ggmgr,password oracle

edit params ./GLOBALS

添加如下内容

checkpointtable ggmgr.ogg_checkpointtable

添加检查点表

add checkpointtableggmgr.ogg_checkpointtable

2.5.添加并配置mgr进程

edit param mgr

添加如下内容

port 7809

(这里没有加入清除trail文件的设置)

2.6.添加并配置replicat进程

add replicat rept101,exttrail ./dirdat/t1

编辑replicat进程的参数文件

edit param rept101

添加如下内容

replicat rept101

userid ggmgr,password oracle

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/rept101.dsc,PURGE

MAP TEST.TEST, TARGET TEST.TEST;

2.7检查进程能否成功启动

start <进程名>

start mgr

start rept101

查看进程状态

info all

六.测试

1.在源端数据库插入数据

insert into test values(3,’test3,’test3’);

commit;

2.生成归档日志

alter system switch logfile;

3.查看镜像端数据库

select * from test;