1.分别在windows2008、linux平台部署oracle 11.2.0.4
2.分别在windows2008、linux平台部署gg。
2.1 windows平台:
gg的安装目录位
C:\ora11g\product\ogg_src 需设置环境变量 ORACLE_HOME and ORACLE_SID 2.2 linux平台:
gg的安装目录位
[oracle@Oracle02 ~]$ ls -l /u01/app/oracle/product/
drwxrwxr-x. 3 oracle oinstall 4096 12月 13 10:21 11.2.0
drwxr-xr-x. 26 oracle oinstall 4096 12月 13 11:24 ogg_src
[oracle@Oracle02 ~]$ 需设置环境变量 export LD_LIBRARY_PATH=$ORACLE_HOME/lib
需要安装readline-devel-6.0-4.el6.x86_64.rpm(在linux平台 ) 3.启动ogg的mgr管理进程,source和target端做相同的操作
3.1 启动wind的ogg的mgr
C:\ora11g\product\ogg_src>ggsci.exe
GGSCI (WIN-GM5PVS1CILH) 1> start mgr
Manager started.
GGSCI (WIN-GM5PVS1CILH) 2> info mgr
Manager is running (IP port WIN-GM5PVS1CILH.7809, Process ID 232). 3.2 启动linux的ogg的mgr
[oracle@Oracle02 product]$ cd ogg_src
[oracle@Oracle02 ogg_src]$ ./ggsci
GGSCI (Oracle02) 1> start mgr
MGR is already running.
GGSCI (Oracle02) 2> info mgr
Manager is running (IP port Oracle02.7809, Process ID 21213).
GGSCI (Oracle02) 3> 4准备工作,在source和target端都配置
4.1配置tnsnames.ora文件
orcl_w =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521))
)
(CONNECT_DATA =
(SID =orcl )
)
)
orcl_L =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521))
)
(CONNECT_DATA =
(SID =orcl )
)
) 4.2 调整数据库
#确定数据库运行在归档模式,,
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 2
Next log sequence to archive 4
Current log sequence 4 #开启数据库附加日志
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
NO
SQL> alter database add supplemental log data; SQL> select supplemental_log_data_min from v$database; SUPPLEME
--------
YES #打开force logging
SQL> alter database force logging;
SQL> 4.3 创建单独用于复制的数据库账号
SQL> create tablespace tbs_ogg;
SQL> create user ggs identified by ggs default tablespace tbs_ogg temporary tablespace temp account unlock;
SQL> grant connect,resource to ggs;
SQL> grant select any table to ggs;
SQL> grant select any dictionary to ggs; SQL> create tablespace tbs_ogg;
SQL> create user ggt identified by ggt default tablespace tbs_ogg temporary tablespace temp account unlock;
SQL> grant connect,resource to ggt;
SQL> grant select any table to ggt;
SQL> grant select any dictionary to ggt;
SQL> 5.准备测试用户和表
SQL> alter user scott identified by scott account unlock;
SQL> grant connect,resource,select_catalog_role to scott;
SQL>
SQL> conn scott/scott
SQL> create table t1 as select * from dba_objects;
SQL> alter table t1 add constraint pk_t1 primary key(object_id); SQL> select count(*) from t1; //source端
COUNT(*)
----------
86045
SQL> SQL> select count(*) from t1; //target端,只复制表定义,不填充数据 COUNT(*)
----------
0
SQL> 6.初始化加载数据
注:在异构数据库平台,这个功能显得非常的有用!而在oracle-oracle的数据复制条件下,oracle推荐使用expdp/impdp工具
6.1 source端添加extract进程
GGSCI (WIN-GM5PVS1CILH) 2> info mgr
Manager is running (IP port WIN-GM5PVS1CILH.7809, Process ID 232). GGSCI (WIN-GM5PVS1CILH) 3> add extract einig1,sourceistable //sourceistable代表直接从表中读取数据
EXTRACT added. GGSCI (WIN-GM5PVS1CILH) 4> edit params einig1 //einig1代表extract initial load group 1缩写 GGSCI (WIN-GM5PVS1CILH) 5> view params einig1 //查看设置后的参数
extract einig1
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ggs,password ggs
rmthost 192.168.0.21,mgrport 7809
rmttask replicat,group rinig1
table scott.t1;
GGSCI (WIN-GM5PVS1CILH) 6> 6.2 target端添加replicat进程
GGSCI (Oracle02) 2> info mgr
Manager is running (IP port Oracle02.7809, Process ID 21213). GGSCI (Oracle02) 3> add replicat rinig1,specialrun //rinig1代表replicat initial load group 1缩写
REPLICAT added. GGSCI (Oracle02) 4> edit params rinig1 //rinig1的名字必须同source端定义的group名字相同 GGSCI (Oracle02) 5> view params rinig1 //查看设置后的参数
replicat rinig1
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
assumetargetdefs
userid ggt,password ggt
discardfile ./dirrpt/rinig1.dsc,purge
map scott.*,target scott.*; GGSCI (Oracle02) 6> 6.3.source端启动extract进程,查看日志输出
GGSCI (WIN-GM5PVS1CILH) 6> start extract einig1 Sending START request to MANAGER ...
EXTRACT EINIG1 starting GGSCI (WIN-GM5PVS1CILH) 7> 6.4 target端验证
SQL> conn scott/scott
Connected.
SQL> select count(*) from t1; COUNT(*)
----------
81000 SQL> 在这期间碰到几个坑,详见《OGG初始化加载数据时遇到的问题汇总》 7.配置wind,linux间的实时同步复制
7.1 在source上配置extract进程,进程的名字不能超过8个字符
GGSCI (WIN-GM5PVS1CILH) 2> edit params eora_t1
GGSCI (WIN-GM5PVS1CILH) 3> view params eora_t1
extract eora_t1
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ggs@orcl_w,password ggs
exttrail dirdat/sp
table scott.*;
GGSCI (WIN-GM5PVS1CILH) 4> 7.2 开启scott用户下所有表的附加日志 (前面已经开始了数据库的附加日志,此处应该可以省略)
GGSCI (WIN-GM5PVS1CILH) 4> dblogin userid ggs, password ggs
Successfully logged into database. GGSCI (WIN-GM5PVS1CILH as ggs@orcl) 5> add trandata scott.* 7.3 添加extract进程,添加trail文件,文件名前缀不能超过2个字符
GGSCI (WIN-GM5PVS1CILH) 1> add extract eora_t1,tranlog,begin now
EXTRACT added. GGSCI (WIN-GM5PVS1CILH) 2> add exttrail dirdat/sp,extract eora_t1,megabytes 100
EXTTRAIL added. GGSCI (WIN-GM5PVS1CILH) 6> start extract eora_t1
Sending START request to MANAGER ...
EXTRACT EORA_T1 starting GGSCI (WIN-GM5PVS1CILH) 7> 7.4:添加pump进程
GGSCI (WIN-GM5PVS1CILH) 2> edit params pora_t1
GGSCI (WIN-GM5PVS1CILH) 3> view params pora_t1
extract pora_t1
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
passthru
rmthost 192.168.0.21,mgrport 7809
rmttrail dirdat/rp
table scott.*;
GGSCI (WIN-GM5PVS1CILH) 4> GGSCI (WIN-GM5PVS1CILH) 1> add extract pora_t1,exttrailsource dirdat/sp //这里sp文件名同前面extract进程参数文件中定义的trail文件名一致
EXTRACT added.
GGSCI (WIN-GM5PVS1CILH) 2> GGSCI (WIN-GM5PVS1CILH) 3> add rmttrail dirdat/rp,extract pora_t1,megabytes 100 //这里rp文件名同前面pora_t1进程参数文件中定义的trail文件名一致
RMTTRAIL added.
GGSCI (WIN-GM5PVS1CILH) 4> GGSCI (WIN-GM5PVS1CILH) 5> start extract pora_t1
Sending START request to MANAGER ...
EXTRACT PORA_T1 starting
GGSCI (WIN-GM5PVS1CILH) 6> info all Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EORA_T1 00:00:00 00:00:07
EXTRACT RUNNING PORA_T1 00:00:00 00:00:00 GGSCI (WIN-GM5PVS1CILH) 7> 7.5 在target端添加检查表,配置replicat进程
GGSCI (Oracle02) 5> edit params ./GLOBALS
checkpointtable ggt.chkpt
GGSCI (Oracle02 as ggt@orcl) 2> add checkpointtable
No checkpoint table specified. Using GLOBALS specification (ggt.chkpt)...
Successfully created checkpoint table ggt.chkpt.
GGSCI (Oracle02 as ggt@orcl) 3> SQL> select tname from tab; TNAME
------------------------------
CHKPT
CHKPT_LOX SQL> #配置replicat进程
GGSCI (Oracle02 as ggt@orcl) 3> edit params rora_t1
GGSCI (Oracle02 as ggt@orcl) 4> view params rora_t1
replicat rora_t1
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ggt,password ggt
handlecollisions
assumetargetdefs
discardfile dirrpt/rora_t1.dsc,purge
map scott.* ,target scott.*; GGSCI (Oracle02 as ggt@orcl) 5> GGSCI (Oracle02 as ggt@orcl) 5> add replicat rora_t1,exttrail dirdat/rp
REPLICAT added.
GGSCI (Oracle02 as ggt@orcl) 6> GGSCI (Oracle02 as ggt@orcl) 6> start replicat rora_t1
Sending START request to MANAGER ...
REPLICAT RORA_T1 starting
GGSCI (Oracle02 as ggt@orcl) 7> GGSCI (Oracle02 as ggt@orcl) 7> info replicat rora_t1
REPLICAT RORA_T1 Last Started 2016-12-13 17:26 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:00 ago)
Process ID 23078
Log Read Checkpoint File dirdat/rp000000002
2016-12-13 17:08:29.494703 RBA 1518
GGSCI (Oracle02 as ggt@orcl) 8> GGSCI (Oracle02 as ggt@orcl) 8> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING RORA_T1 00:00:00 00:00:01
GGSCI (Oracle02 as ggt@orcl) 9> 8.测试
8.1数据同步
C:\Users\Administrator>sqlplus scott/scott
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select max(object_id) from t1; MAX(OBJECT_ID)
--------------
87135 SQL> desc t1;
名称 是否为空? 类型
----------------------------------------- -------- ---------------------------- OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NOT NULL NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30) SQL> insert into t1 (object_id,object_name) values (87136,'ogg_test'); 已创建 1 行。 SQL> commit; 提交完成。 SQL> conn scott/scott@orcl_L
已连接。
SQL> select max(object_id) from t1; MAX(OBJECT_ID)
--------------
87136 SQL> 8.2 删除测试
SQL> conn scott/scott
已连接。
SQL> delete from t1 where object_id > 1000;
已删除85048行。
SQL> commit;
提交完成。
SQL> select max(object_id) from t1; MAX(OBJECT_ID)
--------------
1000 SQL> conn scott/scott@orcl_L
已连接。
SQL> select max(object_id) from t1; MAX(OBJECT_ID)
--------------
87136

异构GoldenGate 12c 单向复制配置的更多相关文章

  1. 异构GoldenGate 12c 单向复制配置(支持DDL复制)

    1.开始配置OGG支持DDL复制(在source端操作) 1.1 赋予权限 SQL> conn /as sysdba 已连接. SQL> grant execute on utl_file ...

  2. 异构GoldenGate 12c 双向复制配置

    1.配置window,添加checkpoint表(本文windows和linux互为source和target) GGSCI (WIN-GM5PVS1CILH) 1> view param ./ ...

  3. GoldenGate配置(一)之单向复制配置

    GoldenGate配置(一)之单向复制配置 环境: Item Source System Target System Platform Red Hat Enterprise Linux Server ...

  4. 搭建GoldenGate的单向复制环境

    配置环境: 建议在相同版本OGG(即Oracle GoldenGate)之间进行复制,我在这里之所以选择不同版本的OGG,便于后续的比较学习. 一.准备OGG的运行用户 在这里,我直接使用oracle ...

  5. Oracle GoldenGate 12c实时捕获SQL Server数据

    在Oracle GoldenGate 12c中,对一些最新的数据库提供了支持,比如SQL Server 2012/2014,当然12c也支持sql server 2008.主要新增特性有: 捕获进程可 ...

  6. GoldenGate 12c + Oracle 12c Multitenant Container databases

    下面为GoldenGate 12c + Oracle 12c Multitenant Container databases例子 1.安装OGG 源 端OGG: C:\Oracle\product\1 ...

  7. GoldenGate 12c 新特性 Credential Store and USERIDALIAS

    GoldenGate 12C的Credential Store and USERIDALIAS新特性有点类似存储钱夹,提高了配置的易用性和安全性. --生成credentialstore文件 GGSC ...

  8. 【OGG】OGG的单向复制配置-支持DDL(二)

    [OGG]OGG的单向复制配置-支持DDL(二) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的 ...

  9. windows Sever 2012下Oracle 12c安装配置方法图文教程

    windows Sever 2012下Oracle 12c安装配置方法图文教程 Oracle 12c安装配置方法图文教程,具体内容如下 1.我们开启虚拟机 2.Windows Sever 2012启动 ...

随机推荐

  1. 配置Server.xml

    Service下面的Connector, Engine, Executor. 组件的目录结构,配置文件,配置节点.

  2. fedora26 编译内核出现Can't use 'defined(@array)' 错误

    cd /kernel/ vim timeconst.pl 把373行中的if (!defined(@val)) { 改为if (!@val) {

  3. datepicker clone 控件错误

    删除id,并删除hasDatepicker //+ -  function changeRows(sender,desc){ var tr = $(sender).closest("tr&q ...

  4. Android上基于libgdx的游戏开发资料

    本来之前想边学边写一个有关libgdx的游戏开发历程的,但是由于自己的懒惰和客观上的各种事情,一直没有搞下去.最近发现了一个大牛写的一本书<Beginning Android Games, 2n ...

  5. mac osx voice over的使用

    mac下的filezilla是一个很奇葩的应用,奇葩在哪?有一次我不知道怎么操作的,把filezilla搬到到了窗体顶部,结果被mac的菜单栏挡住了标题栏,然后再也无法移动窗体了,以下是我为了移动它做 ...

  6. Oracle统计每条数据的大小

    怎么查询一条记录到底占了多少空间呢,随便用一个表举例(如上图),就着解决眼前问题的原则(oracle),网上简单查了查,发现生效了,就没深入了解了,包括其它数据库怎么解决,都没做研究.Oracle下, ...

  7. Java 多线程编程知识详解

    Java 给多线程编程提供了内置的支持.一个多线程程序包含两个或多个能并发运行的部分.程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径. 多线程是多任务的一种特别的形式,但多线程使用 ...

  8. vue中使用mockjs

    第一步安装mockjs:npm i mockjs -S 在src目录下新建mock文件夹,文件夹添加test.js test.js内容如下: import Mock from 'mockjs'; co ...

  9. eclipse+pydev 怎么导入已有的python项目

    转自:https://zhidao.baidu.com/question/2117277007790501747.html 已有的python项目导入eclipse的步骤: 1.首先,打开Eclips ...

  10. Mybatis数据库连接报错:对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾

    Mybatis数据库连接报错:对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾 ============================== 蕃薯耀 ...