zoukankan      html  css  js  c++  java
  • Zero Downtime Upgrade of Oracle 10g to Oracle 11g Using GoldenGate — 2

    Prepare 10g Database for OGG

    Create GGS and GGS_MON Database Users

    SQL> create tablespace ggs_tbs datafile '/u01/app/oracle/oradata/zwc/gg_tbs01.dbf' size 100M;

    Tablespace created.

    SQL> create user ggs identified by ggs default tablespace ggs_tbs temporary tablespace temp;

    User created.

    SQL> grant dba to ggs;

    Grant succeeded.

    SQL> create user ggs_mon identified by ggs_mon default tablespace ggs_tbs temporary tablespace temp;

    User created.

    SQL> grant connect,resource to ggs_mon;

    Grant succeeded.

     

    Enable Database Level Supplemental Logging

    SQL> select name,supplemental_log_data_min from v$database;

    NAME      SUPPLEME
    ——— ——–
    ZWC       NO

    SQL> alter database add supplemental log data;

    Database altered.

    SQL> alter system switch logfile;

    System altered.

    SQL> select name,supplemental_log_data_min from v$database;

    NAME      SUPPLEME
    ——— ——–
    ZWC       YES

     

    Enable Force Logging

    SQL> select force_logging from v$database;

    FOR

    NO

    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount
    ORACLE instance started.

    Total System Global Area  281018368 bytes
    Fixed Size                  2083336 bytes
    Variable Size             155190776 bytes
    Database Buffers          117440512 bytes
    Redo Buffers                6303744 bytes
    Database mounted.
    SQL> alter database force logging;

    Database altered.

    SQL> alter database open;

    Database altered.

    SQL> select force_logging from v$database;

    FOR

    YES

     

    Check Table-Level Supplemental Logging

    SQL> select t.owner,
      2         t.tbl_cnt,
      3         s.sup_log_grp_cnt,
      4         t.tbl_cnt – s.sup_log_grp_cnt "Diff"
      5    from (select owner, count(*) tbl_cnt from dba_tables group by owner) t,
      6         (select owner, count(*) sup_log_grp_cnt
      7            from dba_log_groups
      8           group by owner) s
      9   where t.owner = s.owner(+)
     10     and t.owner in ('HR', 'OE', 'PM');

    OWNER    TBL_CNT SUP_LOG_GRP_CNT       Diff
    —– ———- ————— ———-
    HR             7
    PM             2
    OE            12

     

    If you are planning to use sqlplus then you can use commands like:

    alter database <table_name> add supplemental log data (all) columns;

    alter database <table_name> add supplemental log data (primary key) columns;

    For this demo,we will use Oracle GoldenGate command interface to add table level supplemental logging.The command from ggsci interface is "add trandata <table_name>".

    [oracle@zwc ggs]$ sqlplus ggs

    SQL*Plus: Release 10.2.0.4.0 – Production on Thu Jun 5 22:01:53 2014

    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

    Enter password: 

    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    SQL> spool add_trandata.oby
    SQL> set linesize 150 pagesize 0 feedback off
    SQL> spool add_missing_trandata.oby
    SQL> select 'add trandata ' || t.owner || '.' || t.table_name stmt
      2    from (select owner, table_name from dba_tables) t,
      3         (select owner, table_name from dba_log_groups) s
      4   where t.owner = s.owner(+)
      5     and t.table_name = s.table_name(+)
      6     and s.table_name is null
      7     and t.owner in ('HR', 'OE', 'PM');
    add trandata HR.REGIONS
    add trandata HR.LOCATIONS
    add trandata HR.DEPARTMENTS
    add trandata HR.JOBS
    add trandata OE.WAREHOUSES
    add trandata OE.ORDER_ITEMS
    add trandata OE.ORDERS
    add trandata OE.PRODUCT_INFORMATION
    add trandata OE.PROMOTIONS
    add trandata OE.SYS_IOT_OVER_52810
    add trandata OE.SYS_IOT_OVER_52815
    add trandata OE.PRODUCT_REF_LIST_NESTEDTAB
    add trandata OE.SUBCATEGORY_REF_LIST_NESTEDTAB
    add trandata HR.COUNTRIES
    add trandata PM.ONLINE_MEDIA
    add trandata PM.PRINT_MEDIA
    add trandata OE.CUSTOMERS
    add trandata HR.JOB_HISTORY
    add trandata OE.PRODUCT_DESCRIPTIONS
    add trandata OE.INVENTORIES
    add trandata HR.EMPLOYEES
    SQL> spool off

     

    [oracle@zwc ggs]$ ggsci 

    Oracle GoldenGate Command Interpreter for Oracle
    Version 11.2.1.0.6 16211226 OGGCORE_11.2.1.0.6_PLATFORMS_130418.1829_FBO
    Linux, x64, 64bit (optimized), Oracle 10g on Apr 18 2013 22:43:23

    Copyright (C) 1995, 2013, Oracle and/or its affiliates. All rights reserved.

    GGSCI (zwc) 1> dblogin userid ggs password ggs
    Successfully logged into database.

    GGSCI (zwc) 2> obey ./diroby/add_missing_trandata.oby

    GGSCI (zwc) 3> add trandata HR.REGIONS                                                                                                                               

    Logging of supplemental redo data enabled for table HR.REGIONS.

    GGSCI (zwc) 4> add trandata HR.LOCATIONS                                                                                                                             

    Logging of supplemental redo data enabled for table HR.LOCATIONS.

    GGSCI (zwc) 5> add trandata HR.DEPARTMENTS                                                                                                                           

    Logging of supplemental redo data enabled for table HR.DEPARTMENTS.

    GGSCI (zwc) 6> add trandata HR.JOBS                                                                                                                                  

    Logging of supplemental redo data enabled for table HR.JOBS.

    GGSCI (zwc) 7> add trandata OE.WAREHOUSES    

     

    SQL> select t.owner,
      2         t.tbl_cnt,
      3         s.sup_log_grp_cnt,
      4         t.tbl_cnt – s.sup_log_grp_cnt "Diff"
      5    from (select owner, count(*) tbl_cnt from dba_tables group by owner) t,
      6         (select owner, count(*) sup_log_grp_cnt
      7            from dba_log_groups
      8           group by owner) s
      9   where t.owner = s.owner(+)
     10     and t.owner in ('HR', 'OE', 'PM');

    OWNER                             TBL_CNT SUP_LOG_GRP_CNT       Diff
    —————————— ———- ————— ———-
    HR                                      7               7          0
    OE                                     12               8          4
    PM                                      2               2          0

     

    Create Tables for Heartbeat

    SQL> create table ggs_mon.ggs_heartbeat(id number,ts date);

    Table created.

    SQL> insert into ggs_mon.ggs_heartbeat values(1,sysdate);

    1 row created.

    SQL> commit;

    Commit complete.

    SQL> create table ggs_mon.ggs_lagtime
      2  (id number,
      3  ts date,
      4  committime date,
      5  groupname varchar2(8),
      6  host varchar2(60),
      7  local_insert_time date);

    Table created.

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    博弈最高位POJ 1704(Georgia and BobNim博弈)
    图片优化ios学习之真机测试 copy图片错误解决方案
    输入左移校草计划(Nim)
    类型函数C语言void关键字
    图层设置GDAL/OGR创建DXF文件中多图层的方法
    浏览器下载Firefox os 模拟器安装教程步骤详解
    工程图标ios学习之给程序设置logo
    实例收藏Android开发环境搭建和Android开发基础知识汇总值得收藏
    乱码插入mac mysql汉字乱码问题解决
    菜菜从零学习WCF一(WCF概述)
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4842813.html
Copyright © 2011-2022 走看看