Oracle ---Goldengate单项复制步骤详解

  今天刚刚接触了,oracle goldengate (ogg)这个数据同步工具,暂时不知道它到底有多牛逼,只是很稀奇,于是趁热打铁记录下来,下面配置的最简单的一种单项复制模式。至于其他复杂的模式以后慢慢研究。


--数据库准备:



将源数据库改为归档模式;
shutdown immediate;
startup mount;
alter database archivelog;

alter database open;

archive log list;



--开启强制日志模式

alter database force logging;--强制日志
alter database add supplemental log data;--追加日志

Oracle ---Goldengate单项复制步骤详解_第1张图片


--建立ogg用户

create user ogg identified by ogg;
grant connect,resource,dba to ogg;
grant create table,create sequence to ogg;(非常重要!)

Oracle ---Goldengate单项复制步骤详解_第2张图片


--进入ogg控制台
-- ./ggsci

--create subdirs ,让ogg创建其需要用到的目录

--手工在ogg目录下创建discard文件夹,mkdir  discard

Oracle ---Goldengate单项复制步骤详解_第3张图片

--ogg安装
--为新创建的ogg用户执行配置脚本

在ogg的安装目录下登陆sqlplus,使用sys登陆sqlplus,然后执行如下配置
[oracle@local ~]$ sqlplus /nolog
SQL> conn / as sysdba
SQL> @marker_setup.sql
SQL> @ddl_setup.sql;
SQL> @role_setup.sql;
SQL> grant GGS_GGSUSER_ROLE to ogg;
SQL> @ddl_enable.sql;
进入ogg控制台,测试用户是否创建成功
GGSCI (local) 1> dblogin userid ogg
Password: ogg
Successfully logged into database.
通过上述步骤,ogg就安装成功了。

--报错:触发器“SYS.GGS_DDL_TRIGGER_BEFORE无效且未通过验证”
--解决方法:
1.ddl_disable.sql,ddl_remove.sql,marker_remove.sql删除ddl配置,
2.GRANT CREATE TABLE,CREATE SEQUENCE TO OGG;  
3.再 DDL重新配置,

Oracle ---Goldengate单项复制步骤详解_第4张图片

--ddl配置结束后,验证ogg用户是否能成功登陆Oracle ---Goldengate单项复制步骤详解_第5张图片

---配置进程文件:
首先在oracle中查询select userenv( 'language') from dual;

Oracle ---Goldengate单项复制步骤详解_第6张图片


--manager 主进程 (mgr.prm)
PORT 7809
DYNAMICPORTLIST 7840-7939
--AUTOSTART ER *
--AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS   d:\ogg\dirdat\*, usecheckpoints, minkeepdays 3
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45


--extract 抽取进程    (ext102.prm):
extract ext102
           
SETENV(ORACLE_HOME="D:\app\Administrator\product\11.2.0\dbhome_1") 
SETENV(ORACLE_SID="tmistest")
SETENV(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" )


userid ogg,password ogg
exttrail D:\ogg\dirdat\e1
tranlogoptions excludeuser ogg  
dynamicresolution                        
gettruncates
TABLE  zhujia.test;


--pump   投递进程    p102.prm:

extract p102

SETENV(ORACLE_HOME="D:\app\Administrator\product\11.2.0\dbhome_1") 
SETENV(ORACLE_SID="tmistest")
SETENV(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" )

userid ogg , password ogg
rmthost 172.18.17.102 , mgrport 7809
rmttrail D:\ogg\dirdat\eg
PASSTHRU
gettruncates

table zhujia.test;


--replicat 复制进程   rep002.prm
replicat rep002
ASSUMETARGETDEFS

SETENV(ORACLE_HOME="D:\app\Administrator\product\11.2.0\dbhome_1") 
SETENV(ORACLE_SID="tmistest")
SETENV(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" )

userid ogg,password ogg
reperror (default,discard,abend)
discardfile d:\ogg\discard\repcz.dsc ,append,megabytes 200
gettruncates
HANDLECOLLISIONS

map zhujia.test, target zhujib.test;


--以上四个进程文件配置好后,放入文件夹 D:\ogg\dirprm


--然后登入ogg控制台
--ogg控制台里添加进程  注意位置和命名不要写错

Oracle ---Goldengate单项复制步骤详解_第7张图片


dblogin userid ogg password ogg

add trandata zhujia.test;

--edit param mgr

info all(查看当前mgr状态)
start manager(启动manager,启动完后可以用info all再次查看状态)


--添加一个ogg extract进程,用于抽取源服务器数据
ADD EXTRACT ext102, TRANLOG , BEGIN now
ADD EXTTRAIL d:\ogg\dirdat\e1, EXTRACT ext102
--edit params  ext102 (修改 ext102的配置参数)

--添加投递进程 p102
ADD EXTRACT p102, EXTTRAILSOURCE d:\ogg\dirdat\e1, BEGIN now
ADD RMTTRAIL d:\ogg\dirdat\eg, EXTRACT p102

--添加复制进程rep002:
dblogin userid ogg passsword ogg
edit params ./GLOBAL


add checkpointtable ogg.ckpt_table      
ADD replicat rep002 EXTTRAIL d:/ogg/dirdat/eg, checkpointtable ogg.ckpt_table
--edit param rep2
ADD REPLICAT rep002, EXTTRAIL d:\ogg\dirdat\eg, BEGIN now



你可能感兴趣的:(DB之路——oracle)