I am presently evaluating Oracle 23's FREE image with XStream using the Oracle Container Registry image having completed the following custom-setup options:
- Created the
recovery_areapath in the image for archive logs. - Set
db_recovery_file_dest_sizeanddb_recovery_file_destandenable_goldengate_replication. - Enabled archive log mode and bounced the database after above configurations.
- Created the
c##xsadmintablespaces in both theFREEandFREEPDBdatabases. - Created the user
c##xsadminin theFREEroot database assigned to its tablespaces. - Grant
CREATE_SESSION,SET CONTAINER,XSTREAM_CAPTURE, andXSTREAM_APPLYto thec##xsadminuser. - Created a local user in
FREEPDB1that I connect with the following grants:CONNECT,CREATE SESSION,CREATE TABLE,CREATE SEQUENCE. - Created the
c##xsusertablespaces in both theFREEandFREEPDB1databases. - Created the common user
c##xsuserin theFREEroot database specifying thec##xsusertablespaces above. - Grant
CREATE SESSION,SET CONTAINER,SELECT ON V$DATABASE,FLASHBACK,SELECT_CATALOG_ROLE, andEXECUTE_CATALOG_ROLEto thec##xsusercommon user.
With those steps in place, I begin to create the XStream outbound server by running the following using the c##xsadmin user in the FREE database:
DECLARE
tables DBMS_UTILITY.UNCL_ARRAY;
schemas DBMS_UTILITY.UNCL_ARRAY;
BEGIN
tables(1) := NULL;
schemas(1) := 'debezium';
DBMS_XSTREAM_ADM.CREATE_OUTBOUND(
server_name => 'dbzxout',
table_names => tables,
schema_names => schemas);
END;
Finally, I reconnect as the sys user with sysdba role and execute:
DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
server_name => 'dbzxout',
connect_user => 'c##xsuser');
END;
In the container I see XStream and GG start:
The following output is now a tail of the alert.log:
Current log# 3 seq# 6 mem# 0: /opt/oracle/oradata/FREE/redo03.log
2023-11-03T16:07:51.090708+00:00
Thread 1 advanced to log sequence 7 (LGWR switch), current SCN: 3168082
Current log# 1 seq# 7 mem# 0: /opt/oracle/oradata/FREE/redo01.log
2023-11-03T16:07:51.105474+00:00
NET (PID:920): Archived Log entry 5 added for B-1146462010.T-1.S-6 ID 0x548cb679 LAD:1 [krse.c:4846]
2023-11-03T16:07:52.900689+00:00
First applied SCN for apply w/ object number 70773 and subscriber sequence number 1 is updated to SCN: 0 (0x0000000000000000)
2023-11-03T16:07:52.907440+00:00
First applied SCN of the XStream path from capture (CAP$_DBZXOUT_1) to propagation () to apply (DBZXOUT) is set to SCN: 3166601 (0x0000000000305189)
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 573440K, new size 583680K
2023-11-03T16:07:59.672209+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 583680K, new size 604160K
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 604160K, new size 614400K
2023-11-03T16:08:01.292894+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 614400K, new size 645120K
2023-11-03T16:08:04.237279+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 645120K, new size 655360K
2023-11-03T16:08:04.286567+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 655360K, new size 686080K
2023-11-03T16:08:06.824192+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 686080K, new size 696320K
2023-11-03T16:08:06.857728+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 696320K, new size 727040K
2023-11-03T16:08:08.921850+00:00
:
LOGMINER: Gathering statistics on logminer dictionary. (incremental, nonparallel)
Running SELECT dbms_apply_process.get_apply#('DBZXOUT'); outputs:
1000
Running SELECT STATE FROM V$PROPAGATION_RECEIVER; outputs:
Waiting for message from propagation sender
Running SELECT SERVER_NAME, CONNECT_USER, CAPTURE_NAME, SOURCE_DATABASE, CAPTURE_USER, QUEUE_OWNER FROM ALL_XSTREAM_OUTBOUND; outputs:
DBXOUT | C##XSUSER | CAP$_DBXOUT_1 | FREE | C##XSADMIN | C##XSADMIN
I have also checked DBA_ALERT_HISTORY and DBA_OUTSTANDING_ALERTS for good measure and I don't get any results, so I'm really baffled as to why when my client attempts to attach to the XStream process, I get the error:
Caused by: oracle.streams.StreamsException: ORA-26701: XStream process DBZXOUT does not exist
I compared this to my steps for Oracle 19 and the only difference I found was needing to assign XSTREAM_CAPTURE and XSTREAM_APPLY roles rather than using the DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE package and it works for that version.
Does anyone have any suggestions on what I may have done incorrectly?