Oracle权限配置(Xstream)
Oracle 数据源权限配置(Xstream)
Xstream 方式权限配置
CDC(Change Data Capture),即数据变更抓取,通过为源端数据源开启CDC,作业可实现数据源的实时数据同步。
本章节主要介绍如何为oracle数据库开启Xstream方式CDC功能。
本文以非CDB 数据库作为案例进行说明,需要注意的是如果数据库为CDB数据库时,在用户分配的命令可能存在差异,一般情况下,角色使用 C##角色名 即可
前提条件
Oracle 数据库为11g 以上版本
Oracle数据库需具备OGG License(无需安装OGG)
若Oracle数据库为主从模式,不支持使用Oracle从库。
不支持采集二进制类型的字段,例如:BINARY,VARBINARY,TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB
操作步骤
建议由数据库管理员对数据源配置进行操作
必须为Oracle数据库启用日志归档,并为Debezium Oracle连接器监视的所有数据库定义一个具有适当权限的Oracle用户
开启日志归档和XStream
a. 在命令行工具中执行以下命令以sys用户连接到数据库。在实际使用过程中,可以有多种方式连接数据库,此处以命令行方式为例进行说明。sqlplus /nolog CONNECT sys/password@host:port AS SYSDBA;
b. 执行以下命令开启Xstream
alter system set enable_goldengate_replication=true;
c. 执行以下命令,检查日志归档是否已开启
archive log list; 若回显打印“Database log mode: No Archive Mode”,说明日志归档未开启,继续执行下一步。 若回显打印“Database log mode: Archive Mode”,说明日志归档已开启,直接跳到 g。
d. 执行以下命令配置归档日志参数
alter system set db_recovery_file_dest_size = 100G; alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile; 100G为日志文件存储空间的大小,请根据实际情况设置。 /opt/oracle/oradata/recovery_area为日志存储路径,请根据实际规划设置,但须确保路径提前创建。
e. 执行以下命令开启日志归档
shutdown immediate; startup mount; alter database archivelog;
f. 执行以下命令,确认日志归档是否已成功开启
archive log list; 当回显打印“Database log mode: Archive Mode”,说明日志归档已开启。
g. 退出连接
`exit;`
创建XStream用户并给用户赋予权限
a. 在命令行工具中执行以下命令以sys用户连接到数据库实例。
sqlplus sys/password@host:port/SID as sysdba
b.执行以下命令创建XStream管理员用户并配置权限。
CREATE TABLESPACE xstream_adm_tbs DATAFILE '/opt/oracle/oradata/orcl/xstream_adm_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; CREATE USER xstrmadmin IDENTIFIED BY password DEFAULT TABLESPACE xstream_adm_tbs QUOTA UNLIMITED ON xstream_adm_tbs; GRANT CREATE SESSION TO xstrmadmin; BEGIN DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE( grantee => 'xstrmadmin', privilege_type => 'CAPTURE', grant_select_privileges => TRUE, container => 'ALL' ); END; 其中: xstream_adm_tbs为XStream管理员用户的表空间名,请根据实际规划设置。 /opt/oracle/oradata/orcl/xstream_adm_tbs.dbf为XStream管理员用户的表空间文件,请根据实际规划设置。 xstrmadmin为XStream管理员用户名,请根据实际规划设置。 password为XStream管理员用户密码,请根据实际规划设置。 “container => 'ALL'”仅当Oracle为12c或以上版本时,才需要添加,否则删除此行内容。
c. 执行以下命令创建CDC Connect连接数据库的用户并配置权限。
CREATE TABLESPACE xstream_tbs DATAFILE '/opt/oracle/oradata/orcl/xstream_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; CREATE USER xstrm IDENTIFIED BY password DEFAULT TABLESPACE xstream_tbs QUOTA UNLIMITED ON xstream_tbs; GRANT CREATE SESSION TO xstrm; GRANT SELECT ON V_$DATABASE to xstrm; GRANT FLASHBACK ANY TABLE TO xstrm; GRANT SELECT ANY TABLE to xstrm; GRANT LOCK ANY TABLE TO xstrm; grant select_catalog_role to xstrm; 其中:x stream_tbs为CDC Connect连接用户的表空间名,请根据实际规划设置。 /opt/oracle/oradata/orcl/xstream_tbs.dbf为CDC Connect连接用户的表空间文件,请根据实际规划设置。 xstrm为CDC Connect连接用户名,请根据实际规划设置。 password为CDC Connect连接用户密码,请根据实际规划设置。
d. 执行以下命令修改日志记录参数。
alter database add supplemental log data (all) columns;
e. 退出连接
`exit;`
创建XStream出站服务器。
一个XStream出站服务器只能在一个任务中使用,若该数据库需要用于多个任务,需创建多个XStream出站服务器。a.在命令行工具中执行以下命令以xstrmadmin用户连接到数据库实例。
sqlplus xstrmadmin/password@host:port/SID
b.执行以下命令创建XStream出站服务器。
DECLARE tables DBMS_UTILITY.UNCL_ARRAY; schemas DBMS_UTILITY.UNCL_ARRAY; BEGIN tables(1) := NULL; schemas(1) := 'CDC'; DBMS_XSTREAM_ADM.CREATE_OUTBOUND( server_name => 'dbzxout', table_names => tables, schema_names => schemas ); END; 其中: CDC为要同步数据表所在的schemas,即CDC需要抓取哪个schemas下的数据,请根据实际情况设置。 dbzxout为出站服务器名称,需保证唯一,请根据实际规划设置。
c. 退出连接
`exit;`
d. 执行以下命令以sys用户连接到数据库实例
sqlplus sys/password@host:port/SID as sysdba
e. 执行以下命令允许xstrm用户连接XStream出站服务器。
BEGIN DBMS_XSTREAM_ADM.ALTER_OUTBOUND( server_name => 'dbzxout', connect_user => 'xstrm' ); END; 其中: dbzxout为出站服务器名称,在3.b中设置。 xstrm为CDC Connect连接用户名,在2.c中设置。
f. 退出连接
`exit;`
Xstream客户端配置
CDC作业运行时,需要通过Xstream client 去获取数据,因此需要在yarn 集群所在机器进行客户端的安装
a.下载oracle的instantclient客户端
进入下载页面,根据操作系统以及oracle版本选择合适的package包,建议下载客户端版本 instantclient_19_13。
解压后的包结构如下
```
instantclient_XX_X/
├── adrci
├── BASIC_LITE_LICENSE
├── BASIC_LITE_README
├── genezi
├── libclntshcore.so -> libclntshcore.so.21.1
├── libclntshcore.so.12.1 -> libclntshcore.so.21.1
...
├── ojdbc8.jar
├── ucp.jar
├── uidrvci
└── xstreams.jar
```
b. 机器环境配置
● linux
使用root用户权限将目录里内容复制到/usr/lib64下
平台数据源添加注意事项
a. cdc任务数据同步方式选用xstream时,需要在数据源管理新增oracle 数据源时,增加Xstream 出站服务器的账号密码配置
单击加号,填入如下两个key,如下图:
xstream.password
xstream.user