OGG配置单向复制

源操作系统和目标操作系统:

数据库版本

OGG版本

 

第一步,配置源端,目标端操作系统环境变量,建立OGG用户

源端
create tablespace ogg_t datafile '/u01/app/oracle/oradata/PROD1/ogg_t01.dbf' size 50m autoextend on;
create user ogg identified by oracle default tablespace ogg_t temporary tablespace temp;
grant connect to ogg;
grant alter any table to ogg;
grant alter session to ogg;
grant create session to ogg;
grant flashback any table to ogg;
grant select any dictionary to ogg;
grant select any table to ogg;
grant resource to ogg;
grant select any transaction to ogg;

 

打开附加日志,强制数据库写日志,当然归档也打开。(归档在mount状态下开)

alter database add supplemental log data;
alter database force logging;

alter database archivelog;

第二步 进入OGG

解压OGG安装包,进入OGG安装文件

运行ggsci

第三步,配置源端OGG配置信息

执行create subdirs 创建相关OGG程序

编辑MGR源端管理进程配置信息

edit params mgr

--编辑内容如下- edit params mgr------------
port 7839 
DYNAMICPORTLIST 7840-7850
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

查看保存后的内容

-------------------

启动MGR管理进程  

 start mgr

输入info all 命令可以看到关于进程状态相关信息

 

源端:
配置scott下面表的表级附加日志。配置登陆用户。并检查日志是否添加成功。
以ogg这个schema登陆数据库。
dblogin userid ogg, password oracle

添加表级附加日志
add trandata scott.*

配置源端的抓取进程


add extract ext_demo, tranlog, begin now, threads 1
-------------------------------------------------------------------------------------------
参数分析:
tranlog:表示数据抓取的来源是数据库的redo数据。
begin now:表示我们在启动这个抓取进程的就去抓取数据。
threads 1:表示我们数据库有多少个redo threads,单实例基本上是1或者不设,rac就自己设置了,
配置过RAC的基本都了解。
-------------------------------------------------------------------------------------------


添加源端的队列文件。
add EXTTRAIL ./dirdat/r1, extract ext_demo,megabytes 100
-------------------------------------------------------------------------------------------
分析:
./dirdat:表示trail文件的目录
r1:trail文件的前缀
extract ext_demo:值指定给那个进程用的(ext_demo)。
megabytes 100:文件大小是100m
-------------------------------------------------------------------------------------------

 

编辑我们刚刚在源端配置的抓取进程的参数:
edit param ext_demo
-------------------------------------------------------------------------------------------
EXTRACT ext_demo
setenv (ORACLE_SID=PROD1)
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg,password oracle
REPORTCOUNT EVERY 1 MINUTES, RATE
numfiles 5000
DISCARDFILE ./dirrpt/ext_demo.dsc,APPEND,MEGABYTES 1000
DISCARDROLLOVER AT 3:00
exttrail ./dirdat/r1,megabytes 100
dynamicresolution
TRANLOGOPTIONS EXCLUDEUSER ogg
TRANLOGOPTIONS convertucs2clobs
TABLE scott.*;
-------------------------------------------------------------------------------------------
分析:
setenv (ORACLE_SID=ogg):指定oracle的sid,单机环境下可以不设或者bashprofile文件中设置了默认的
也可以不设,但是集群环境就要指定了,这里我们强烈建议指定。
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK):源端数据库的字符集,一定要跟数据库中匹配。
userid goldengate,password goldengate:告诉抓取进程是通过这个用户登陆数据库的。
exttrail ./dirdat/r1,megabytes 100:与我们上面配置抓取进程的设置要一致,路径和大小嘛。
TABLE HR.*:最重要的,告诉抓取进程抓取的是哪些用户哪些表的数据。

-------------------------------------------------------------------------------------------

查看配置的进程信息

启动抓取进程:
start ext_demo

-------------------------------------------------------------------------------------------

 

配置datapump进程,将抓取数据传到目标主机。负责TCPIP通讯。
add extract dpe_demo, exttrailsource ./dirdat/r1

输出:目标主机怎么写,也是定义datapumo进程的输出。
add rmttrail ./dirdat/t1,EXTRACT dpe_demo,MEGABYTES 100

分析:
exttrailsource:抓取进程的来源,因为这个进程不否则到数据库中取抓取,所以抓取的来源

是通过抓取进程已经生成好的trail文件中的内容。

配置datapump进程参数:
edit param dpe_demo
-------------------------------------------------------------------------------------------
extract dpe_demo
dynamicresolution
passthru
rmthost 192.168.56.82, mgrport 7839, compress
rmttrail ./dirdat/t1
numfiles 5000
TABLE scott.*;
-------------------------------------------------------------------------------------------
分析:
passthru:上面已经说过不需要连接数据库,所以用这个指令。
rmthost:目标主机的IP地址,就是说我们的rmttrail进程发送到的主机。
mgrport:目标主机管理进程的端口号,我们上面已经配置了。
compress:在传输的过程中启用压缩。
rmttrail:路径和文件与上面配置的一致。
TABLE scott.*:上面说过,哪些表的redo信息传输。

-------------------------------------------------------------------------------------------

查看配置的进程

查看源端所有进程状态

第四步,配置目标端OGG配置信息

目标端用户添加
create tablespace ogg_t datafile '/u01/app/oracle/oradata/PROD1/ogg_t01.dbf' size 50m autoextend on;
create user ogg identified by oracle default tablespace ogg_t temporary tablespace temp;
grant connect to ogg;
grant alter any table to ogg;
grant alter session to ogg;
grant create session to ogg;
grant flashback any table to ogg;
grant select any dictionary to ogg;
grant select any table to ogg;
grant resource to ogg;
grant select any transaction to ogg;

grant insert any table to ogg;
grant update any table to ogg;
grant delete any table to ogg;
grant create any index to ogg;
grant select any transaction to ogg;
-------------------------------------------------------------------------------------------


登陆目标端OGG:
为replicat进程创建checkpoint表:
dblogin userid ogg,password oracle

add checkpointtable ogg.rep_demo_ckpt

-------------------------------------------------------------------------------------------
配置目标端replicate进程:
add replicat rep_demo,exttrail ./dirdat/t1,checkpointtable ogg.rep_demo_ckpt
分析:
exttrail:表示这个进程获取数据的来源是什么地方,是我们源端rmttrail所设置过的。

-------------------------------------------------------------------------------------------
配置目标端replicate参数:
edit param rep_demo
-------------------------------------------------------------------------------------------
REPLICAT rep_demo
SETENV (ORACLE_SID=DG)
SETENV (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")
USERID ogg,PASSWORD oracle
REPORTCOUNT EVERY 30 MINUTES, RATE
REPERROR DEFAULT, ABEND
numfiles 5000
--HANDLECOLLISIONS
assumetargetdefs
DISCARDFILE ./dirrpt/rep_demo.dsc, APPEND, MEGABYTES 1000
ALLOWNOOPUPDATES
MAP scott.*, TARGET scott.*;

-------------------------------------------------------------------------------------------
分析:
重要的地方与上面基本一致,有兴趣可以查查其他参数的信息。
MAP:源端和目标端的对应。
-------------------------------------------------------------------------------------------

目标端:
启动并查看replicate进程是否运行:
start rep_demo

查看目标端所有进程状态

第五步验证是否成功

在源端scott用户下,对dept表插入一条数据

 

在目标端查询dept表发现也有条数据

 

搭建成功。

 

 

 

 

你可能感兴趣的:(ORACLE之个人成长记录)