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   作者:程少波