Installation Steps

GlueSync SQL to NoSQL for MS SQL Server

Prerequisites

In order to have GlueSync working on your Oracle instance you will need to have:

  • A multi tenant infrastructure consisting container and pluggable databases;

  • A paid Golden Gate license for using Xstream as data streaming mean;

  • Golden Gate replication and archive logs enabled;

  • A container level user which has Xstream admin permissions;

  • A container level user which is Xstream’s “connect user” and which has read and write access rights to tables that GlueSync should listen to.

Basic configuration example

The SQL to NoSQL module can be customized by using a configuration file, in JSON format. The file name to use must be specified as parameter when launching the app, with the -f or --file tokens. The file must have the following structure:

{
  "sourceHost": "127.0.0.1",
  "sourcePort": "1433",
  "sourceName": "db-name",
  "sourceUsername": "db-user",
  "sourcePassword": "db-pwd",
  "sourceEntities": [
    "Table1": {},
    "Table2": {},
    "Table3": {},
    "Table4": {},
    "Table5": {}
  ],
  "sourceChangeRetention": 5,
  "copySourceEntitiesAtStartup": true,

  "targetHost": "localhost",
  "targetPort": "18091",
  "targetName": "bucket-name",
  "targetUsername": "bucket-user",
  "targetPassword": "bucket-pwd",

  "maxTransactionCountPerIteration": 100,
  "maxItemsCountPerTransaction": 100,

  "oracle": {
    "cdbName": "oracle-contaner-db-name",
    "pdbName": "oracle-pluggable-db-name",
    "xstreamServerName": "xstream-outbound-server-name"
  },

  "couchbase": {
    "certificatesPath": "/path/to/certs/dir",
    "timeoutSeconds": 60
  }
}

The parameters that refer to a source are the parameters that describe the connection to the Oracle database instance.

  • sourceHost: the host where the instance is reachable from;

  • sourcePort: the port which the instance is reachable from;

  • sourceName: the name of the database in the Oracle instance;

  • sourceUsername: username of a privileged user in the instance;

  • sourcePassword: password of such user;

  • sourceEntities: tables that GlueSync is going to replicate to the target database;

The parameters that refer to a target are the parameters that describe the connection to the Couchbase Server instance.

  • targetHost: the host where the instance is reachable from;

  • targetPort: the port which the instance is reachable from;

  • targetName: the name of the target bucket in the Couchbase Server instance;

  • targetUsername: username of a privileged user in the instance;

  • targetPassword: password of such user;

Oracle specific configurations are listed under the oracle property.

  • cdbName: name of the container database of your scope;

  • pdbName: name of the pluggable database that contains the data you need to replicate;

  • xstreamServerName: the name of the Xstream outbound server used by GlueSync to detect table changes.

Couchbase specific configurations are listed under the couchbase property:

  • certificatesPath (optional): the path to the certificates that need to be used when connecting to Couchbase Server. If omitted, no certificates are used;

  • timeoutSeconds (optional): number of seconds to set as timeout for operations involving communication with Couchbase server.

Other configuration parameters are the following:

  • copySourceEntitiesAtStartup: boolean which indicates whether GlueSync should copy the whole tables contents when launched the first time;

  • maxTransactionCountPerIteration: the maximum number of transactions that should be processed when simultaneously;

  • maxItemsCountPerTransaction: the maximum number of rows that should be processed within a single transaction. This will involve a paged read of rows affected by the underlying transaction.

For more detailed configurations options please have a look at the section “Advanced configuration”.