ITPub博客

首页 > 数据库 > Oracle > Oracle GoldenGate部署过程中需要注意的问题

Oracle GoldenGate部署过程中需要注意的问题

原创 Oracle 作者:NiuJinlin 时间:2016-12-05 10:57:14 0 删除 编辑
1.对于Oracle GoldenGate的extract进程来说,抽取到的事务信息必须要完整才能被replicate进程应用在target端的数据库上,这就需要我们对长的的Transaction关注一下。
如果extract进程抽取的时间落后于事务开始时间,会导致数据的不一致。

查询事务开始时间的方法:
SQL> select min(start_time) from v$transaction;

等到查询出的时间大于extract进程的抽取时间,则可以开始进行数据的初始化操作,这样可以避免长事务的事务信息抽取不到而导致的数据丢失问题。

GGSCI(ora11g01.us.oracle.com)> view report ext01 detail

该命令可以查看到extract进程开始抽取事务信息的时间。


2.排除不需要的字段提高同步的效率

在一些数据仓库系统中,对于LOB字段的同步并非必须的。LOB字段的类型包括,CLOB,BLOB,NCLOB,BFILE。当我们不需要对这些信息进行统计的时候,可以不同步这些字段。

SQL> select owner, table_name, column_name from dba_lobs where owner = 'USER_NAME';

SQL> select 'TABLE USER_NAME.' ||Table_name || ',COLSEXCEPT (' ||listagg( column_name, ',' ) within group ( order by table_name) ||');' as column_name from dba_tab_columns where DATA_TYPE in ('BLOB','CLOB','NCLOB','BFILE') and owner='USER' GROUP BY table_name union select 'TABLE USER.' || TABLE_NAME || ';' column_name from DBA_tables where table_name not in (select distinct table_name from DBA_lobs WHERE OWNER='USER' ) and owner= 'USER' group by table_name order by 1; 


GGSCI(ora11g01.us.oracle.com)> add trandata user.table_name ,colexcept  (col1,col2);

这样就可以将不需要的字段的排除,并且写入extract的parameter file中。


3.查看不存在主键的表(如果可以,将表添加主键):

SQL> select a.table_name from dba_tables a inner join dba_constraints b  on a.table_name = b.table_name where b.constraint_name type in ('P','U') and a.owner = 'USER_NAME' minus select  table_name from dba_tables where owner = 'USER_NAME';

对于no primary key的表的处理(如果不能添加primary key):

GGSCI(source DB)> add trandata user.table_name , [cols <col_name>] keycols <col_name> ,nokey


4.注意数据库的字符集问题:

查看当前数据库字符集: select values from nls_database_parameters where parameter = 'NLS_CHARACTERSET';


本文章仅供本人学习OGG过程中笔记使用


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31401355/viewspace-2129716/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: OGG——简单部署
请登录后发表评论 登录
全部评论

注册时间:2016-10-11

  • 博文量
    6
  • 访问量
    6190