Linux安装和配置ogg单向数据复制支持DDL.docx
《Linux安装和配置ogg单向数据复制支持DDL.docx》由会员分享,可在线阅读,更多相关《Linux安装和配置ogg单向数据复制支持DDL.docx(23页珍藏版)》请在冰豆网上搜索。
Linux安装和配置ogg单向数据复制支持DDL
本实验环境:
源端redhat5.4Oracle10.2.0.4目标端redhat6.3Oracle11.2.0.3
一、软件安装
1.配置环境
以Oracle用户登录,设置环境变量
修改.bash_profile,增加如下内容:
exportLD_LIBRARY_PATH=/goldengate:
$ORACLE_HOME/lib:
$LD_LIBRARY_PATH
保存退出
/goldengate为ogg安装目录
运行source~/.bash_profile使环境变量生效
以root用户在根目录下创建goldengate目录,此目录名可自定义:
mkdir/goldengate
chownoracle:
oinstall–R/goldengate
2.上传并解压安装文件
不同的操作系统平台和oracle版本需要使用不同版本的ogg软件。
使用oracle用户通过ftp上传ogg软件并解压缩至/goldengate安装目录
tarzxvf*.gz或者gunzip*.gz或者tarxvf*.tar或者unzip*.zip
3.创建子目录
在/goldengate,ogg安装目录下运行GGS命令行控制界面:
cd/goldengate
./ggsci
在GGS命令行界面下创建子目录:
createsubdirs
以上步骤在源端和目标端都要进行操作。
如果ggsci无启动,说明环境就是没有配置好或对应的版本不对。
二、源端配置
1.数据库开启归档
确认数据库是否处于归档模式:
Selectlog_modefromv$database;
如果不是,开启归档模式:
指定归档目录altersystemsetlog_archive_dest_1="location=+ASM_DATA"scope=both;
shutdownimmediate;
startupmount;
alterdatabasearchivelog;
alterdatabaseopen;
2.开启数据库的附加日志
通过以下sql语句检查数据库附加日志的打开状况:
SelectSUPPLEMENTAL_LOG_DATA_MINfromv$database;
返回值yes为打开。
如果没有开启,请执行如下命令打开
alterdatabaseaddsupplementallogdata;
altersystemswitchlogfile;
3.开启数据库强制日志模式
通过以下sql语句检查数据库是否开启强制日志模式:
Selectforce_loggingfromv$database;
返回值yes为打开。
如果没有开启,请执行如下命令打开
alterdatabaseforcelogging;
4.配置管理进程
在/goldengate目录下运行GGS命令行控制界面:
cd/goldengate
./ggsci
确认参数文件中的端口没有被占用
netstat–a|grep7809
编辑参数,在ggsci下执行
editparamsmgr
PORT7809
AUTOSTARTER*
AUTORESTARTEXTRACT*,RETRIES100,WAITMINUTES2
PURGEOLDEXTRACTS./dirdat/*,USECHECKPOINTS,MINKEEPDAYS3
LAGREPORTHOURS1
LAGINFOMINUTES30
LAGCRITICALMINUTES45
SYSLOGERROR,WARN
各参数解释
5.新建goldengate用户、表空间及赋予权限
SQL>createtablespacetbs_oggdatafile'/u01/app/oracle/oradata/mydb/tbs_ogg.dbf'size100Mautoextendon;
Tablespacecreated.
SQL>createusergoldengateidentifiedbygoldengatedefaulttablespacetbs_ogg;
Usercreated.
SQL>grantdba,connect,resourcetogoldengate;
Grantsucceeded.
6.增加同步表的附加日志
本实验使用ogg同步SCOTT用户下的所有表
如果SCOTT用户被锁定使用以下命令解锁
alteruserscottaccountunlock;
alteruserscottidentifiedby"123456";
SCOTT用户下有四张表
SQL>selecttable_namefromuser_tables;
TABLE_NAME
------------------------------
DEPT
EMP
BONUS
SALGRADE
GGSCI(rhel5)1>dbloginuseridgoldengatepasswordgoldengate
Successfullyloggedintodatabase.
删除原有同步表的附加日志,如果以后配置过ogg的执行
GGSCI(rhel5)2>deletetrandatascott.*
LoggingofsupplementalredologdataisalreadydisabledfortableSCOTT.BONUS.
LoggingofsupplementalredologdataisalreadydisabledfortableSCOTT.DEPT.
LoggingofsupplementalredologdataisalreadydisabledfortableSCOTT.EMP.
LoggingofsupplementalredologdataisalreadydisabledfortableSCOTT.SALGRADE.
增加同步表的附加日志
GGSCI(rhel5)3>addtrandatascott.*
2016-06-1911:
49:
35WARNINGOGG-00869NouniquekeyisdefinedfortableBONUS.Allviablecolumnswillbeusedtorepresentthekey,butmaynotguaranteeuniqueness.KEYCOLSmaybeusedtodefinethekey.
LoggingofsupplementalredodataenabledfortableSCOTT.BONUS.
LoggingofsupplementalredodataenabledfortableSCOTT.DEPT.
LoggingofsupplementalredodataenabledfortableSCOTT.EMP.
2016-06-1911:
49:
35WARNINGOGG-00869NouniquekeyisdefinedfortableSALGRADE.Allviablecolumnswillbeusedtorepresentthekey,butmaynotguaranteeuniqueness.KEYCOLSmaybeusedtodefinethekey.
LoggingofsupplementalredodataenabledfortableSCOTT.SALGRADE.
WARNINGOGG-00869NouniquekeyisdefinedfortableBONUS.Allviablecolumnswillbeusedtorepresentthekey,butmaynotguaranteeuniqueness.KEYCOLSmaybeusedtodefinethekey.
可以使用在参数文件中加入KEYCOLS手动指定主键,语法为tabletable_name,KEYCOLS(col_name[,col_name,…]);也可以为表添加主键本实验不做添加,没有主键可能会使ogg会造成数据不同步。
7.抽取进程配置文件
增加配置文件exttab.prm,加入如下内容后保存,也可以在本地创建exttab.prm然后加入内容后通过FTP工具上传到OGG安装目录的dirprm目录下,注意根据实际情况标红部分:
GGSCI>editparamsexttab
exttab.prm内容
EXTRACTEXTTAB
DYNAMICRESOLUTION
SETENV(NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
SETENV(ORACLE_HOME="/u01/app/oracle/product/10.2.0/db1")
SETENV(ORACLE_SID="mydb")
USERIDgoldengate,PASSWORDgoldengate
DISCARDFILE./dirrpt/exttab.dsc,APPEND,MEGABYTES1024
TRANLOGOPTIONSASMUSERSYS@ASM,ASMPASSWORD123456--访问ASM读取日志
EXTTRAIL./dirdat/tl
tablescott.*
各参数解释:
如果主机上存在多个数据库实例,需要设置:
Setenv(ORACLE_SID=sid_name)
NLS_LANG需要设置和数据库语言环境一至
(select*fromnls_database_parameters查询当前数据库字符集)
(如果需要排除某些表,可以添加TABLEEXCLUDETEST.TEST1,必须添加在TABLETEST.*前面)
如果RedoLog存储在ASM中,设置CatpureASM连接方式如下:
Oracle10.2.0.5或11.2.0.2之前版本:
TRANLOGOPTIONSASMUSERsys@asminst,asmpasswordoracle
直接访问ASM的方式需要配置ASM的监听,在tnsname.ora目录下添加
ASM=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.120)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=+ASM)
(INSTANCE_NAME=+ASM)
(SERVER=DEDICATED)
(UR=A)
)
)
Oracle10.2.0.5、11.2.0.2或之以后版本,GoldenGate为11g或以后版本:
TRANLOGOPTIONSDBLOGREADER
如果在AIX或HPUX平台数据库的redolog使用的是RAW,则可能需要设置参数:
TRANLOGOPTIONSRAWDEVICEOFFSET,设置此参数:
TRANLOGOPTIONSRAWDEVICEOFFSET0
--仅限于AIX平台下使用裸设备时使用,其它平台或非裸设备均不需要
--需要在Aix操作系统中去查有没有偏移量,如果有偏移量的话,该参数不需要进行设置,goldengate的默认就可以了;
--如果没有偏移量,则需要设置为0;
8.传输进程配置文件
增加给目标库传输进程配置文件dp_tab.prm,加入如下内容后保存,也可以在本地创建dp_tab.prm然后加入内容后通过FTP工具上传到OGG安装目录的dirprm目录下,注意根据实际情况替换标红部分:
GGSCI>editparamsdp_tab
dp_tab.prm内容:
EXTRACTDP_TAB
PASSTHRU
RMTHOST192.168.56.201,mgrport7809,compress
RMTTRAIL./dirdat/tl
tablescott.*;
9.配置OGG抽取进程和传输进程
增加抽取进程,只有源端数据库为RAC情况才需要“,threadsn”
GGSCI>addextractexttab,tranlog,beginnow[,threadsn]
建立抽取进程和队列文件关联关系
GGSCI>addexttrail./dirdat/tl,extractexttab,megabytes200
增加传输进程组
GGSCI>addextractdp_tab,exttrailsource./dirdat/tl
建立传输进程和目标端队列文件关联关系
GGSCI>addrmttrail./dirdat/tl,extractdp_tab,megabytes200
启动抽取进程和传输进程
GGSCI>startexttab
GGSCI>startdp_tab
GGSCI>infoall
注:
启动抽取进程和传输进程前需要启动管理进程
三、目标端操作
1.创建goldengate用户、表空间及赋予权限
SQL>createtablespacetab_oggdatafile'/u01/app/oracle/oradata/mydb/tab_ogg.dbf'size100Mautoextendon;
Tablespacecreated.
SQL>createusergoldengateidentifiedbygoldengatedefaulttablespacetab_ogg;
Usercreated.
SQL>grantdba,connect,resourcetogoldengate;
Grantsucceeded.
本实验要把数据同步到一个ogg用户下,需要先创建该用户,本步非必需。
SQL>createuseroggidentifiedby123456defaulttablespaceusers;
Usercreated.
SQL>grantresource,connect,dbatoogg;
Grantsucceeded.
2.GLOBALS配置
在/goldengate,ogg安装目录下运行GGS命令行控制界面:
cd/goldengate
./ggsci
在ggsci下执行
editparams./GLOBALS
CHECKPOINTTABLEgoldengate.checkpoint;
退出ggsci
3.创建checkpoint表
在/goldengate,ogg安装目录下运行GGS命令行控制界面:
cd/goldengate
./ggsci
在ggsci下执行
dbloginuseridgoldengate,passwordgoldengate
addcheckpointtable
4.配置管理进程
在/goldengate,ogg安装目录下运行GGS命令行控制界面:
cd/goldengate
./ggsci
确认参数文件中的端口没有被占用
netstat–a|grep7809
编辑参数,在ggsci下执行
editparamsmgr
PORT7809
AUTOSTARTER*
AUTORESTARTEXTRACT*,RETRIES5,WAITMINUTES3
PURGEOLDEXTRACTS./dirdat/*,usecheckpoints,minkeepdays3
LAGREPORTHOURS1
LAGINFOMINUTES30
LAGCRITICALMINUTES45
5.启动管理进程
startmgr
到/goldengate/dirdat目录下查看有没有队列文件tl*传过来
6.复制进程配置文件
增加到目标库复制进程的配置文件reptab.prm,加入如下内容后保存,也可以在本地创建reptab.prm然后加入内容后通过FTP工具上传到OGG安装目录的dirprm目录下,注意根据实际情况替换标红部分:
GGSCI>editparamsreptab
reptab.prm内容(其中环境变量NLS_LANG与源端保持一致):
replicatreptab
SETENV(NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
SETENV(ORACLE_SID="mydb")
useridgoldengate,passwordgoldengate
reperrordefault,discard
discardfile/goldengate/dirrpt/reptab.dsc,append,megabytes1024
dynamicresolution
ASSUMETARGETDEFS
mapscott.*,targetogg.*;
IntheReplicatparamPleasetryASSUMETARGETDEFS,ifsourceandtargethavesametablestructure..
ifboththestructuresaredifferent,generatethesourcedefinitionanduseSOURCEDEFSinReplicateParam.
7.配置OGG复制进程
./ggsci
增加到目标库的复制进程
GGSCI>addreplicatreptab,exttrail./dirdat/mo,checkpointtableogg.checkpoint
配完后暂时不要启动进程
四、数据初始化
OGG进程正式运行前必须确保源端和目标端的数据是一致的,所以必须进行数据初始化。
以下数据初始化采用数据泵的方式执行,在数据初始化前,必须确保源端抽取进程为运行状态,目标端复制进程为停止状态(源端传输进程无要求)。
1.源端导出数据
以下命令注意根据实际情况替换标红部分:
使用oracle用户登录源端系统,进入OGG安装目录/goldengate下,创建导出数据文件目录,如:
expdp_data,
$mkdirexpdp_data
$sqlplus/nolog
SQL>conn/assysdba
SQL>select*fromdba_directories;
创建数据导出目录和赋权
SQL>createdirectoryogg_dump_diras'/goldengate/expdp_data';
SQL>grantread,writeondirectoryogg_dump_dirtoscott;
查询当前数据库的SCN号,并记录下来,下一步要用到
SQL>selectcurrent_scnfromv$database;
CURRENT_SCN
-----------
631836
SQL>exit
导出数据文件
expdpscott/tigerdirectory=ogg_dump_dirdumpfile=scott_20151230.dmptables=EMP,DEPT,BONUS,SALGRADElogfile=scott.logflashback_scn=631836
如果tables参数过长,也可以使用parfile=scott_tab.par
scott_tab.par文件内容如下
tables=EMP,DEPT,BONUS,SALGRADE
将生成的DMP文件复制到目标端的/goldengate/impdp_data(如果不存在,需先创建此目录)目录下,也可通过FTP工具先下载到本地再上传到目标端相应目录
scpscott_20151230.dmporacle@192.168.56.201:
/goldengate/impdp_data
2.目标端导入数据
以下命令注意根据实际情况替换标红部分:
使用oracle用户登录目标端系统,进入OGG安装目录下,创建导入数据文件目录,如:
/impdp_data,
[oracle@jlptgwdbgoldengate]$mkdirimpdp_data
[oracle@jlptgwdbgoldengate]$sqlplus/nolog
SQL>conn/assysdba
创建数据导入目录和赋权
SQL>select*fromdba_directories;
SQL>createdirectoryogg_dump_diras'/goldengate/impdp_data';
SQL>grantread,writeondirectoryogg_dump_dirtoogg;
如果导出数据使用的用户名和表空间与目标端不同,请在导入impdp命令中加入REMAP_SCHEMA参数和REMAP_TABLESPACE参数
$impdpogg/123456directory=ogg_dump_dirdumpfile=scott_20151230.dmplogfile=table.logtable_exists_action=replaceremap_schema=scott:
oggremap_tablespace=users:
tbs1
3.启动复制进程
./ggsci
此处SCN号为导出数据时查询的SCN号
GGSCI>startreptab,aftercsn631836
ogg配置完成,可以进行测试
五、添加DDL复制支持
1.源端配置
进入goldengate安装目录,以sysdba角色进入sqlplus
[oracle@primarygoldengate]$sqlplus/assysdba
关闭数据库回收站(11G以后可以不用关)
SQL>altersystemsetrecyclebin=offscope=both;
清空回收站
SQL>purgerecyclebin
运行goldengateDDL支持配置脚本,顺序必须一致
SQL>@marker_setup.sql
SQL>@ddl_setup.sql
SQL>@role_setup.sql
SQL>@marker_setup.sql
Markersetupscript
YouwillbepromptedforthenameofaschemafortheGoldenGatedatab