Overview
Wirekite supports Oracle 11g and above as a source database for:- Schema Extraction - Extract table definitions to Wirekite’s intermediate format
- Data Extraction - Bulk extract table data for initial load
- Change Extraction (CDC) - Capture ongoing inserts, updates, and deletes via LogMiner
Oracle Change Extraction uses LogMiner to read archive logs and capture changes. This requires archivelog mode to be enabled and supplemental logging configured on the tables being extracted.
Prerequisites
Before configuring Oracle as a Wirekite source, ensure the following requirements are met:Database Configuration
- Version: Oracle 12c or later (12c+ required for the
LOGMININGprivilege) - Archivelog Mode (CDC only): Must be enabled for change capture
- Supplemental Logging (CDC only): Database-level and table-level supplemental logging must be configured (see Source Database Setup below)
File System Access
- Ensure the user running Wirekite has write permissions to the output directory
- Verify sufficient disk space for extracted data files
Replication Considerations
Source Database Setup
Wirekite requires a dedicatedWIREKITE schema (user) for internal tracking tables and specific privileges on the application schema and system views. Follow these steps to configure your Oracle source.
Step 1: Create the Wirekite User/Schema
In Oracle, a user and a schema are the same thing. Create a dedicatedWIREKITE user:
Step 2: Grant Basic Session Privileges
Step 3: Grant Table Creation Privileges
Wirekite creates two internal tracking tables (wirekite_progress and wirekite_action) in the WIREKITE schema for progress tracking and crash recovery:
Step 4: Grant Read Access to Application Tables
For each application table that needs to be extracted:Step 5: Grant Data Dictionary Access
Wirekite queries Oracle data dictionary views for schema metadata (columns, constraints, indexes, etc.):DBA_TAB_COLUMNS— column metadataDBA_CONSTRAINTS/DBA_CONS_COLUMNS— primary keys, unique keys, foreign keys, check constraintsDBA_INDEXES/DBA_IND_COLUMNS— index metadataDBA_SEQUENCES— sequences (full schema extraction)DBA_VIEWS— views (full schema extraction)DBA_MVIEWS/DBA_JOBS/DBA_REFRESH— materialized views (full schema extraction)DBA_SYNONYMS/DBA_OBJECTS— synonyms (full schema extraction)DBA_TAB_PRIVS— privilege extraction (full schema extraction)DBA_ROLES/DBA_USERS/DBA_ROLE_PRIVS/DBA_SYS_PRIVS— roles/users (full schema extraction)DBA_TRIGGERS— triggers (full schema extraction)DBA_SOURCE— procedure/function/package source (full schema extraction)
Step 6 (CDC Only): Enable Supplemental Logging
For change data capture (CDC), Wirekite uses Oracle LogMiner to read redo/archive logs. Enable database-level supplemental logging:Step 7 (CDC Only): Grant LogMiner Privileges
Step 8 (CDC Only, Optional): Grant Log Switch Privilege
If you want Wirekite to automatically flush redo logs to archive logs (theautoFlushLogs option):
ALTER SYSTEM SWITCH LOGFILE and ALTER SYSTEM ARCHIVE LOG CURRENT. If you prefer not to grant this, ensure that archive logs are generated frequently enough by your existing Oracle configuration.
Step 9 (Standby Handover Only): SYSDBA Access
If you are extracting from an Oracle Data Guard standby and need to stop/start managed recovery:This is only needed for Data Guard standby operations. For normal primary database extraction, SYSDBA is not required.
Complete Setup Script
Data Extraction Only
Data Extraction + CDC (Change Data Capture)
Verify the Setup
Connect as the wirekite user and verify access:What Wirekite Creates
| Object | Type | Schema | Purpose |
|---|---|---|---|
wirekite_progress | Table | WIREKITE | Tracks extraction progress, crash recovery |
wirekite_action | Table | WIREKITE | Run/pause/stop control |
wkp_finish_time | Index | WIREKITE | Index on wirekite_progress |
wkp_start_time | Index | WIREKITE | Index on wirekite_progress |
Wirekite does NOT create any triggers, stored procedures, packages, or other PL/SQL objects on the source database. CDC uses Oracle LogMiner exclusively.
Privilege Summary
| Privilege | Required For |
|---|---|
CREATE SESSION | Basic connectivity |
CREATE TABLE | Internal tracking tables in WIREKITE schema |
SELECT ON <app_schema>.<table> | Reading application table data |
SELECT ANY DICTIONARY | Schema metadata from data dictionary views |
SELECT ON V_$DATABASE | CDC: supplemental logging check, current SCN |
SELECT ON V_$ARCHIVED_LOG | CDC: archive log discovery for LogMiner |
SELECT ON V_$LOGMNR_CONTENTS | CDC: reading LogMiner output |
SELECT ON V_$TRANSACTION | CDC: transaction checkpoint for crash recovery |
EXECUTE ON SYS.DBMS_LOGMNR | CDC: LogMiner session management |
EXECUTE ON SYS.DBMS_LOGMNR_D | CDC: LogMiner dictionary |
LOGMINING | CDC: LogMiner access (Oracle 12c+) |
ALTER SYSTEM | CDC (optional): automatic redo log switch |
Schema Extractor
The Schema Extractor reads table definitions from Oracle and outputs them to Wirekite’s intermediate schema format (.skt file). This schema file is used by target loaders to create corresponding tables in the destination database.
The Schema Extractor can run standalone or as part of the Orchestrator workflow. The configuration parameters are the same in both cases.
Required Parameters
Path to a file containing the Oracle connection string. The file should contain exactly one line with the DSN.
Path to a file listing the tables to extract, one per line in
schema.table format.Absolute path to the directory where Wirekite will write the schema file (
wirekite_schema.skt). The directory must exist and be writable.Absolute path to the log file where the Schema Extractor will write operational logs.
Optional Parameters
Rename the source schema in the output. Format:
sourceSchema:targetSchema. Useful when the target database uses a different schema name.When
true, extracts all database objects including views, indexes, and constraints in addition to table definitions.Data Extractor
The Data Extractor performs bulk extraction of table data, writing records to Wirekite’s intermediate data format (.dkt files). Large tables are automatically split across multiple files based on the maxRowsPerDump setting.
Required Parameters
Path to a file containing the Oracle connection string.
Path to a file listing the tables to extract, one per line in
schema.table format.Absolute path to the directory where Wirekite will write data files. Files are named
schema.table.N.dkt where N is a sequence number.Absolute path to the log file for Data Extractor operations.
Optional Parameters
Number of parallel extraction threads. Each thread consumes one database connection and approximately one CPU core. Set this based on available CPU cores and acceptable database load.
Maximum number of rows written to each output file. Large tables are split into multiple files. Adjust based on available memory and disk space.
When
true, binary and string data is encoded as hexadecimal instead of base64. Hex encoding produces larger files but may be required for certain target databases (e.g., Snowflake).When
true, sorts output files by table name for easier management and verification.Rename the source schema in the output. Format:
sourceSchema:targetSchema.Change Extractor
The Change Extractor captures ongoing data changes (INSERT, UPDATE, DELETE) by reading Oracle archive logs via LogMiner. It outputs change events to Wirekite’s change format (.ckt files) for loading into target databases.
The Change Extractor requires archivelog mode to be enabled. It uses Oracle LogMiner to read and parse archive log files.
Required Parameters
Path to a file containing the Oracle connection string.
Path to a file listing the tables to track for changes, one per line in
schema.table format.Absolute path to the directory where Wirekite will write change files. Files are named with sequential numbers (e.g.,
0.ckt, 1.ckt, etc.).Absolute path to the log file for Change Extractor operations.
Position Parameters
The Oracle System Change Number (SCN) from which to start extracting changes. This is typically the SCN captured when the data extraction was taken. When running via the Orchestrator in data+change mode, this is automatically captured. When not specified, defaults to
"none" meaning no starting position is set.Optional Parameters
When
true, enables detailed logging including metadata files that can help troubleshoot issues.When
true, processes only one archive log file and then exits. Useful for testing or manual incremental processing.When
true, includes BEGIN and COMMIT markers in the output. Wirekite guarantees that transactions never span multiple output files regardless of this setting.Number of change events to buffer before flushing to disk. Lower values reduce memory usage but increase I/O operations. The buffer is always flushed at transaction boundaries.
When
true, the extractor exits after processing all available archive logs. When false (default), it runs continuously, waiting for new archive logs indefinitely.Number of seconds to wait between checks for new archive logs when idle. Only applies when
exitWhenIdle is false.When
true, automatically triggers archive log switches to ensure changes are captured promptly.Interval in seconds between automatic log flushes when
autoFlushLogs is enabled.Maximum number of archive logs to process in a single LogMiner session before restarting. Helps manage memory usage for long-running extractions.
Number of previous archive logs to include in each mining session. Ensures transactions spanning multiple log boundaries remain fully visible. Increase this if you see incomplete transactions in the output.
Rename the source schema in the output. Format:
sourceSchema:targetSchema.Orchestrator Configuration
When using the Wirekite Orchestrator, prefix source parameters withsource.schema., source.data., or source.change. depending on the operation mode.
Example orchestrator configuration for Oracle source:
When running in data+change mode, the Orchestrator automatically captures the SCN after data extraction and passes it to the Change Extractor. You do not need to manually specify
startScn in this mode.