Configure Oracle Bootstrap Provider
3 minute read
The Oracle bootstrap provider loads initial state from an Oracle Database so queries start with a complete snapshot before LogMiner streaming begins.
When to use Oracle bootstrap
- You need historical/current state from Oracle when a query starts.
- Your query depends on existing rows (aggregations, joins, thresholds).
- You want a consistent snapshot + LogMiner streaming from the same database.
Prerequisites
- Use with an Oracle source (
sources[].kind: oracle). - Oracle Instant Client libraries must be available at runtime (see the Oracle source prerequisites).
- The configured user must have
SELECTaccess on the tables to be bootstrapped.
Quick example (Drasi Server config)
In Drasi Server config, bootstrap provider keys are camelCase, and the discriminator field is bootstrapProvider.kind.
sources:
- kind: oracle
id: hr-db
autoStart: true
host: ${ORACLE_HOST:-localhost}
port: ${ORACLE_PORT:-1521}
service: ${ORACLE_SERVICE:-FREEPDB1}
user: ${ORACLE_USER:-drasi}
password: ${ORACLE_PASSWORD}
tables:
- HR.EMPLOYEES
- HR.DEPARTMENTS
bootstrapProvider:
kind: oracle
host: ${ORACLE_HOST:-localhost}
port: ${ORACLE_PORT:-1521}
service: ${ORACLE_SERVICE:-FREEPDB1}
user: ${ORACLE_USER:-drasi}
password: ${ORACLE_PASSWORD}
tables:
- HR.EMPLOYEES
- HR.DEPARTMENTS
Configuration reference
The Oracle bootstrap provider has its own connection fields (it does not inherit from the parent source).
| Field | Type | Default | Description |
|---|---|---|---|
kind |
string | required | Must be oracle. |
host |
string | localhost |
Oracle server hostname. |
port |
integer | 1521 |
Oracle listener port. |
service |
string | FREEPDB1 |
Oracle service name. |
user |
string | required | Database username with SELECT access on target tables. |
password |
string | "" |
Database password. |
tables |
string[] | [] |
Tables to bootstrap. Use SCHEMA.TABLE format (for example HR.EMPLOYEES). |
sslMode |
string | disable |
SSL mode: disable or require. |
tableKeys |
array | [] |
Override key columns per table (see below). |
Fields support Drasi Server config references like ${ENV_VAR} / ${ENV_VAR:-default}.
tableKeys
Use tableKeys to override primary key discovery for element ID generation:
bootstrapProvider:
kind: oracle
# ... connection fields ...
tableKeys:
- table: HR.EMPLOYEES
keyColumns: [EMPLOYEE_ID]
- table: HR.ORDER_ITEMS
keyColumns: [ORDER_ID, PRODUCT_ID]
Behavior
- When the Oracle source supplies a bootstrap SCN, snapshots are read with
AS OF SCNso the bootstrap and streaming start from the same Oracle snapshot boundary — no gaps, no duplicates. - Element IDs are generated from discovered primary keys or configured
tableKeysoverrides, using the same format as the Oracle source (schema:table:pk1:pk2). - Unqualified table names default to the configured Oracle user schema.
- Cypher node labels match the Oracle table name portion of each configured table.
Notes
- Unlike the PostgreSQL bootstrap provider, the Oracle bootstrap provider requires its own connection configuration (host, port, service, user, password) because Oracle bootstrap connections may use different credentials or connect to a standby.
- The
tableslist in the bootstrap provider controls which tables are bootstrapped; it does not need to match the sourcetableslist exactly, though typically they are the same.
Documentation resources
Oracle Bootstrap README
Implementation notes and behavior details
drasi-bootstrap-oracle on crates.io
Package info and release history
Feedback
Was this page helpful?
Glad to hear it! Please tell us what you found helpful.
Sorry to hear that. Please tell us how we can improve.