1 源库配置

1.1 创建用户及赋权

1.1.1 容器模式

CREATE TABLESPACE ZCTBS DATAFILE '数据文件路径/ZCTBS.DBF' SIZE 100M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
CREATE USER ZCBUS_USER IDENTIFIED BY ZCBUS_PASSWD DEFAULT TABLESPACE ZCTBS QUOTA UNLIMITED ON ZCTBS;

GRANT CREATE SESSION TO ZCBUS_USER;
GRANT RESOURCE TO ZCBUS_USER;
GRANT SELECT ANY TABLE TO ZCBUS_USER;
GRANT SELECT ANY DICTIONARY TO ZCBUS_USER;
GRANT SELECT_CATALOG_ROLE TO ZCBUS_USER;

注:12C的CDB模式zcbus_user要以c##开头

1.1.2 非容器模式

需要创建CDB用户/PDB用户两种
CDB用于分析日志,PDB用户PDB中数据导出
  • 创建cdb用户
    (web配置页面中集群管理的db_type,db_name,host,user,password等信息添加cdb信息)
    SQLPLUS SYS/PASSWORD@HOST:PORT/sid AS SYSDBA
    CREATE USER c##ZCBUS_USER IDENTIFIED BY ZCBUS_USER;
    ALTER USER C##ZCBUS_USER QUOTA 100M USERS;
    GRANT CREATE SEESION TO C##ZCBUS_USER container=all;
    GRANT RESOURCE TO C##ZCBUS_USER container=all;
    GRANT SELECT ANY TABLE TO C##ZCBUS_USER container=all;
    GRANT SELECT ANY DICTIONARY TO C##ZCBUS_USER container=all;
    GRANT SELECT ON SYS.USER$ TO C##ZCBUS_USER container=all;
    GRANT SELECT ON SYS.COL$ TO C##ZCBUS_USER container=all;
    GRANT SELECT ON SYS.OBJ$ TO C##ZCBUS_USER container=all;
    GRANT SELECT_CATALOG_ROLE TO C##ZCBUS_USER container=all;
  • 创建pdb用户
    (web配置页面中集群管理的source_db_name,source_host,source_user,source_passwd填写pdb信息)
    aLTER SESSION SET CONTAINER=PDB01;
    CREATE USER ZCBUS_USER IDENTIFIED BY ZCBUS_PASSWD DEFAULT TABLESPACE ZCTBS QUOTA UNLIMITED ON ZCTBS;
    GRANT CREATE SESSION TO ZCBUS_USER;
    GRANT RESOURCE TO ZCBUS_USER;
    GRANT SELECT ANY TABLE TO ZCBUS_USER;
    GRANT SELECT ANY DICTIONARY TO ZCBUS_USER;
    GRANT SELECT ON SYS.USER$ TO ZCBUS_USER;
    GRANT SELECT ON SYS.COL$ TO ZCBUS_USER;
    GRANT SELECT ON SYS.OBJ$ TO ZCBUS_USER;
    GRANT SELECT_CATALOG_ROLE TO ZCBUS_USER;
    GRANT FLASHBACK ANY TABLE TO ZCBUS_USER;
    GRANT LOCK ANY TABLE TO ZCBUS_USER;
    GRANT SELECT_CATALOG_ROLE TO ZCBUS_USER;

1.2 发布服务配置

1.2.1 数据库配置

  • 普通配置
    SQLPLUS / AS SYSDBA
    ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE;
    ALTER SYSTEM SET OPEN_CURSORS = 3000;
    BEGIN
     DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
        GRANTEE                 => 'ZCBUS_USER',
        PRIVILEGE_TYPE          => 'CAPTURE',
        GRANT_SELECT_PRIVILEGES => TRUE);
    END;
    /
    #ENABLE_GG_XSTREAM_FOR_STREAMS
    BEGIN 
          DBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMS(TRUE);
    END;
  • 12C及以上 CDB模式配置
    BEGIN
     DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
        GRANTEE                 => 'C##ZCBUS_USER',
        PRIVILEGE_TYPE          => 'CAPTURE',
        GRANT_SELECT_PRIVILEGES => TRUE,
        CONTAINER               => 'ALL');
    END;
    /

1.2.2 开启补充加日志

SQLPLUS / AS SYSDBA
ALTER TABLE 数据库名.表名 ADD SUPPLEMENTAL LOG DATA(ALL) COLUMNS; # 表级别
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; # 库级别最小日志
  • 根据实际情况选择添加附加日志级别
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA(ALL) COLUMNS; # 库级别

1.2.3 使用创建用户连接进行数据参数配置

sqlplus zcbus_user/zcbus_passwd

注:12C的CDB模式zcbus_user要以c##开头【CDB用户】

1.2.4 创建xout服务

【创建服务的时候,需要所有的PDB处于OPEN状态才可以(可以视情况临时开启所有关闭的PDB)】

DECLARE
    TABLES  DBMS_UTILITY.UNCL_ARRAY;
    SCHEMAS DBMS_UTILITY.UNCL_ARRAY;
  BEGIN
TABLES(1) :='ZCBUS_USER.TAB1'; 
    SCHEMAS(1) := NULL;
    DBMS_XSTREAM_ADM.CREATE_OUTBOUND(
    SERVER_NAME     =>  'XOUT',
    TABLE_NAMES     =>  TABLES,
    SCHEMA_NAMES    =>  SCHEMAS);
END;
/

2 补充说明

2.1 调整优化参数

DECLARE
  CURSOR C_CAP IS SELECT CAPTURE_NAME FROM DBA_CAPTURE;
 BEGIN
  FOR C IN C_CAP LOOP
    DBMS_CAPTURE_ADM.SET_PARAMETER(CAPTURE_NAME=>C.CAPTURE_NAME,
PARAMETER=>'INLINE_LOB_OPTIMIZATION',VALUE=>'y');
DBMS_CAPTURE_ADM.ALTER_CAPTURE(CAPTURE_NAME=>C.CAPTURE_NAME,
CHECKPOINT_RETENTION_TIME=>1/24);
  END LOOP;
 END;
 /

至少添加一个表,用户名,表名可以不存在【保证服务正常】

2.2 数据类型支持列表

ORACLE字段类型 字段描述 是否支持
CHAR 固定长度字符串,最大长度2000bytes 是
VARCHAR2 可变长度的字符串, 最大长度4000bytes 是
NCHAR 根据字符集而定的固定长度字符串,最大长度2000bytes 是
NVARCHAR2 根据字符集而定的可变长度字符串,最大长度4000bytes 是
DATE 日期(日-月-年),DD-MM-YY(HH-MI-SS),经过严格测试,无千虫问题 是
TIMESTAMP 日期(日-月-年),DD-MM-YY(HH-MI-SS:FF3),经过严格测试,无千虫问题 是
TIMESTAMP WITH LOCAL TIME ZONE 日期(日-月-年),该类型会转换成数据的时区来保存数据, 即在数据库中保存的时间是数据库本地的时区. 当别的地方用户访问数据库时在显示该类型数据时Oracle会将该时区转换成客户端的时间来显示. 在数据库中保存占7到11字节 是
TIMESTAMP WITH TIME ZONE 日期(日-月-年),保存的是0时区的时间,和所处的时区信息,IMESTAMP WITH TIME ZONE保存的是当前时间转化到0时区的对应的时间,并通过最后两位来保存时区信息 是
LONG 超长字符串 ,最大长度2G,足够存储大部头著作 是
RAW 固定长度的二进制数据,最大长度2000bytes 是
LONG RAW 可变长度的二进制数据,最大长度2G 是
BLOB 二进制数据 ,最大长度4G 是
CLOB 字符数据 ,最大长度4G 是
NCLOB 根据字符集而定的字符数据,最大长度4G 是
NUMBER(P,S) 数字类型,P为整数位,S为小数位 是
DECIMAL(P,S) 数字类型,P为整数位,S为小数位 是
INTEGER 整数类型,小的整数 是
FLOAT 浮点数类型,NUMBER(38),双精度 是
REAL 实数类型,NUMBER(63),精度更高 是
XMLTYPE XML类型,存储XML类型 支持
TYPE 自定义数据类型,自定义UDT字段,以及地图位置等数据类型暂不支持 不支持
BFILE 二进制数据类型,BFILE字段存放指向操作系统文件的指针,外部的lob类型,存储在数据库外的操作系统文件 不支持
文档更新时间: 2024-03-20 17:53   作者:程少波