• Flink connector Oracle CDC 实时同步数据到MySQL(Oracle12c)


    接上一篇文档《Flink connector Oracle CDC 实时同步数据到MySQL(Oracle19c)》上次说的是Oracle19c版的配置方式。在数据同步的过程中遇到了读取数据延迟的情况,需要进行如下配置:

    'debezium.log.mining.strategy'='online_catalog',
    'debezium.log.mining.continuous.mine'='true'
    
    • 1
    • 2

    可是Oracle19c取消了该组件的配置。后面换了Oracle12c版,CDC的配置稍有不同。
    不同点在创建用户和授权的地方,需要做一些调整不然在Flink中调用 DBMS_LOGMNR.START_LOGMNR 时出现“用户不存在”的问题。

    Error report - ORA-01435: user does not exist ORA-06512: at
    “SYS.DBMS_LOGMNR”, line 72 ORA-06512: at line 3
    01435. 00000 - “user does not exist”
    *Cause:
    *Action:

    12c的配置如下:

    --create C##family user on CDB
    CREATE USER C##family IDENTIFIED BY family DEFAULT TABLESPACE LOGMINER_TBS QUOTA UNLIMITED ON LOGMINER_TBS ACCOUNT UNLOCK;
    
    -- allow access to all PDBs to the C##family user
    ALTER USER C##family SET CONTAINER_DATA=ALL CONTAINER=CURRENT
    
    -- grant needed permissions
    GRANT DBA to C##family                             ;
    GRANT CREATE SESSION TO C##family                  ;
    GRANT CREATE TABLE TO C##family                    ;
    GRANT EXECUTE_CATALOG_ROLE TO C##family            ;
    GRANT EXECUTE ON DBMS_LOGMNR TO C##family          ;
    GRANT SELECT ON V_$DATABASE TO C##family           ;
    GRANT SELECT ON V_$LOGMNR_CONTENTS TO C##family    ;
    GRANT SELECT ON V_$ARCHIVED_LOG TO C##family       ;
    GRANT SELECT ON V_$LOG TO C##family                ;
    GRANT SELECT ON V_$LOGFILE TO C##family            ;
    GRANT RESOURCE, CONNECT TO C##family               ;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    12c的坑还挺多,有以下问题:

    1. 创建用户的时候会提示”空间不存在“,12c和19c不一样,12c的CDB和PDB要分别创建表空间;
      在PDB中创建表空间:
      查看当前容器:show con_name --查看当前容器;
      切换容器到PDB:alter session set container=ORCLSPDB; --转换容器到PDB
      切换PDB到容器:alter session set container=CDB$ROOT; --转换容器到CDB
      注意:文件名不能和CDB中的一样,如果在不同目录的话没有关系。
    2. Oracle重启之后连不上了,由于从12开始引入了CDB和PDB,在重启的时候只会默认打开CDB,PDB还处于mount,需要手动开启:
      show pdbs; //查询数据库的所有PDB
      alter pluggable database orclpdb open; //修改可插拔库orclpdb打开状态
      有个一步到位的命令:alter pluggable database all open;–直接打开所有的PDB

    贴点命令吧:
    删除用户和表空间:

    SQL> drop user jack cascade;
    SQL> drop tablespace school including contents and datafiles;
    
    • 1
    • 2
  • 相关阅读:
    Vue项目引入腾讯地图,实现可以根据关键词搜出相关位置,并定位到该位置
    Ubuntu/Linux系统安装(非虚拟机)
    【Linux】:Kafka组件介绍
    如何利用数字创新使您的企业脱颖而出
    微信小程序云开发教程——墨刀原型工具入门(常用组件)
    还不知道图片去水印怎么去?看看这篇文章就知道了
    通过 ffmpeg命令行 调节视频播放速度
    Spring AOP
    电脑重装系统Win10关闭网速限制的方法
    4个视频教你正确使用华为云代码托管服务CodeArts Repo!
  • 原文地址:https://blog.csdn.net/qq_23502409/article/details/126040480