oracle goldengate搭建配置 |
您所在的位置:网站首页 › 配置nls_lang › oracle goldengate搭建配置 |
ogg配置搭建之前需要在数据库中将enable_goldengate_replication参数打开SYS@cphl> alter system set enable_goldengate_replication = true scope=both;goldgate错误日志地址:$GGS_HOME/ggserr.log 1、解压安装包p23237964_1121033_Linux-x86-64.zip unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip Archive: ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar ogg的tar包 inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf ogg自述文件 inflating: Oracle GoldenGate 11.2.1.0.1 README.txt inflating: Oracle GoldenGate 11.2.1.0.1 README.doc 解TAR,提醒解tar之后会产生N多文件最好提前放在一个文件夹中tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar2.创建goldgate系统用户或者直接在oracle系统用户增加环境变量export GGS_HOME=/u01/app export TMP=/tmpexport TMPDIR=$TMPexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1export ORACLE_SID=o1export ORACLE_ADMIN=$ORACLE_BASE/adminexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$GGS_HOMEexport ORACLE_TERM=xtermexport PATH=/usr/sbin:/usr/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$GGS_HOME Linux系统下oracle11g增加的环境变量为:export GGS_HOME=/u01/appexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$GGS_HOMEexport PATH=/usr/sbin:/usr/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$GGS_HOMELinux系统下oracle10g增加的环境变量为:export GGS_HOME=/home/oracle/oggexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport PATH=/usr/sbin:/usr/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$GGS_HOME刷新环境变量. .profile检查环境变量是否正确echo $GGS_HOMEecho $LD_LIBRARY_PATHecho $PATH3、数据库准备(源端、目标端)开启归档模式 打开数据库附加日志select supplemental_log_data_min from v$database;alter database add supplemental log data; 启动附加日志创建goldgate专属数据库用户ogg此用户需要拥有dba权限(源端、目标端都需要有ogg用户)创建goldgate源端用户sender目的端接受用户receiver sender用户receiver用户只需要connect、resource权限每个用户都需要有自己特有的表空间源端和目标端都要创建 ogg 用户源端创建 sender 用户目标端创建 receiver 用户思路:source源 --主机名A --数据库1---用户sendertarget源 --主机名B --数据库2 --用户receiver目的把用户sender下表t1同步复制到receiver用户下表t1下4、配置ogg工作目录(源端、目标端)GGSCI (A) 2> ggsci 启动 OGG 命令行GGSCI (A) 2> create subdirs 在安装目录下创建 OGG 工作目录 Reports (.rpt) /u01/app/ogg/dirrpt OGG 报告Parameters (.prm) /u01/app/ogg/dirprm 存放参数文件Stdout (.out) /u01/app/ogg/diroutReplicat Checkpoints (.cpr) /u01/app/ogg/dirchk 检查点即可以放在表中也可以放在文件中Extract Checkpoints (.cpe) /u01/app/ogg/dirchk 提取进程检查点Process Status (.pcs) /u01/app/ogg/dirpcs 进程状态SQL Scripts (.sql) /u01/app/ogg/dirsql 存放 SQL 脚本Database Definitions (.def) /u01/app/ogg/dirdef 连接是什么类型数据库 oracle mysql db2 sqlserver 5、启动 manager 进程(源端、目标端)Manager 进程:这是 GG 全局主进程,它是 GG 守护进程统筹全局,它可以启动、监控、终止 Golden Gate 的其它进程,收集错误报告及事件,分配数据存储空间,发布阀值告警等,在源端和目标端有且只有一个 Manager 进程。检查所有进程运行状态 info all 查看当前ogg进程状态 编辑mgr 进程参数文件 语法:edit params GGSCI (A) 2> edit params mgrport 7809start mgr 启动 mgr 进程6、配置源端 Extract 复制进程(源端) Add trandata schema.table_name (如 hdcs.t) Add trandata schemas.* (1)添加抓取进程 ext1语法:add extract ,tranlog,GGSCI (A) 3> add extract ext1,tranlog,begin nowinfo all(2)指定队列文件路径Extract 进程把日志数据抓取出来后(没有存放在本地)而是直接把信息投递到目标端生成队列文件add rmttrail /u01/app/dirdat/sd,extract ext1rmttrail:表示传输进程将日志传输到目标端后放置的目录和队列文件名(3)修改 extract 进程参数文件(按照什么方式工作)并启动语法:edit params 添加如下内容并保存extract ext1setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")setenv (ORACLE_SID="1")userid ogg,password oraclegettruncatesrmthost B,mgrport 7809rmttrail /u01/app/ogg/dirdat/sdtable sender.t1; 注意:标点符号要用英文字体,必须以分号结尾。 start extract ext1 启动 ext1 进程,stop extract ext1 停止进程 info all(RUNNING即可)----此时可以再目标端相应路径下查看到trail文件7、配置目标端 replicat 进程(1)在目标端数据库创建 checkpoint 表GGSCI (B) 8> edit params globals 添加如下 2 条,说明 ogg 用户为 checkpoint 专属用户ggschema oggcheckpointtable ogg.checkpointGGSCI (B) 10> dblogin userid ogg,password oracleSuccessfully logged into database. 通过 GGSCI 顺利登陆数据库,创建保存 checkpoint 信息的表17GGSCI (B) 11> add checkpointtable ogg.checkponitSuccessfully created checkpoint table ogg.checkponit.说明:checkpoint 表为防止在网络断开、进程终止时,从哪个位置来恢复应用。--此时可以在目标端ogg数据库用户下查看到检查点的表(2)在目标端创建 replicat 进程GGSCI (B) 2> add replicat rep1,exttrail /u01/app/ogg/dirdat/sd,checkpointtable ogg.checkpoint(3)修改 replicat 进程参数文件(按照什么方式工作)并启动GGSCI (B) 4> edit params rep1replicat rep1--handlecollisionsassumetargetdefssetenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")setenv (ORACLE_SID="2")userid ogg,password oraclemap sender.t1,target receiver.t1;现在我们的 rep1 进程配置完毕,由于没有设置 DDL 复制,我们要在 receiver 用户下创建 t1 表启动 start replicat rep1 进程---此时即可在目标端查询到来着源端的复制数据
配置自动删除队列 1) 进入安装目录执行./ggsci;2) 执行edit param mgr编辑管理进程参数,加入或修改以下行purgeoldextracts //dirdat/*, usecheckpoint, minkeepdays 7其中,第一个参数为队列位置,*可匹配备份中心所有队列文件;第二个参数表示是首先要保证满足检查点需要,不能删除未处理队列;第三个参数表示最小保留多少天,后面的数字为天数。例如,如果希望只保留队列/ggs/dirdat/xm文件3天,可以配置如下:purgeoldextracts /ggs/dirdat/xm, usecheckpoint, minkeepdays 3 3) 停止MGR进程,修改好参数后重启该进程GGSCI > stop mgr输入y确认停止GGSCI > start mgr注:临时停止mgr进程并不影响数据复制。 配置启动MGR时自动启动Extract和Replicat进程 1) 进入安装目录执行./ggsci;2) 执行edit param mgr编辑管理进程参数,加入以下行AUTOSTART ER *3) 停止MGR进程,修改好参数后重启该进程GGSCI > stop mgrGGSCI > start mgr注意:一般建议不用自动启动,而是手工启动,便于观察状态验证启动是否成功,同时也便于手工修改参数。
设置goldengate支持ddl 1.在源端赋予ogg用户相应的权限,修改全局配置文件添加ggschema参数 SQL> grant execute on utl_file to ogg; Grant succeededGLOBALS参数文件添加ggschema oggGGSCI (qht115) 1> edit param ./GLOBALSCHECKPOINTTABLE ogg.ggschkptggschema ogg2.关闭recyclebin(目标和源都关闭)SQL> alter system set recyclebin=off scope=spfile;(10g可以both修改,11g必须spfile修改重启生效) 3.运行所需要的脚本SQL> @marker_setup.sql @marker_setup --该脚本用于创建DDL的marker表GGS_MARKER,用于存储DDL信息,该表只进行insert操作 SQL> @ddl_setup.sql @ddl_setup --该脚本创建了进行DDL复制抽取和复制所需的对象 SQL> @role_setup.sql @role_setup --创建DDL复制所需的对象 SQL> grant ggs_ggsuser_role to ogg; SQL> @ddl_enable.sql@ddl_enable -- 启用DDL复制,实质上是创建触发器,用以想MARKER和HISTORY表插入DDL信息 --脚本地址在GGS_HOME4.源端修改extract进程的params文件,添加"ddl include all"参数,重启extract进程5.修改目标端的replicate进程添加以下内容: DDL INCLUDE ALL DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5重启进程 --此时ogg架构支持ddl操作 ******************************************************************************************************************************************** 搭建实例 ******************************************************************************************************************************************** ogg配置搭建之前需要在数据库中将enable_goldengate_replication参数打开SYS@cphl> alter system set enable_goldengate_replication = true scope=both;goldgate错误日志地址:$GGS_HOME/ggserr.log 1、解压安装包p23237964_1121033_Linux-x86-64.zip unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip Archive: ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar ogg的tar包 inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf ogg自述文件 inflating: Oracle GoldenGate 11.2.1.0.1 README.txt inflating: Oracle GoldenGate 11.2.1.0.1 README.doc 解TAR,提醒解tar之后会产生N多文件最好提前放在一个文件夹中tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar2.创建goldgate系统用户或者直接在oracle系统用户增加环境变量export GGS_HOME=/u01/app export TMP=/tmpexport TMPDIR=$TMPexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1export ORACLE_SID=cpqdexport ORACLE_ADMIN=$ORACLE_BASE/adminexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$GGS_HOMEexport ORACLE_TERM=xtermexport PATH=/usr/sbin:/usr/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$GGS_HOME Linux系统下oracle11g增加的环境变量为:export GGS_HOME=/u01/appexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$GGS_HOMEexport PATH=/usr/sbin:/usr/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$GGS_HOME Linux系统下oracle10g增加的环境变量为:export GGS_HOME=/goldengateexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport PATH=/usr/sbin:/usr/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$GGS_HOME刷新环境变量. .profile检查环境变量是否正确echo $GGS_HOMEecho $LD_LIBRARY_PATHecho $PATH3、数据库准备(源端、目标端)开启归档模式 打开数据库附加日志select supplemental_log_data_min from v$database;alter database add supplemental log data; 启动附加日志创建goldgate专属数据库用户ogg此用户需要拥有dba权限(源端、目标端都需要有ogg用户)创建goldgate源端用户sender目的端接受用户receiver sender用户receiver用户只需要connect、resource权限每个用户都需要有自己特有的表空间源端和目标端都要创建 ogg 用户源端创建 cp22 用户目标端创建 receiver 用户思路:source源 --主机名A --数据库1---用户cp22target源 --主机名B --数据库2 --用户receiver目的把用户cp22下所有表同步复制到receiver用户下下4、配置ogg工作目录(源端、目标端)GGSCI (A) 2> ggsci 启动 OGG 命令行GGSCI (A) 2> create subdirs 在安装目录下创建 OGG 工作目录 Reports (.rpt) /u01/app/ogg/dirrpt OGG 报告Parameters (.prm) /u01/app/ogg/dirprm 存放参数文件Stdout (.out) /u01/app/ogg/diroutReplicat Checkpoints (.cpr) /u01/app/ogg/dirchk 检查点即可以放在表中也可以放在文件中Extract Checkpoints (.cpe) /u01/app/ogg/dirchk 提取进程检查点Process Status (.pcs) /u01/app/ogg/dirpcs 进程状态SQL Scripts (.sql) /u01/app/ogg/dirsql 存放 SQL 脚本Database Definitions (.def) /u01/app/ogg/dirdef 连接是什么类型数据库 oracle mysql db2 sqlserver 5、启动 manager 进程(源端、目标端) info all 查看当前ogg进程状态 编辑mgr 进程参数文件 语法:edit params GGSCI (A) 2> edit params mgrport 7809PURGEOLDEXTRACTS /goldengate/qd*, USECHECKPOINTS, MINKEEPHOURS 2start mgr 启动 mgr 进程 6、配置源端 Extract 复制进程(源端) GGSCI> DBLOGIN USERID ogg, PASSWORD ogg Add trandata cp22.*Add trandata cp221.*Add trandata cp222.* (1)添加抓取进程 ext1GGSCI (A) 3> add extract ext1,tranlog,begin nowinfo all(2)指定队列文件路径Extract 进程把日志数据抓取出来后(没有存放在本地)而是直接把信息投递到目标端生成队列文件add rmttrail /goldengate/dirdat/qd,extract ext1rmttrail:表示传输进程将日志传输到目标端后放置的目录和队列文件名 (3)修改 extract 进程参数文件 start extract ext1 启动 ext1 进程,stop extract ext1 停止进程
add extract ext1,tranlog,begin nowadd exttrail /goldengate/dirdat/qd,extract ext1 #指定ext1进程所抓取的trail文件放到本地/u01/app/ogg/dirdat/ds路径下 edit params ext1 更改ext1参数文件extract ext1tranlogoptions excludeuser oggsetenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")setenv (ORACLE_SID="cpqd")userid ogg,password oggWARNLONGTRANS 2h, CHECKINTERVAL 3mDDL INCLUDE MAPPED, EXCLUDE OBJTYPE 'tablespace'DDLOPTIONS ADDTRANDATA, NOCROSSRENAME, REPORTDYNAMICRESOLUTIONDDLOPTIONS ADDTRANDATA RETRYOP MAXRETRIES 180 RETRYDELAY 60CACHEMGR CACHESIZE 2048MB, CACHEDIRECTORY /goldengate/dirtmpexttrail /goldengate/dirdat/qdtable cp22.*table cp221.*table cp222.*; start extract ext1
---此时本地路径下生成相应trail文件ext1进程作用是生成本地trail文件--此时需要再次配置一个extract进程ext2将本地trail文件传输到目标端相应目录下等待rep进程解析应用 配置PUMP进程 add extract ext2,exttrailsource ./dirdat/qd add rmttrail /goldengate/dirdat/qd,extract ext2 指定 ext2 进程把本地队列文件传输到目标端的/goldengate/dirdat/qd
编辑 ext2 参数文件edit params ext2extract ext2tranlogoptions excludeuser oggsetenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")setenv (ORACLE_SID="cpqd")passthruuserid ogg,password oggrmthost cpiq,mgrport 7809rmttrail /home/oracle/ogg/dirdat/qdtable cp222.*table cp221.*table cp22.*;开启DUMP进程启动进程后检查本地是否产生trail文件如果不产生重新配置pump进程。 查询cpqd当前scn号SYS@cpqd> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),dbms_flashback.get_system_change_number || '' from dual; TO_CHAR(SYSDATE,'YY DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER|------------------- ----------------------------------------2019-05-15 08:54:03 390429426457导出备份exp system/cpqd file=/home/oracle/exp_qd.dmp owner=cp22,cp222,cp221 flashback_scn=390429426457
7、配置目标端 replicat 进程(1)在目标端数据库创建 checkpoint 表GGSCI (B) 8> edit params globals ggschema oggcheckpointtable ogg.checkpointGGSCI (B) 10> dblogin userid ogg,password ogg GGSCI (B) 11> add checkpointtable ogg.checkponit (2)在目标端创建 replicat 进程GGSCI (B) 2> add replicat repqd,exttrail /home/oracle/ogg/dirdat/qd,checkpointtable ogg.checkpoint (3)修改 replicat 进程参数文件 GGSCI (B) 4> edit params repqdreplicat repqdsetenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")setenv (ORACLE_SID="cpwfgg")userid ogg,password ogg--HANDLECOLLISIONSASSUMETARGETDEFS DDL INCLUDE ALLDDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5map cp22.*,target cp22.*map cp222.*,target cp222.*map cp221.*,target cp221.*; start replicat repqd,aftercsn 390429426457 SQL> alter system set recyclebin=off scope=spfile;(10g可以both修改,11g必须spfile修改重启生效) SQL> @marker_setup.sql @marker_setup --该脚本用于创建DDL的marker表GGS_MARKER,用于存储DDL信息,该表只进行insert操作 SQL> @ddl_setup.sql @ddl_setup --该脚本创建了进行DDL复制抽取和复制所需的对象 SQL> @role_setup.sql @role_setup --创建DDL复制所需的对象 SQL> grant ggs_ggsuser_role to ogg; SQL> @ddl_enable.sql@ddl_enable -- 启用DDL复制,实质上是创建触发器,用以想MARKER和HISTORY表插入DDL信息
导入imp,fromuser --- touser 启动rep进程 imp system/cpwfgg file=/home/oracle/exp_qd.dmp log=/home/oracle/imp_qd.log fromuser=cp22,cp221,cp222 touser=cp22,cp221,cp222
SYS@cpwfgg> create tablespace ogg datafile'/u01/app/oracle/oradata/cpwfgg/ogg_1.dbf' size 5G autoextend on; Tablespace created. SYS@cpwfgg> create user ogg identified by ogg default tablespace ogg; User created. SYS@cpwfgg> grant dba to ogg; Grant succeeded. SYS@cpwfgg> create tablespace cp22_data datafile'/u01/app/oracle/oradata/cpwfgg/cp22_data_1.dbf' size 5G autoextend on; Tablespace created. SYS@cpwfgg> create user cp22 identified by cp22 default tablespace cp22_data; User created. SYS@cpwfgg> grant CREATE ANY VIEW,CREATE ANY SYNONYM,connect,resource to cp22; Grant succeeded. SYS@cpwfgg> create tablespace cp221_data datafile'/u01/app/oracle/oradata/cpwfgg/cp221_data_1.dbf' size 1G autoextend on; Tablespace created. SYS@cpwfgg> create user cp221 identified by cp221 default tablespace cp221_data; User created. SYS@cpwfgg> grant CREATE ANY VIEW,CREATE ANY SYNONYM,connect,resource to cp221; Grant succeeded. SYS@cpwfgg> create tablespace cp222_data datafile'/u01/app/oracle/oradata/cpwfgg/cp222_data_1.dbf' size 1G autoextend on; Tablespace created. SYS@cpwfgg> create user cp222 identified by cp222 default tablespace cp222_data; User created. SYS@cpwfgg> grant CREATE ANY VIEW,CREATE ANY SYNONYM,connect,resource to cp222; Grant succeeded. SYS@cpwfgg>
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |