Goldengate的安装与配置(配置rac到单实例的同步)

àì夳堔傛蜴生んèń 2022-08-08 05:28 332阅读 0赞

环境:

源端:11204的双节点rac

目标端:11204的单实例数据库

Goldengate安装包版本:

121210_fbo_ggs_Linux_x64_shiphome.zip

RAC上安装OGG:

  1. 在rac两个节点创建ogg安装目录

mkdir /oracle/ogg

  1. 设置环境变量

在用户参数文件中添加以下内容:

export GGATE_HOME=/oracle/ogg

export LIBPATH=$GGATE_HOME:$ORACLE_HOME/lib

  1. 用户asmca创建共享磁盘组并格式化为acfs文件系统挂载到/oracle/ogg目录

创建共享磁盘的步骤如下:

说明:

使用asmca创建acfs和advm时发现图形界面事acfs和volume选项卡为灰色不能使用这是由于acfs不支持centos系统导致的,所以要配置centos上使用acfs集群文件系统,步骤见文章

http://ylw6006.blog.51cto.com/470441/1135987/

http://www.idevelopment.info/data/Oracle/DBA_tips/Automatic_Storage_Management/ASM_50.shtml

配置完成后使用asmca工具图形化界面创建acfs文件系统

现在创建磁盘组ogg (需要为磁盘组准备单独的磁盘)

创建volume

创建acfs文件系统(截图省略)

在节点上执行挂载:

[root@rac1 bin]# /sbin/mount.acfs -o all

[root@rac2 bin]# /sbin/mount.acfs -o all

用df查看挂载点信息

节点1:

rac1->df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 5.8G 3.4G 2.1G 62% /

tmpfs 1.4G 440M 940M 32% /dev/shm

/dev/sda1 97M 32M 61M 35% /boot

/dev/sda2 15G 14G 403M 98% /oracle

/dev/sda6 2.0G 38M 1.8G 3% /tmp

/dev/asm/oggvol-201 6.0G 666M 5.4G 11% /oracle/app/grid/ogg

节点2:

rac2->df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 5.8G 4.1G 1.5G 75% /

tmpfs 1.4G 380M 999M 28% /dev/shm

/dev/sda1 97M 32M 61M 35% /boot

/dev/sda2 15G 9.5G 4.2G 70% /oracle

/dev/sda6 2.0G 232M 1.6G 13% /tmp

/dev/asm/oggvol-201 6.0G 666M 5.4G 11% /oracle/app/grid/ogg

在共享文件中创建文件验证挂载目录

[root@rac2 ogg]# touch test
touch: cannot touch `test’: Permission denied
[root@rac2 ogg]#

无法创建文件提示权限拒绝,原因是由于SElinux是开启的,关闭SElinux就可以了

  1. 以grid用户安装ogg

上传安装包,并解压

cd disk1

执行

./runInstaller

图形化界面安装ogg

点击next

点击next忽略这个警告(截图省略)

注:

单实例安装OGG:

实例安装如rac安装一样

配置源端数据库:

  1. 数据库模式配置

源端数据库必须开启归档模式

Alter database archivelog;

  1. 开启最小附加日志

Alter database add supplemental log data;

使用SELECTSUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;

可查看是否开启了最小附加日志;

  1. 在源端和目标创建专用的用户表空间

创建表空间(根据实际情况进行修改)

create tablespace ogg datafile’/oradata/$ORACLE_SID/ogg1.dbf’ size 2000M ;

创建用户并授权

CREATE USER ggs IDENTIFIED BY ggs DEFAULTTABLESPACE ggs TEMPORARY TABLESPACE TEMP;

Grant dba to ggs ;

配置asm的联通性:

由于rac数据库的归档日志放在asm磁盘组中,所以要配置asm连接

检查rac两个节点的监听情况:

节点1:

rac1-> lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0- Production on 04-MAY-2015 16:40:10

Copyright (c) 1991, 2013, Oracle. All rights reserved.

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))

STATUS of the LISTENER

-———————————-

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.4.0- Production

Start Date 04-MAY-2015 15:20:44

Uptime 0 days 1 hr. 19 min. 27 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /oracle/app/11.2.0/grid/network/admin/listener.ora

Listener Log File /oracle/app/grid/diag/tnslsnr/rac1/listener/alert/log.xml

Listening Endpoints Summary…

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.105)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.2)(PORT=1521)))

Services Summary…

Service “+ASM” has 1 instance(s).

Instance “+ASM1”, status READY, has 1 handler(s) for thisservice…

Service “orcl” has 1 instance(s).

Instance “orcl1”, status READY, has 1 handler(s) for thisservice…

Service “orclXDB” has 1instance(s).

Instance “orcl1”, status READY, has 1 handler(s) for thisservice…

The command completed successfully

rac1->

节点2:

rac2-> lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0- Production on 04-MAY-2015 16:39:29

Copyright (c) 1991, 2013, Oracle. All rights reserved.

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))

STATUS of the LISTENER

-———————————-

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.4.0- Production

Start Date 04-MAY-2015 15:21:07

Uptime 0 days 1 hr. 18 min. 23 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /oracle/app/11.2.0/grid/network/admin/listener.ora

Listener Log File /oracle/app/grid/diag/tnslsnr/rac2/listener/alert/log.xml

Listening Endpoints Summary…

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.103)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.3)(PORT=1521)))

Services Summary…

Service “+ASM” has 1 instance(s).

Instance “+ASM2”, status READY, has 1 handler(s) for thisservice…

Service “orcl” has 1 instance(s).

Instance “orcl2”, status READY, has 1 handler(s) for thisservice…

Service “orclXDB” has 1instance(s).

Instance “orcl2”, status READY, has 1 handler(s) for thisservice…

The command completed successfully

配置tnsname.ora

在节点1的oracle用户和grid用户下的tnsname.ora文件中添加如下:

ASM =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.105)(PORT = 1521))

(CONNECT_DATA =

  1. (SERVER = DEDICATED)
  2. (SERVICE\_NAME = +ASM)
  3. (SID\_NAME = +ASM1)

)

)

在节点2的oracle用户和grid用户下的tnsname.ora文件中添加如下:

ASM =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))

(CONNECT_DATA =

  1. (SERVER = DEDICATED)
  2. (SERVICE\_NAME = +ASM)
  3. (SID\_NAME = +ASM2)

)

)

配置goldengate:

  1. 配置源端mgr

GGSCI (database) 4> EDIT PARAMS mgr

PORT 7809

PURGEOLDEXTRACTS/oracle/oracle/ogg/dirdat/*, USECHECKPOINTS,MINKEEPDAYS 1

  1. 在目标端添加checkpoint

edit params ./globals

checkpointtable ogg.checkpoint

GGSCI (NOKGAMFVFDI3EDJ) 1> dbloginuserid ggs ,password ggs

Successfully logged into database.

GGSCI (NOKGAMFVFDI3EDJ as ggs@ogg1) 2>add checkpointtable ggs.checkpoint

  1. 配置源端抽取进程

GGSCI (rac2) 88> edit params eora

extract eora

dynamicresolution

SETENV (ORACLE_HOME =”/oracle/app/oracle/product/11.2.0/db_1”)

USERID ggs@orcl, PASSWORD ggs

TRANLOGOPTIONS ASMUSER sys@ASM,ASMPASSWORDoracle

THREADOPTIONS MAXCOMMITPROPAGATIONDELAY20000

exttrail /oracle/app/grid/ogg/dirdat/et

table scott.*;

tableexclude scott.ww;

GGSCI > ADD EXTRACT eora, TRANLOG, BEGINNOW, THREADS 2

GGSCI > ADD EXTTRAIL /oracle/app/grid/ogg/dirdat/et, EXTRACT eora

  1. 配置源端pump投递进程

GGSCI (rac2) 89> edit params pump_so

extract pump_so

SETENV (ORACLE_HOME = “/oracle/app/oracle/product/11.2.0/db_1”)

USERID ggs@orcl, PASSWORD ggs

TRANLOGOPTIONS ASMUSER sys@ASM,ASMPASSWORD oracle

rmthost 192.168.56.106,mgrport 7809

rmttrail /oracle/app/oracle/ogg/dirdat/mb

passthru

--ddl include all

--ddloptions addtrandata,report

table scott.*;

GGSCI > ADD EXTRACT pump_so, EXTTRAILSOURCE /oracle/app/oracle/ogg/dirdat/et,

BEGIN now

GGSCI > ADD RMTTRAIL /oracle/app/oracle/ogg/dirdat/rt, EXTRACT pump_so

  1. 配置目标端replicat复制进程

    GGSCI (rac3 as ggs@orcl) 17> edit paramsrepl

replicat repl

userid ggs, password ggs

assumetargetdefs

reperror default,discard

discardfile./dirrpt/rep1.dsc,append,megabytes 50

dynamicresolution

--ddl include mapped

--ddloptions report

map scott.*,target scott.*;

GGSCI> ADD REPLICAT rept, EXTTRAIL /oracle/ogg/dirdat/rt

上面报错

GGSCI(rac3 as ggs@orcl) 5> add replicat repl ,exttrail ./dirdat/mb

ERROR:No checkpoint table specified for ADD REPLICAT.

用下面的:

ADDREPLICAT repl,EXTTRAIL ./dirdat/mb,checkpointtable ggs.checkpoint

配置支持DDL复制:

停止源端的抽取进程和目标端的应用进程

源端:

GGSCI (rac2) 7> stop mgr

Manager process is required by other GGSprocesses.

Are you sure you want to stop it (y/n)?y

Sending STOP request to MANAGER …

Request processed.

Manager stopped.

GGSCI (rac2) 8>

GGSCI (rac2) 8> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER STOPPED

EXTRACT RUNNING EORA 00:00:00 00:00:06

EXTRACT RUNNING PUMP_SO 00:00:00 00:00:06

目标端:

GGSCI (rac3) 8> stop repl

Sending STOP request to REPLICAT REPL …

Request processed.

GGSCI (rac3) 9> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

REPLICAT STOPPED REPL 00:00:00 00:00:28

[oracle@sourcesrv gg]$ sqlplus / as sysdba

SQL> @marker_setup.sql

Marker setup script

You will beprompted for the name of a schema for the Oracle GoldenGate database objects.

NOTE: The schemamust be created prior to running this script.

NOTE: Stop all DDLreplication before starting this installation.

Enter OracleGoldenGate schema name:ggs

Marker setup tablescript complete, running verification script…

Please enter thename of a schema for the GoldenGate database objects:

Setting schema nameto GGS

MARKER TABLE

-———————————————————————————————————————-

OK

MARKER SEQUENCE

-———————————————————————————————————————-

OK

Script complete.

SQL>

SQL> @marker_setup.sql

Oracle GoldenGateDDL Replication setup script

Verifying thatcurrent user has privileges to install DDL Replication…

You will beprompted for the name of a schema for the Oracle GoldenGate database objects.

NOTE: For an Oracle10g source, the system recycle bin must be disabled. For Oracle 11g and later,it can be enabled.

NOTE: The schemamust be created prior to running this script.

NOTE: Stop all DDLreplication before starting this installation.

Enter OracleGoldenGate schema name:ggs

Working, pleasewait …

Spooling to fileddl_setup_spool.txt

Checking forsessions that are holding locks on Oracle Golden Gate metadata tables …

Check complete.

WARNING: TablespaceOGG does not have AUTOEXTEND enabled.

Using GGS as aOracle GoldenGate schema name.

Working, pleasewait …

DDL replicationsetup script complete, running verification script…

Please enter thename of a schema for the GoldenGate database objects:

Setting schema nameto GGS

CLEAR_TRACE STATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

CREATE_TRACESTATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

TRACE_PUT_LINESTATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

INITIAL_SETUPSTATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

DDLVERSIONSPECIFICPACKAGE STATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

DDLREPLICATIONPACKAGE STATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

DDLREPLICATIONPACKAGE BODY STATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

DDL IGNORE TABLE

-————————————————————————————————————————————————————

OK

DDL IGNORE LOGTABLE

-————————————————————————————————————————————————————

OK

DDLAUX PACKAGE STATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

DDLAUX PACKAGE BODYSTATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

SYS.DDLCTXINFO PACKAGE STATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

SYS.DDLCTXINFO PACKAGE BODY STATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

DDL HISTORY TABLE

-————————————————————————————————————————————————————

OK

DDL HISTORYTABLE(1)

-————————————————————————————————————————————————————

OK

DDL DUMP TABLES

-————————————————————————————————————————————————————

OK

DDL DUMP COLUMNS

-————————————————————————————————————————————————————

OK

DDL DUMP LOG GROUPS

-————————————————————————————————————————————————————

OK

DDL DUMP PARTITIONS

-————————————————————————————————————————————————————

OK

DDL DUMP PRIMARYKEYS

-————————————————————————————————————————————————————

OK

DDL SEQUENCE

-————————————————————————————————————————————————————

OK

GGS_TEMP_COLS

-————————————————————————————————————————————————————

OK

GGS_TEMP_UK

-————————————————————————————————————————————————————

OK

DDL TRIGGER CODESTATUS:

Line/pos

-—————————————————————————————-

Error

-————————————————————————————————

No errors

No errors

DDL TRIGGER INSTALLSTATUS

-————————————————————————————————————————————————————

OK

DDL TRIGGER RUNNINGSTATUS

-———————————————————————————————————————————————————————————-

ENABLED

STAYMETADATA INTRIGGER

-——————————————————————————————————————————————————————————-

OFF

DDL TRIGGER SQLTRACING

-——————————————————————————————————————————————————————————-

0

DDL TRIGGER TRACELEVEL

-——————————————————————————————————————————————————————————-

0

LOCATION OF DDLTRACE FILE

-——————————————————————————————————————————————————————————-

/oracle/app/oracle/diag/rdbms/orcl/orcl2/trace/ggs_ddl_trace.log

Analyzinginstallation status…

VERSION OF DDLREPLICATION

-———————————————————————————————————————————————————————————-

OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1

STATUS OF DDLREPLICATION

-———————————————————————————————————————————————————————————-

SUCCESSFULinstallation of DDL Replication software components

Script complete.

SQL>


SQL> @role_setup.sql

GGS Role setupscript

This script willdrop and recreate the role GGS_GGSUSER_ROLE

To use a differentrole name, quit this script and then edit the params.sql script to change thegg_role parameter to the preferred name. (Do not run the script.)

You will beprompted for the name of a schema for the GoldenGate database objects.

NOTE: The schemamust be created prior to running this script.

NOTE: Stop all DDLreplication before starting this installation.

Enter GoldenGateschema name:ggs

Wrote filerole_setup_set.txt

PL/SQL proceduresuccessfully completed.

Role setup scriptcomplete

Grant this role toeach user assigned to the Extract, GGSCI, and Manager processes, by using thefollowing SQL command:

GRANT GGS_GGSUSER_ROLETO

where is the user assigned to the GoldenGate processes.

开启ddl复制功能

SQL> @ddl_enable

Trigger altered.

SQL>

验证ddl安装

SQL> @marker_status.sql

Please enter the name of a schema for theGoldenGate database objects:

ggs

Setting schema name to GGS

MARKER TABLE

-——————————————————————————————————————————————

OK

MARKER SEQUENCE

-——————————————————————————————————————————————

OK

SQL>

在进程中配置支持DDL复制

在抽取进程中添加如下参数:

ddl include all

ddloptions addtrandata,report

在应用进程中添加如下参数:

ddl include mapped

ddloptions report

在源端执行创建表

SQL> create table jack(id number primary key ,name varchar2(20));

Table created.

在目标端查询:

SQL> desc jack

Name Null? Type


ID NOTNULL NUMBER

NAME VARCHAR2(20)

验证同步成功

发表评论

表情:
评论列表 (有 0 条评论,332人围观)

还没有评论,来说两句吧...

相关阅读