LINUX ORACLE OGG12C安装(二)

来源:这里教程网 时间:2026-03-03 18:20:15 作者:

第四部分  生产库安装DDL 相关组件

确定DDL SCHEMA

需要配置在GLOBALS 中:GGSCHEMA odc

 

授予odc 读写操作系统上的文本文件权限

GRANT EXECUTE ON UTL_FILE TO odc;

 

退出所有ORACLE 会话,不允许新会话产生

 

sqlplus "/as sysdba"            ---- 必须sysdba 连入

在这之前要先进入到odc 目录下再开启sql

 

要使基于触发器的 DDL 复制能够将 Oracle 不可见索引识别为唯一标识符,请在参数中将以下参数设置为 TRUE params.sql 脚本 :

define allow_invisible_index_keys = 'TRUE'

 

@marker_setup

  -- 该脚本安装marker 系统,这部分为启用DLL 支持所必备,执行该脚本时会提示输入GoldenGate 管理帐户schema 名。

 

@ddl_setup

  -- 执行该脚本要确认关闭掉所有ORACLE 会话,未被关闭的会话会以列表形式显示,执行过程中会要求希望对象属主,并选择安装模式。如果是初次安装就选择“INITIALSETUP ”,该模式假设当前没有任何GoldenGate DDL 对象存在,如果存在则会删除并重建。如果是重新安装,则应该选择“NORMAL .

   提示输入DDL SCHEMA

   若提示选择安装类型:INITIALSETUP (不一定)

 

@role_setup

-- 该操作会重建DDL 同步所需的权限,授予GoldenGate 中的DDL 对象以DML 权限。

提示你执行一条GRANT 语句,执行即可!

GRANT GGS_GGSUSER_ROLE TO odc;

       

 @ddl_enable.sql

  -- 启用DDL 触发器,以捕获DDL 操作。

 

 @ddl_pin.sql odc

要提高DDL 触发器的性能,可以通过ddl_pin 脚本,该脚本会将触发器使用的包加载到内存,以此提高效率。该脚本执行时需要引用dbms_shared_pool 系统包,因此在使用ddl_pin 脚本前需要确保dbms_shared_pool 可用。执行ddl_pin 脚本需要指定GoldenGate 管理员schema 名称.

 

查看ddl 的状态

@ddl_status.sql

 

注意!!!

后续铲除ogg 时,要把触发器给关掉

@ddl_disable

特别是GGS_DDL_TRIGGER_BEFORE  这个触发器

alter trigger GGS_DDL_TRIGGER_BEFORE disable;

 

第五部分  创建抽取进程

抽取进程要配置的参数:

参数

阀值

定义

extract

sm_ext

指定进程名和类型 

setenv

(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")

配置系统环境变量

userid/ password

odc

指定OGG 连接数据库的用户名和密码

USERIDALIAS

tiger1

使用12c 新特性的别名,提高安全性

LOGALLSUPCOLS

将所有补充记录的列写入跟踪,包括冲突检测和解决所需的列,以及支持集成Replicat 所需的调度列

ENCRYPTTRAIL

AES128 | AES192 | AES256

加密本地踪迹。

exttrail

./dirdat/cr

指定写入到本地的哪个队列

tranlogoptions

指定在解析数据库日志时所需要的特殊参数

altarchivelogdest

/oradata/oradata/smkdb/archive

指定归档路径

FETCHOPTIONS

指定ogg 获取数据的方式

FETCHPKUPDATECOLS

复制进程出现丢失update 记录(missing update )并且更新的是主键,update 将转换成insert ( 当使用了HANDLECOLLISIONS 时,请使用该参数。)

ddl

include objname  UCR_CRM1.* exclude objtype 'TRIGGER'

使用DDL 参数,指定DDL 的支持和过滤DDL 操作。

table

UCR_CRM1.*

定义需要复制的表,后面需以; 结尾 

具体参数设置如下:

ggsci>add extract sm_ext tranlog begin now

//RAC   ADD EXT  sm_ext, TRANLOG, THREADS 2, BEGIN now  

ggsci>add exttrail ./dirdat/sm extract sm_ext

 

注:

tranlog :表示数据抓取的来源是数据库的redo 数据。

begin now :表示我们在启动这个抓取进程的就去抓取数据。

./dirdat :表示trail 文件的目录

sm trail 文件的前缀

extract sm_ext :值指定给那个进程用的(sm_ext )。

 

查看数据库字符集对应设置环境变量

SQL> SELECT * FROM nls_database_parameters WHERE PARAMETER = 'NLS_CHARACTERSET';

 

ggsci>edit param sm_ext

参数:

extract sm_ext

setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")

--userid odc password odc

USERIDALIAS tiger1

--LOGALLSUPCOLS

--ENCRYPTTRAIL AES192

exttrail ./dirdat/sm

tranlogoptions altarchivelogdest /oracle/odc/data       

--RAC  TranlogOptions DBLOGREADER 

FETCHOPTIONS FETCHPKUPDATECOLS

ddl include objname test1.* exclude objtype 'TRIGGER'

DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10 

table SCHEMA1.* ;

table SCHEMA2.* ;

table SCHEMA3.* ;

 

DBLOGREADER 参数支持的数据版本

Use the TRANLOGOPTIONS parameter with the DBLOGREADER option in the Extract parameter file if the RDBMS is Oracle 11.1.0.7 or Oracle 11.2.0.2 or later 11g R2 versions.

注意: 当重做日志和归档日志在普通磁盘或原始设备上时,也可以使用DBLOGREADER

 

如果不是以上列出的数据库版本之一,做法:

1 、创建一个可以直接访问asm 实例的用户

2 、将这个用户增加到ogg 凭据存储中

3 、使用参数ASMUSERALIAS 指定asm 登录别名

 

第六部分  创建传输进程

传输进程要配置的参数:

参数

阀值

定义

extract

dmpucr

指定进程名和类型 

userid/ password

odc

指定OGG 连接数据库的用户名和密码

USERIDALIAS

tiger1

使用12c 新特性的别名,提高安全性

ENCRYPTTRAIL

AES128 | AES192 | AES256

加密本地踪迹。

rmthost

132.151.15.10

指定目标端主机IP

mgrport

7809

指定管理进程端口号

rmttrail

./dirdat/cr

指定目标端保存队列文件的目录

passthru

采用pass-through 模式处理表

table

UCR_CRM1.*

定义需要复制的表,后面需以; 结尾 

具体参数如下:

ggsci>add extract sm_dmp EXTTRAILSOURCE ./dirdat/sm

ggsci>ADD RMTTRAIL ./dirdat/sm, EXTRACT sm_dmp

 

注:

EXTTRAILSOURCE :指定提取文件作为数据源

ADD RMTTRAIL :在目标数据库上创建一个trail

 

ggsci>edit param sm_dmp

 

参数:

extract sm_dmp

--userid odc,password odc

USERIDALIAS tiger1

rmthost 192.168.31.139, mgrport 7809 

--ENCRYPT AES192, KEYNAME securekey2          

rmttrail ./dirdat/sm

passthru

table SCHEMA1.* ;

table SCHEMA2.* ;

table SCHEMA3.* ;

 

--CDB 环境

SOURCECATALOG pdb1

TABLE sales.*;

 

第七部分  备份创建用户

SQL> create tablespace odc_tps datafile '/oradata/orcl/odc01.dbf' size 100M autoextend on;

 

SQL> create user odc identified by odc default tablespace odc_tps;

 

GRANT CONNECT TO odc;

GRANT ALTER ANY TABLE TO odc;

GRANT ALTER SESSION TO odc;

GRANT CREATE SESSION TO odc;

GRANT FLASHBACK ANY TABLE TO odc;

GRANT SELECT ANY DICTIONARY TO odc;

GRANT SELECT ANY TABLE TO odc;

GRANT RESOURCE TO odc;

GRANT DBA TO odc;

 

第八部分  备份创建检查点

cd /odc

$ sqlplus odc/odc

SQL> @chkpt_ora_create.sql

DROP TABLE ggs_checkpoint

           *

ERROR at line 1:

ORA-00942: table or view does not exist

 

Table created.

 

另一种方法:

DBLOGIN USERIDALIAS alias

ADD CHECKPOINTTABLE [container.]schema.table

--[container.]schema.table 可不写,则为默认表名,若更改则在GLOBALS 中相应更改

 

第九部分  初始化同步

生产端查询相关信息

-- 生产端查询表格所在表空间

select distinct tablespace_name from dba_tables where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);

select distinct tablespace_name from dba_tab_partitions where table_owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);

 

-- 备份端查询是否存在以上表空间,若没有则创建,如果不想创建,在后面的impdp 中需要配置remap_tablespace 参数。

 

-- 生产端索引所在表空间

select distinct tablespace_name from dba_indexes where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);

 

select distinct tablespace_name from dba_ind_partitions where index_owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);

 

-- 生产端用户默认临时表空间:

select distinct temporary_tablespace from dba_users

 

检查undo 保留时间及表空间大小

SQL> select file_name,tablespace_name,bytes/1024/1024/1024,AUTOEXTENSIBLE,maxbytes/1024/1024/1024 from dba_data_files where tablespace_name='UNDOTBS1';

SQL> show parameter undo

SQL> select tablespace_name,sum(bytes/1024/1024/1024) from dba_data_files group by tablespace_name; 

SQL> select tablespace_name,sum(bytes/1024/1024) from dba_free_space group by tablespace_name;

根据时间情况做适当调整,防止导出时出现快照过旧的报错,如下:

SQL> alter system set undo_retention=172800;

 

生产端查询SCN

SQL> select to_char(current_scn) from v$database;

14569604987950

 

生产端导出

$ expdp odc/odc schemas=SCHEMA1,SCHEMA2, SCHEMA3 directory=expdp flashback_scn=14569604987950  dumpfile=exp.dmp logfile=exp.log

 

目标端导入

$ impdp odc/odc schemas= SCHEMA1,SCHEMA2, SCHEMA3  directory=expdp  dumpfile=exp.dmp logfile=imp.log

 

-- 导入前检查目标端表空间的大小

select segment_type,count(*),sum(bytes/1024/1024) from dba_segments  where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’) group by segment_type;

 

备份库相关操作

备份库禁用触发器

select 'alter trigger '||owner||'.'||trigger_name||' disable;' from dba_triggers where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’) and status='ENABLED';

 

移除JOB

select job,log_user,schema_user,next_date,broken from dba_jobs;

exec dbms_job.remove(<that job id>);

exec dbms_ijob.remove(21);

exec dbms_job.broken(186,true)

 

select * from dba_scheduler_jobs where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);

禁用:

DBMS_SCHEDULER.DISABLE('job1, job2, job3, sys.jobclass1, sys.jobclass2');

或删除:

DBMS_SCHEDULER.DROP_JOB (job_name => 'my_job1');

 

第十部分  创建应用进程

应用进程要配置的参数:

参数

阀值

定义

replicat

repucr

指定进程名和类型 

setenv

(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")

配置系统环境变量

userid/ password

odc

指定OGG 连接数据库的用户名和密码

USERIDALIAS

tiger1

使用12c 新特性的别名,提高安全性

ASSUMETARGETDEFS

源端和目标端数据库类型一致,无需生成数据定义文件

ALLOWNOOPUPDATES

允许执行无实际变化的updata

DBOPTIONS

DEFERREFCONST

约束延迟设置。在复制进程的事物被提交之前,延迟级联删除、级联更新时的校验和实施。

HANDLETPKUPDATE

定义即使目标数据库环境中存在数据完整性问题,replicat  进程仍然能够继续处理 trail  中的数据。

ddlerror

955 ignore

定义来处理被找到的对象错误

DISCARDFILE

/odc/dirrpt/cr.dsc

定义discardfile 文件位置,如果处理中油记录出错会写入到此文件中

APPEND

discardfile 文件中如果已经包含记录的话,在后面继续追加,不删除之前的记录。

megabytes

20

定义discardfile 文件大小

DISCARDROLLOVER

on Sunday

定义文件过期设定,为了防止discard file 被写满

map  target

用于指定源端和目标端表的映射关系

 

具体参数如下:

ggsci>dblogin userid odc password odc

ggsci>add replicat sm_rep exttrail ./dirdat/sm

 

ggsci>edit param sm_rep

 

参数:

replicat sm_rep

setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")

--userid odc, password odc

USERIDALIAS tiger2

--handlecollisions

ASSUMETARGETDEFS                      

-- 如果源表和目标表没有相同的结构,那么使用SOURCEDEFS 参数而不是ASSUMETARGETDEFS     

ALLOWNOOPUPDATES               

DBOPTIONS DEFERREFCONST

HANDLETPKUPDATE

--batchsql

ddlerror 955 ignore

ddlerror 1917 ignore

ddlerror 24344 ignore

ddlerror 1031 ignore

ddl include mapped

DISCARDFILE /oracle/odc/dirrpt/sm.dsc, APPEND megabytes 20

DISCARDROLLOVER on sunday

--DISCARDROLLOVER

map SCHEMA1.* target SCHEMA1.*;

map SCHEMA2.* target SCHEMA2.*;

map SCHEMA3.* target SCHEMA3.*;

 

 

启动

ggsci>start sm_rep aftercsn 14569604987950

相关推荐