Я использую виртуальную машину, в которой я предварительно установил Oracle 12 c с подключаемой базой данных orcl. Мне нужно включить лог майнер на этом oracle, чтобы захватить измененные данные. Я написал утилиту Java, которая читает журналы повторов oracle, создает сеанс регистрации и собирает данные. Раньше он собирал данные, но теперь не может их получить. Вот набор команд, которые я использую для включения log miner.
sqlplus sys/oracle@orcl12c as sysdba
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
ALTER SESSION SET CONTAINER=ORCL;
CREATE USER inventory IDENTIFIED BY oracle;
GRANT CONNECT TO inventory;
GRANT CONNECT, RESOURCE, DBA TO inventory;
CREATE TABLE inventory.customers(id number(10),first_name varchar2(20),last_name varchar2(20),email varchar2(20),modified_date timestamp);
ALTER SESSION SET CONTAINER=cdb$root;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SET db_recovery_file_dest_size = 50G SCOPE=BOTH SID='*';
CREATE USER c##cdc IDENTIFIED BY oracle CONTAINER=all;
GRANT create session, alter session, set container, select any dictionary, logmining, execute_catalog_role TO c##cdc CONTAINER=all;
ALTER SESSION SET CONTAINER=ORCL;
GRANT select on inventory.customers TO c##cdc;
ALTER SESSION SET CONTAINER=cdb$root;
EXECUTE DBMS_LOGMNR_D.BUILD(OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
sqlplus sys/oracle@orcl as sysdba
INSERT INTO inventory.customers VALUES (1,'NN','MM','nn@te',CURRENT_TIMESTAMP);
INSERT INTO inventory.customers VALUES (2,'NN','MM','nn@te',CURRENT_TIMESTAMP);
commit;
DELETE FROM inventory.customers;
commit;
Кроме того, он не выдает ошибку в утилите Java. Кто-нибудь может помочь в решении этой проблемы?