Hi Peter and Chris,
Just on the AWS Oracle RDS question. I just ran some tests and Debezium is working fine on RDS with LogMiner.
Things like system permissions and supplemental logging require a different set of commands (not dissimilar to RDS Postgres where you don't have superuser, just rds_superuser).
The DBA's shouldn't be pushing back on this, they need to learn these AWS equivalents to survive in the Cloud.
Peter, also, just in case you're not aware, (as per the warning in the Debezium documentation) using XStreams invokes the (very expensive) Golden Gate license.
Below, I'll paste a few of the equivalent commands, I hope that helps.
Cheers
--GRANT EXECUTE ON DBMS_LOGMNR TO dbzuser;
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','DBZUSER','EXECUTE');
--GRANT EXECUTE ON DBMS_LOGMNR_D TO dbzuser;
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR_D','DBZUSER','EXECUTE');
--GRANT SELECT on V_$LOGMNR_LOGS to db_user
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','DBZUSER','SELECT');
--GRANT SELECT on V_$LOGMNR_CONTENTS to db_user
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','DBZUSER','SELECT');
GRANT LOGMINING to dbzuser; -– Required only if the Oracle version is 12c or later.
--- Supplemental Logging
SELECT supplemental_log_data_min FROM v$database;
--ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
begin
rdsadmin.rdsadmin_util.alter_supplemental_logging(
p_action => 'ADD');
end;
/
-- Archive Retention
begin
rdsadmin.rdsadmin_util.set_configuration(
name => 'archivelog retention hours',
value => '24');
end;
/
commit;
-- Grants
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG','DBZUSER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG_HISTORY','DBZUSER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','DBZUSER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','DBZUSER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_PARAMETERS','DBZUSER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE','DBZUSER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','DBZUSER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVE_DEST_STATUS','DBZUSER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION','DBZUSER','SELECT');