zoukankan      html  css  js  c++  java
  • OGG-集成模式抽取与数据库参数streams_pool_size关系

    一、学习目标

       Oracle数据库,使用OGG集成模式抽取进程启动时,如果没有配置合理的streams_pool_size参数可能会过一段时间就报错abend!

        那么我们如何配置这个参数的大小?如何计算?

    二、参考文档

        从OGG官网检索这个DB参数,没有看到合理的建议信息!

     2.1 MOS

    OGG-02045: Database does not have streams_pool_size initialization parameter configured.
    The database initialization parameter streams_pool_size is not set correctly to support integrated capture.
    Set database initialization parameter streams_pool_size. For sizing recommendations, see the Oracle GoldenGate reference
    documentation. Integrated Extract
    / Replicat and STREAMS_POOL_SIZE (Doc ID 2078459.1) Oracle GoldenGate - Version 11.2.1.0.0 and later GOAL What is the recommended STREAMS_POOL_SIZE for Integrated Extract (IE) and Integrated Replicat (IR) SOLUTION The ogg reference guide recommends to have 1GB STREAMS_POOL_SIZE per integrated extract + additional 25 percent Snippet from ogg oracle install guide http://docs.oracle.com/goldengate/1212/gg-winux/GIORA.pdf ------------------------------------------------------ By default, one integrated capture Extract requests the logmining server to run with MAX_SGA_SIZE of 1GB and a
    PARALLELISM of 2. Thus, if you are running three Extracts in integrated capture mode in the same database instance,
    you need at least 3 GB of memory allocated to the Streams pool. As best practice, keep 25 percent of the Streams pool available.
    For example, if there are three Extracts in integrated capture mode, set STREAMS_POOL_SIZE to the following: 3 GB + (3 GB * 0.25) = 3.75 GB --------------------------------------- The Integrated replicat also needs to have 1GB STREAMS_POOL_SIZE per process and additional 25 percent though it
    is not been explicitly mentioned in the guides. 推荐集成捕获进程数量+ 集成捕获数量*0.25, 默认1个进程1G!

    2.2 相关文档

    https://www.oracle-scn.com/memory-requirement-for-oracle-goldengate-integrated-extract/

         

    1. OGG集成模式与数据库内存区域streams_pool_size之间的关系
    集成模式的情况下,是从streams_pool中申请内存区域,Streams_pool是Oracle SGA内存的一个组件,streams_pool中,
    申请的内存大小取决于有多少个integrated extract的进程数量,以及考虑其它的进程!
    2.抽取进程参数 TRANLOGOPTIONS INTEGRATEDPARAMS(max_sga_size 100, parallelism 1) 上述参数中,max_sga_size 代表的是streams pool size 的大小! 非db 参数sga_max_size 3.DB参数streams_pool_size 调整多大? 1> streams_pool_size >1g,则ogg 占用的max_sga_size=1g; 如果streams_pool_size <=1g,则ogg 占用的max_sga_size = streams_pool_size*75%; 2> 默认没设置streams_pool_size 参数大小!则max_sga_size(streams size)占用shared_pool_size 10%,最大1G, 因此!需要考虑shared pool大小! 3> 使用动态SGA,则可以通过查询视图v$sga_dynamic_components获取streams_pool的使用情况!

    2.3 相关报错

    OGG-02050 Not enough database memory to honor requested MAX_SGA_SIZE
    OGG-02077: Extract encountered a read error in the asynchronous reader thread and is abending: {0}

    三、小结

    建议使用集成模式抽取的情况下,设置数据库参数

    STREAMS_POOL_SIZE ,参数大小= 抽取进程的数量*1G +抽取进程数量*1G*0.25 
    (1G代表分配给每个抽取进程的内存,25%是给每个抽取进程streams size 考虑的空闲空间)
    另外就是文档中的各种举例都是写的是集成抽取,集成复制方面并没明确说明! 但是MOS文档的包含范围加上了集成复制!
    因此站在安全的角度也是考虑同样的分配! 当然如果系统不是特别重要,很多细节可以忽略,报错在处理也是一样的。
  • 相关阅读:
    主键、外键
    框架学习八:Model查询
    框架学习七:自动验证、填充、字段映射
    框架学习六:ORM方式添加数据
    11.0 C++远征:对象指针
    10.0 C++远征:深拷贝与浅拷贝
    9.0 C++远征:对象成员
    8.0 C++远征:对象数组
    7.0 C++远征:封装小结
    2.0 C++远征:类内定义与内联函数
  • 原文地址:https://www.cnblogs.com/lvcha001/p/14653733.html
Copyright © 2011-2022 走看看