Linux单机到Linux单机的OGG安装部署步骤(支持DDL)

OGG安装部署步骤

(linux单机对linux单机支持DDL)

检查

Goldengate通过抓取源端数据库重做日志进行分析,将获取的数据应用到目标端,实现数据同步。因此,源数据库需要必须处于归档模式,并启用附加日志和强制日志。

1.1 查看源端数据库是否开启归档

$ sqlplus / as sysdba

SQL> archive log list;

如果是非归档模式,需要开启归档模式:

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

alter system archive log start;

1.2 启用库级别补充日志

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

SQL> ALTER SYSTEM SWITCH LOGFILE;

开启数据库强制日志模式

alter database force logging;

1.3 检查

SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;

2.安装

2.1 安装ogg文件(在源端、目标端同时操作)

2.1.1 创建ogg安装目录(用root用户)

# mkdir /ogg

# chown oracle:oinstall /ogg -R

2.1.2 将压缩文件复制到ogg安装路径下,并更改属主

# cp /usr/p18683731_1121021_Linux-x86-64.zip /ogg

# chown oracle:oinstall /ogg/p18683731_1121021_Linux-x86-64.zip

2.2 切换路径到ogg安装路径

su - oracle

cd /ogg

unzip p18683731_1121021_Linux-x86-64.zip

tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

2.3 设置PATH及LD_LIBRARY_PARH

vi .bash_profile

export PATH=/ogg:$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=/ogg:$ORACLE_HOME/lib

2.4 在ogg安装路径执行:

GGSCI (ogg) 1> ggsci

2.5 在GGSCI中,创建ogg工作目录:

GGSCI (ogg) 1> CREATE SUBDIRS

--创建其它的路径

GGSCI (ogg) 1> exit

2.6 安装对sequence的支持FLUSH SEQUENCE:

需要在源端及目标端执行以下内容:

支持DDL用户:goldengate

2.6.1 在SQL*Plus中,以SYSDBA连接到源端及目标端.

sqlplus / as sysdba

2.6.2 创建支持DDL的用户

create tablespace ogg_tbs logging datafile '/u01/ogg_tbs.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;

--首先创建一个数据表空间,独立于其它业务的表空间

CREATE USER goldengate IDENTIFIED BY goldengate default tablespace ogg_tbs; --必须自定义一个表空间

GRANT CONNECT,RESOURCE,DBA TO goldengate;

2.6.3. 在源端及目标端的GGSCI中,执行以下命令:

EDIT PARAMS ./GLOBALS

2.6.4. 在GLOBALS文件中,输入以下参数:

GGSCHEMA goldengate

2.6.5. 保存并退出文件

2.6.6. 在SQL*Plus中执行以下命令(源端和目标端):

sqlplus / as sysdba

@sequence.sql

输入:goldengate

2.6.7. 源端执行:

GRANT EXECUTE on goldengate.updateSequence TO goldengate;

2.6.8. 目标端执行:

GRANT EXECUTE on goldengate.replicateSequence TO goldengate;

2.6.9.源端执行: 对sys.seq$添加补充日志

alter table sys.seq$ add supplemental log data (primary key) columns;

2.7 安装DDL对象(源端):

2.7.1.赋权

GRANT EXECUTE ON utl_file to goldengate;

为DDL对象指定一个表空间。GGS_DDL_HIST 和 GGS_MARKER

2.7.3.切换到ogg安装路径

cd /ogg

2.7.4.停掉所有的数据库连接,并阻止新的连接

2.7.5.以sysdba身份连接到数据库,用以在sys下创建触发器

2.7.6.运行脚本:

sqlplus /as sysdba

@marker_setup.sql

@ddl_setup.sql

@role_setup.sql

2.7.7.授权给ogg抽取用户

GRANT GGS_GGSUSER_ROLE TO goldengate;

---默认role为GGS_GGSUSER_ROLE

2.7.8.启用DDL触发器:

@ddl_enable.sql

2.8 为源端和目标端配置ogg:(源端、目标端)

2.8.1.在ogg安装目录:

ggsci

2.8.2.配置参数文件:

EDIT PARAMS mgr

2.8.3 创建manager参数文件(源端、目标端):

2.8.4. 在ogg安装路径,执行ggsci

2.8.5.编辑manager参数文件

EDIT PARAMS MGR

mgr中,只需要port参数,但是强烈建议加上DYNAMICPORTLIST参数

AUTOSTART和AUTORESTART

PURGEOLDEXTRACTS

保存并退出文件

 

示例:

PORT 7809

DYNAMICPORTLIST 7810-7820, 7830

AUTOSTART EXTRACT *


AUTORESTART EXTRACT *, RETRIES 4, WAITMINUTES 4

PURGEOLDEXTRACTS /ogg/dirdat/tt*, USECHECKPOINTS, MINKEEPHOURS 2

2.10 配置extract以获取数据变更(源端):

2.10.1.在ggsci中添加ext抽取进程

add extract extfull, tranlog,begin now

2.10.2.在ggsci中执行:

EDIT PARAMS extfull

2.10.3.在参数文件中输入参数

EXTRACT extfull

setenv ( NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK" )

ddl include mapped

USERID goldengate, PASSWORD goldengate

EXTTRAIL /ogg/dirdat/sr

SEQUENCE test.seq_test;

TABLE test.*;

2.10.4.保存并退出文件

2.10.5.添加trail文件

add exttrail /ogg/dirdat/sr, extract extfull, MEGABYTES 50

2.11 配置extract以传输:(源端)

2.11.1.添加传输进程

add extract dpfull exttrailsource /ogg/dirdat/sr

2.11.2.在GGSCI中执行:

EDIT PARAMS dpfull

2.11.3.参数文件中输入参数:

EXTRACT dpfull

passthru

RMTHOST 127.0. 0.2(目标端IP地址), MGRPORT 7809

RMTTRAIL /ogg/dirdat/tg



SEQUENCE test.seq_test;

TABLE test.*;

2.11.4.保存并退出文件 :wq

2.11.5.添加目标端的trail文件

add rmttrail /ogg/dirdat/tg, extract dpfull, MEGABYTES 50

2.12 配置replicat:(目标端)

2.12.1.创建checkpoint table

在GGSCI中执行:

dblogin userid goldengate password goldengate

ADD CHECKPOINTTABLE goldengate.ckpt

2.12.2.在ogg配置中指定checkpoint table

EDIT PARAMS ./GLOBALS

CHECKPOINTTABLE goldengate.ckpt

2.12.3.添加应用进程

add replicat repfull, exttrail /ogg/dirdat/tg, CHECKPOINTTABLE goldengate.ckpt

2.12.4.编辑rep参数文件

EDIT PARAMS repfull

2.12.5.输入参数

REPLICAT repfull

setenv ( NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK" )

ddl include mapped

USERID goldengate, PASSWORD goldengate

-- SUPPRESSTRIGGERS is for Oracle 10.2.0.5 & later patches, and for Oracle 11.2.0.2 and later 11gR2 versions

DBOPTIONS SUPPRESSTRIGGERS,DEFERREFCONST

ASSUMETARGETDEFS

DISCARDFILE /ogg/dirrpt/repfull.dsc

MAP test.*, TARGET test.*;

2.12.6.保存退出文件

2.13 schema级别补充日志:(源端)

运行 ggsci 在ggsci中执行如下

DBLOGIN USERID goldengate

ADD SCHEMATRANDATA user_name

如果提示以下,请按照如下操作(源端、目标端)

GGSCI (ogga) 2> ADD SCHEMATRANDATA TEST

ERROR: Operation not supported because enable_goldengate_replication is not set to true.

SQL> alter system set enable_goldengate_replication=true;

------------------------------------

表级别补充日志:(源端)

DBLOGIN USERID PASSWORD

ADD TRANDATA schema.table_name

-----基础数据

源端

启动mgr及抓取传输进程

ggsci

start mgr
  1. 从源端取一次scn号
sqlplus / as sysdba

SQL> select current_scn from v$database;



CURRENT_SCN

-----------

1068641
  1. 按照上面查询出的scn导出数据
SQL> create directory exp as '/home/oracle/';

Directory created.

$ expdp sys/****** directory=exp dumpfile=test%U.dmp logfile=test0318.log schemas=test parallel=1 flashback_scn= 1068641

3.将dmp文件传输到目标端:

scp /home/oracle/test01.dmp [email protected]:/home/oracle

目标端:

SQL> create directory exp as '/home/oracle/';

Directory created.

1.导入数据

impdp sys/****** directory=exp dumpfile=test01.dmp exclude=statistics

2.收集统计信息

exec dbms_stats.gather_table_stats(OWNNAME => 'TEST', TABNAME => 'TEST', CASCADE => TRUE);

3.启动应用进程

start mgr

start repfull, aftercsn 1061894 ---源端取到的scn

目标端

执行 ggsci



edit param mgr

注释 --AUTOSTART EXTRACT *

 

你可能感兴趣的:(大数据)