zoukankan      html  css  js  c++  java
  • OGG常见问题处理

    1403:
    ORA-01403: No data found
    在运行PL/SQL块、存储过程、函数、触发器等,假设须要进行操作的记录没有查询到。则会返回1403的错误
    Goldengate中的1403
    在目标段复制进程中,godengate从日志中解析出sql语句,依据sql语句的where条件。在目标段的库中匹配不出对应的记录

    1403错误原因:
    1. 附加日志相关

    • 数据相关
    • 表结构不一致/索引重建

    常见问题:
    1.生产端I/O过大、内存占用过大
    配置了多个Extract进程导致
    2.进程“假死”
    1>參数配置错误: TRANLOGOPTIONS rawdeviceoffset 0
    此參数仅仅在AIX使用裸设备时配置。其它环境不能配置
    2>查看进程处理状态:
    GGSCI>send repxxx, status
    send repxxx status
    Sending STATUS request to REPLICAT REPXXX ...
    Current status: Processing data
    Sequence #: 1
    RBA: 3861681
    21157 records in current transaction
    3、RAC节点时钟不同步(OGG-01028)
    1> 配置參数:
    THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 90000 IOLATENCY 90000
    2> 配置NTP时钟同步server

    4、队列文件不自己主动删除
    1>实施时。运行了多次:
    ADD EXTTRAIL 。。。

    ADD RMTTRAIL 。。。
    2>处理细节參照运维文档进行处理

    5、參数文件里username处理
    1> TRANLOGOPTIONS EXCLUDEUSER USERNAME
    这里的USERNAME是须要替换为实际的GoldenGateusername

    6、參数文件里字符集处理
    1> setenv (NLS_LANG=“AMERICAN_AMERICA.ZHS16GBK”)
    这里的AMERICAN_AMERICA.ZHS16GBK是须要替换为实际数据库的字符集设置

    7、參数文件里压缩參数
    1> RMTHOST *.*.*.*, MGRPORT 7839, compress
    这里compress一定要配置,加快传输速度,降低datapump的延迟

    9、容灾端入库性能优化
    1> 无主键表建议添加主键或唯一索引
    2> 将大表单独拆分为独立的进程,添加參数:
    BATCHSQL


    OGG怎样跳过长事务?
    GGSCI (cdla6702.netjets.com) 13> send extract EXT1I2D4, showtrans
    Sending SHOWTRANS request to EXTRACT EXT1I2D4 ...
    Oldest redo log file necessary to restart Extract is:

    Redo Log Sequence Number 4762, RBA 77272080
    -----------------------------------------------------------
    XID: 3.9.209025
    Items: 0
    Extract: EXT1I2D4
    Redo Thread: 1
    Start Time: 2014-03-22:00:11:06
    SCN: 14.1966161432 (62095703576)
    Redo Seq: 4762
    Redo RBA: 77272080
    Status: Running

    send extract EXT1I2D4, skiptrans 3.9.209025   ---->>>此处应该为XID。不是SCN


    Question
        Can I turn on the Oracle Supplemental Log at the DB Level only, without doing it at the Table Level?


    Answer
        GoldenGate requires adding Supplemental Logging at the Table Level, regardless of the Database Supplemental setting, due to issues with Multiple Unique Keys and/or lack of Keys.

        It is highly recommended to use "ADD TRANDATA" under the GGSCI interface.  If using the SQL command to add Supplemental Logging at the Table Level, ALL the keys should be included (ex.  2 separate Unique Keys are all required).


    怎样打开附加日志:
    To turn on supplemental logging at the database level, GoldenGate requires this command to be executed:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

    This change to add supplemental logging will not take effect until the current redo log is switched, so the following command must also be executed:

    ALTER SYSTEM SWITCH LOGFILE.

    (Note: You must have the ALTER DATABASE and ALTER SYSTEM privileges to execute the above sql statements.)

    To turn on supplemental logging at the table level, you can execute this command:

    alter table <table_name> add supplemental log group ggs_mytab (<column_name>, <column_name>) always;

    (Note: You must have the ALTER TABLE privilege to execute the above sql statement.)

    Or you can turn on supplemental logging through GGSCI with this command:

    GGSCI> dblogin userid <user>, password <pw>

    GGSCI> add trandata <schema>.<table>

    怎样确定附加日志是否打开:
    1> 数据库级别
    select SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI, FORCE_LOGGING from v$database;

    2> 表级别
    select * from dba_log_groups where OWNER='<schema_name_in_upper_case>' and TABLE_NAME='<table_name_in_upper_case>';
     ---假设有数据返回,则说明附加日志已经打开。反之没有打开

    For a particular table, you can find which columns are part of the Supplemental Log group with the query below:

    select LOG_GROUP_NAME, COLUMN_NAME, POSITION from 
    dba_log_group_columns
    where OWNER='<schema_name_in_upper_case>' and 
    TABLE_NAME='<table_name_in_upper_case>'
    order by position;

    For a particular table, you can find out if Supplemental Logging is turned on through GGSCI with the commands below:

    GGSCI> dblogin userid <user>, password <pw>
    GGSCI> info trandata <schema>.<table>

    select distinct a.sql_id,a.event,b.sql_text from v$session a,v$sql b where  a.username='GGUSER' and a.program like 'replicat%'
    and a.status='ACTIVE' and a.sql_id=b.sql_id;


    -----------------自己整理的
  • 相关阅读:
    实验七:类的多态性
    实验六:类的封装(P105 3-35)
    实验五:任意输入10个int类型数据,排序输出,再找出素数
    第三周学习总结
    hbase对Java的简单操作
    hbase的shell命令
    需求工程3
    需求工程2
    软件需求1
    认识软件需求
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5285268.html
Copyright © 2011-2022 走看看