Oracle GoldenGate19c & Oracle GoldenGate Veridata12c 实验(一)

Oracle GoldenGate19c & Oracle GoldenGate Veridata12c 实验

  **概述**                                  

文档类别 测试文档
文档时间 2021-02
文档标题 对Oracle GoldenGate及Ogg Veridata功能验证(一)
作者 Ora_Ckpt_Lu
  **目的**                                  

1.Oracle GoldGate 19c使用集成抽取模式是否能够应用至Oracle database 11.2.0.4.0;
2.使用Oracle GoldGate 19c集成抽取、集成复制对CLOB,BLOB,LONG,XML数据类型支持程度;
3.Oracle GoldenGate veridata 数据验证工具对Oracle GoldenGate同步数据一致性校验真实性;
4.Oracle GoldenGate veridata 数据验证工具对Out-of-sync数据的修复方法可行性;

   **结果**                                 

1、Oracle GoldenGate 19c集成抽取模式可以适用于Oracle database 11.2.0.4.0未打补丁版本,
官方推荐如果适用集成抽取则需要打一些推荐补丁,本实验环境未应用任何数据库补丁

2、Oracle GoldenGate 19c集成抽取模式对Oracle数据库表含有CLOB,BLOB,XML数据类型是支持的,
但是对于LONG对象类型表存在同步丢失内容(丢失long列的字节长度)问题,具体原因还在继续排查

3、使用Oracle GoldenGate veridata 数据验证工具可以运行在没有Oracle
GoldenGate同步环境中,支持异构数据
数据比较,数据比对效率高,通过主键以及其他列hash比较方式进行数据一致性比较,同时支持Oracle lob之间快速比较

4、使用Oracle GoldenGate veridata 数据验证工具 可以对源与目标数据不一致的地方进行数据修复,数据修复同样适用于
Oracle lob类型,并且高效,可以用作同步时对同步失败表进行修复,但是需要做大量预先定义工作。

   **目录**                                 

一、环境准备

1.主机规划

在这里插入图片描述

2.数据准备

使用Python的Cx_Oracle模块创建相关表

#-*- coding:utf-8 -*-
import cx_Oracle
import os
import sys
os.environ['NLS_LANG']='SIMPLIFIED CHINESE_CHINA.UTF8'


def CrtTab(conn):
    cursor = conn.cursor()
    #创建BLOB表
    sqlstr1 = '''
            CREATE TABLE TAB_BLOB(
            name  VARCHAR2(24) primary key,
            content  BLOB
            )
              '''
    #创建CLOB表   
    sqlstr2 = """
            CREATE TABLE TAB_CLOB(
            name  VARCHAR2(24) primary key,
            content  CLOB
            )
              """  
      #创建LONG表   
    sqlstr3 = """
            CREATE TABLE TAB_LONG(
            name  VARCHAR2(24) primary key,
            content  LONG
            )
              """           
        #创建XML表   
    sqlstr4 = """
            CREATE TABLE TAB_XML(
            id  VARCHAR2(24) primary key,
            content  xmltype
            )
              """        
    cursor.execute(sqlstr1)
    cursor.execute(sqlstr2)
    cursor.execute(sqlstr3)
    cursor.execute(sqlstr4)
    cursor.close()            
def main():
    conn = cx_Oracle.connect('scott', 'scott', '192.168.3.103:1521/pri')
    print("已连接到数据库pri!")
    CrtTab(conn)
    print("已创建相关表!")
    conn.close()
    
if __name__ == '__main__':
    main()  
  • 使用python插入原始数据
#-*- coding:utf-8 -*-
import cx_Oracle
import os
import sys
os.environ['NLS_LANG']='SIMPLIFIED CHINESE_CHINA.UTF8'





def IstTab(conn):
    cursor = conn.cursor()
    #将本地图片插入TAB_BLOB
    path = 'E:\\人社厅硬件交接\\巡检\\巡检报告\\7月2日巡检\\5500\\'
    for file in os.listdir(path):
        name = file
        content = open(path + file,'rb')
        content = content.read()
        sqlstr = "insert into tab_blob(name,content) values('%s',:blobData)" %(file)
        cursor.setinputsizes(blobData=cx_Oracle.BLOB)
        cursor.execute(sqlstr,{
   'blobData':content})
        cursor.execute('commit')
    #将本地文本文件插入TAB_CLOB
    path1 = 'E:\工作\手记\\'
    for file in os.listdir(path1):
        name = file
        content = open(path1 + name, 'rb')
        content = content.read()
        sqlstr = "insert into tab_clob(name,content) values('%s',:clobData)" % (file)
        cursor.setinputsizes(clobData=cx_Oracle.CLOB)
        cursor.execute(sqlstr, {
   'clobData': content}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值