ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据复制_GoldenGate

数据复制_GoldenGate

原创 Linux操作系统 作者:redhouser 时间:2011-06-01 09:26:45 0 删除 编辑

为了实现生产库到查询库的数据复制,对GoldenGate进行测试。
环境:
oracle@net95 ~]$ uname -a
Linux net95 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:47:32 EDT 2009 i686 i686 i386 GNU/Linux

[oracle@net95 gg]$ ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.1.1.0.0 Build 078
Linux, x86, 32bit (optimized), Oracle 10 on Jul 28 2010 13:24:18

1,安装
1.1,安装软件(在源端和目标端分别执行)
* 使用oracle安装用户:
mkdir /home/oracle/gg
vi /home/oracle/.bash_profile:
增加:
PATH=/home/oracle/gg:$PATH
export PATH
LD_LIBRARY_PATH=/home/oracle/gg:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

* 复制软件
copy software to /home/oracle/gg

* 创建子目录
ggsci
ggsci>>create subdirs

* 设置管理器参数,并启动
ggsci>>edit params mgr,输入port 7809保存退出即可
ggsci>>start mgr
Manager started.

1.2,在数据库中增加管理用户(在源端和目标端分别执行)
create user ggadmin identified by ggadmin;
grant dba to ggadmin;

1.3源端
* 确认源端数据库为归档模式
--alter database archivelog;(需要在数据库mount状态下执行);

* 设置源端附加日志
select supplemental_log_data_min from v$database;
alter database add supplemental log data;

* 切换日志以使附加日志生效:
alter system switch logfile;

2,测试
2.1测试用户准备
源端:
create user ggtest identified by ggtest;
grant connect,resource to ggtest;

sqlplus ggtest/ggtest
create table t(x int,y int);

alter table t
  add constraint pk_t primary key(x);

ggsci>>ADD TRANDATA GGTEST.TT

目标端:
create user ggtest identified by ggtest;
grant connect,resource to ggtest;

sqlplus ggtest/ggtest
create table t(x int,y int);

alter table t
  add constraint pk_t primary key(x);

2.2源端:
extract
ggsci>>edit params e01
extract e01
setenv (ORACLE_SID=bocnet)
userid ggadmin,password ggadmin
exttrail ./dirdat/sa
table ggtest.t;

ggsci>>add extract e01,tranlog,begin now,threads 1
ggsci>>add exttrail ./dirdat/sa,extract e01,megabytes 10
ggsci>>start e01

ggsci>>add extract ep01,exttrailsource ./dirdat/sa,begin now
ggsci>>edit params ep01
EXTRACT ep01
PASSTHRU
RMTHOST rhel5, MGRPORT 7809
RMTTRAIL ./dirdat/ta
TABLE ggtest.t;
ggsci>>add rmttrail ./dirdat/ta,extract ep01,megabytes 10
ggsci>>start ep01

2.3目标端:replicate
ggsci>>dblogin userid ggadmin,password ggadmin
ggsci>>add checkpointtable ggtest.checkpoint

ggsci>>edit params r01
REPLICAT r01
SETENV (ORACLE_SID=ora10)
USERID ggadmin, PASSWORD ggadmin
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/r01.dsc, PURGE
MAP ggtest.t, TARGET ggtest.t;

ggsci>>add replicat R01, exttrail ./dirdat/ta checkpointtable ggtest.checkpoint
ggsci>>start replicat r01


2.4数据复制
源端:
insert into t
select rownum,rownum from dual connect by level<10;
commit;

目标端:
select * from t;


3,问题排查
logdump>>open file

send extract ep01,report
view report ep01

No route to host
从A ping B可以,但telnet B 7809报错:No route to host
从B telnet A 7809 可以。怀疑B上防火墙设置:
B:/etc/rc.d/init.d/iptables stop
OK!

彻底解决:
允许某台机器的所有访问
iptables -I INPUT -s 22.11.97.95 -j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart


---
附录:
在iptables中,如何指定某个IP地址可以访问本机IP的所有端口,同样本机IP的所有端口都访问某个IP地址?
iptabels -A INPUT -p tcp -s 192.168.0.1 --dport 1024/65535-j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024/65535 -d 192.168.0.1 -j ACCEPT

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

下一篇: 数据复制_Stream
请登录后发表评论 登录
全部评论

注册时间:2011-05-26

  • 博文量
    211
  • 访问量
    810129