Skip to content

Commit

Permalink
docs: OracleDB cdc docs improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
mdibaiee committed Jan 30, 2025
1 parent 073c45e commit 1b67771
Showing 1 changed file with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ GRANT SELECT ON "<schema_b>"."<table_2>" TO estuary_flow_user;
CREATE TABLE estuary_flow_user.FLOW_WATERMARKS(SLOT varchar(1000) PRIMARY KEY, WATERMARK varchar(4000));
```

5. Finally you need to grant the user access to use logminer, read metadata from the database and write to the watermarks table:
5. Grant the user access to use logminer, read metadata from the database and write to the watermarks table:

```sql
GRANT SELECT_CATALOG_ROLE TO estuary_flow_user;
Expand All @@ -66,6 +66,12 @@ For Amazon RDS instances use:
BEGIN rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD', p_type => 'ALL'); end;
```

7. Ensure user has quota on the USERS tablespace:

```sql
ALTER USER estuary_flow_user QUOTA UNLIMITED ON USERS;
```

## Container Databases

For working with container databases, access to the root container is necessary. Amazon RDS Oracle databases do not allow access to the root container and so they do not work if configured as a multi-tenant architecture database (whether single-tenant or multi-tenant). If your Amazon RDS instance has containers, try the [OracleDB Flashback connector](https://go.estuary.dev/source-oracle-flashback) instead.
Expand All @@ -90,10 +96,10 @@ GRANT SELECT ON "<schema_a>"."<table_1>" TO c##estuary_flow_user CONTAINER=ALL;
GRANT SELECT ON "<schema_b>"."<table_2>" TO c##estuary_flow_user CONTAINER=ALL;
```

4. Create a watermarks table (run in the root container)
4. Create a watermarks table (the table should be in the PDB)
```sql
CREATE TABLE c##estuary_flow_user.FLOW_WATERMARKS(SLOT varchar(1000) PRIMARY KEY, WATERMARK varchar(4000));
GRANT INSERT, UPDATE ON c##estuary_flow_user.FLOW_WATERMARKS TO c##estuary_flow_user;
GRANT INSERT, UPDATE ON c##estuary_flow_user.FLOW_WATERMARKS TO c##estuary_flow_user CONTAINER=ALL;
```

5. Finally you need to grant the user access to use logminer, read metadata from the database and write to the watermarks table:
Expand All @@ -113,6 +119,12 @@ For normal instances use:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
```

6. Ensure user has quota on the USERS tablespace:

```sql
ALTER USER c##estuary_flow_user QUOTA UNLIMITED ON USERS;
```

### Include Schemas for Discovery
In your Oracle configuration, you can specify the schemas that Flow should look at when discovering tables. The schema names are case-sensitive. If the user does not have access to a certain schema, no tables from that schema will be discovered.

Expand All @@ -131,7 +143,7 @@ To allow secure connections via SSH tunneling:
| `/address` | Address | The host or host:port at which the database can be reached. | string | Required |
| `/user` | Username | The database user to authenticate as. | string | Required |
| `/password` | Password | Password for the specified database user. | string | Required |
| `/database` | Database | Logical database name to capture from. Defaults to ORCL. | string | Required |
| `/database` | Database | Logical database name to capture from. Defaults to ORCL. In multi-container environments use the PDB name. | string | Required |
| `/historyMode` | History Mode | Capture change events without reducing them to a final state. | boolean | `false` |
| `/advanced/skip_backfills` | Skip Backfills | A comma-separated list of fully-qualified table names which should not be backfilled. | string | |
| `/advanced/watermarksTable` | Watermarks Table | The name of the table used for watermark writes during backfills. Must be fully-qualified in '&lt;schema&gt;.table' form. | string | `&lt;USER&gt;.FLOW_WATERMARKS` |
Expand Down

0 comments on commit 1b67771

Please sign in to comment.