Oracle 权限配置(Logminer)
Oracle 数据源权限配置(Logminer)
Logminer 方式权限配置
CDC(Change Data Capture),即数据变更抓取,通过为源端数据源开启CDC,作业可实现数据源的实时数据同步。
本章节主要介绍如何为oracle数据库开启Logminer方式CDC功能。
本文以非CDB 数据库作为案例进行说明,需要注意的是如果数据库为CDB数据库时,在用户分配的命令可能存在差异,一般情况下,角色使用 C##角色名 即可
前提条件
Oracle 数据库为11g 以上版本
若Oracle数据库为主从模式,不支持使用Oracle从库。
更新LONG、CLOB、NCLOB类型字段 更新后该类型的字段丢失数据,目前logminer自身存在该bug
操作步骤
 建议由数据库管理员对数据源配置进行操作 
必须为Oracle数据库启用日志归档,并为Debezium Oracle连接器监视的所有数据库定义一个具有适当权限的Oracle用户。
- 使用DBA角色用户连接数据库   sqlplus sys/password@host:port/SID AS SYSDBA
- 检测是否开启归档日志 - -- Should now "Database log mode: Archive Mode" archive log list;- 若回显打印“Database log mode: No Archive Mode”,说明日志归档未开启,继续执行下一步。 
 若回显打印“Database log mode: Archive Mode”,说明日志归档已开启,直接退出数据库连接。
- 开启归档日志 - alter system set db_recovery_file_dest_size = 100G; alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile; shutdown immediate; startup mount; alter database archivelog; alter database open;- 注意: 谨慎操作,开启归档日志需要重启数据库,归档日志将占用大量磁盘空间,需要考虑定期清理过期的日志 
 其中:
 100G为日志文件存储空间的大小,请根据实际情况设置。
 /opt/oracle/oradata/recovery_area为日志存储路径,请根据实际规划设置,但须确保路径提前创建。
- 开启扩充日志 
 必须为捕获的表或数据库启用补充日志记录,以便数据更改能够捕获已更改的数据库行之前的状态。下面将说明如何在表/数据库级别上配置它。 一般建议对库进行启用。
 在表启用- -- Enable supplemental logging for a specific table: ALTER TABLE inventory.customers ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;- 在数据库启用 - -- Enable supplemental logging for database ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
- 执行第2步的命令检查归档日志是否开启 - -- Should now "Database log mode: Archive Mode" archive log list;- 若回显打印“Database log mode: Archive Mode”,说明日志归档已开启,直接退出数据库连接。 
Logminer 工具安装
- 使用DBA角色用户连接数据库   sqlplus sys/password@host:port/SID AS SYSDBA
- 执行以下命令,检查LogMiner工具是否已安装。 - desc DBMS_LOGMNR desc DBMS_LOGMNR_D- 若无打印信息返回,说明LogMiner工具未安装,继续执行下一步。 
 若有打印信息返回,说明LogMiner工具已安装,直接跳到第4步
- 执行以下命令,安装LogMiner工具。 - @$ORACLE_HOME/rdbms/admin/dbmslm.sql @$ORACLE_HOME/rdbms/admin/dbmslmd.sql
- 创建角色并授权 - create role cdc_logminer_privs; grant create session, execute_catalog_role, select any transaction, flashback any table, select any table, lock any table, select any dictionary to cdc_logminer_privs; grant select on SYSTEM.LOGMNR_COL$ to cdc_logminer_privs; grant select on SYSTEM.LOGMNR_OBJ$ to cdc_logminer_privs; grant select on SYSTEM.LOGMNR_USER$ to cdc_logminer_privs; grant select on SYSTEM.LOGMNR_UID$ to cdc_logminer_privs; grant select on V_$DATABASE to cdc_logminer_privs; grant select_catalog_role to cdc_logminer_privs; grant LOGMINING to cdc_logminer_privs;- 其中: 
 cdc_logminer_privs为LogMiner用户角色名,请根据实际规划设置。
 “grant LOGMINING to cdc_logminer_privs;”仅当Oracle为12c版本时,才需要添加,否则删除此行内容
- 创建Logminer执行用户 - create user cdc_logminer identified by password default tablespace users; grant cdc_logminer_privs to cdc_logminer; grant create table to cdc_logminer; alter user cdc_logminer quota unlimited on users;- 其中: 
 cdc_logminer为LogMiner用户名,请根据实际规划设置。
 password为LogMiner用户密码,请根据实际规划设置。
 cdc_logminer_privs为LogMiner用户角色,在第4步中创建。
- 退出数据库连接 
 到此即完成了对logminer 权限的配置
 扫码
 扫码 复制
 复制 导出
 导出 
                         
                     
     
     
    
以上内容对您是否有帮助?