From 1b677712e1fa2ae86a7945d747424d9584ea574a Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Thu, 30 Jan 2025 21:32:29 +0000 Subject: [PATCH] docs: OracleDB cdc docs improvements --- .../capture-connectors/OracleDB/OracleDB.md | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/site/docs/reference/Connectors/capture-connectors/OracleDB/OracleDB.md b/site/docs/reference/Connectors/capture-connectors/OracleDB/OracleDB.md index bd8fddb873..4492008b2e 100644 --- a/site/docs/reference/Connectors/capture-connectors/OracleDB/OracleDB.md +++ b/site/docs/reference/Connectors/capture-connectors/OracleDB/OracleDB.md @@ -42,7 +42,7 @@ GRANT SELECT ON ""."" 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; @@ -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. @@ -90,10 +96,10 @@ GRANT SELECT ON ""."" TO c##estuary_flow_user CONTAINER=ALL; GRANT SELECT ON ""."" 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: @@ -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. @@ -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 '<schema>.table' form. | string | `<USER>.FLOW_WATERMARKS` |