Configuring and running the EDB DMS Reader

Getting credentials

  1. Access the EDB Postgres AI® Console and log in with your EDB Postgres AI Database Cloud Service credentials.

  2. Select the project where you created the database cluster.

  3. Within your project, select Migrate > Credentials.

  4. Select Create Migration Credential > Download Credential.

  5. Unzip the credentials folder and copy it to the host where the reader is installed.

Configuring the reader

  1. Open the EDB DMS reader located in /opt/cdcreader/run-cdcreader.sh and ensure you have write permissions.

  2. Set the variables according to your environment and uncomment the edited lines. See parameters for further guidance. The script is reproduced below.

#!/bin/bash -e
# run_cdcreader.sh
#
# This script provides a convenient place to specify
# environment variables used to configure the
# EDB Data Migration Service Reader.
#
# After env exports, `java` is called to start the
# software.

##########################################
# DMS Reader General Configuration       #
##########################################

# This ID is used to identify DMS Reader
# and is specified by the user.
#export DBZ_ID=

# Supported options include: appliance (the hybrid PG AI platform), aws
#export CLOUD_PROVIDER=

# This is the DMS backend service used by the Reader
# If your CLOUD_PROVIDER is `appliance`, consult your system administrators
# The default value supports the `aws` CLOUD_PROVIDER
#export RW_SERVICE_HOST=https://transporter-rw-service.biganimal.com

# You need to create migration credentials in EDB Postgres AI platform
# and set these fields with the path of the credential files
#export TLS_PRIVATE_KEY_PATH=$HOME/credentials/client-key.pem
#export TLS_CERTIFICATE_PATH=$HOME/credentials/client-cert.pem
#export TLS_CA_PATH=$HOME/credentials/int.crt
#export APICURIOREQUEST_CLIENT_KEYSTORE_LOCATION=$HOME/credentials/client.keystore.p12
#export APICURIOREQUEST_TRUSTSTORE_LOCATION=$HOME/credentials/int.truststore.p12
#export KAFKASECURITY_CLIENT_KEYSTORE_LOCATION=$HOME/credentials/client.keystore.p12
#export KAFKASECURITY_TRUSTSTORE_LOCATION=$HOME/credentials/int.truststore.p12

##########################################
# DMS Reader Source DB Configuration     #
##########################################

# A sample configuration to create a single postgres database connection:
#export DBZ_DATABASES_0__TYPE=POSTGRES
#export DBZ_DATABASES_0__HOSTNAME=localhost
#export DBZ_DATABASES_0__PORT=5432
# The CATALOG is the database name
#export DBZ_DATABASES_0__CATALOG=source
#export DBZ_DATABASES_0__USERNAME=postgres
# The password env can be set without specifing it here
# but the env structure looks like this
#export DBZ_DATABASES_0__PASSWORD=password

# You can increase the index to configure more than
# one database for the DMS Reader
#export DBZ_DATABASES_1__TYPE=ORACLE
#export DBZ_DATABASES_1__HOSTNAME=localhost
#export DBZ_DATABASES_1__PORT=1521
# The CATALOG is the database name
#export DBZ_DATABASES_1__CATALOG=ORCLCDB/ORCLPDB1
#export DBZ_DATABASES_1__USERNAME=oracle
# The password env can be set without specifing it here
# but the env structure looks like this
#export DBZ_DATABASES_1__PASSWORD=password

##########################################
# Optional Parameters Below              #
##########################################

# Configure logging
# Generic loglevel
#export QUARKUS_LOG_LEVEL=DEBUG
# Loglevel for a single package
#export QUARKUS_LOG_CATEGORY__COM_ENTERPRISEDB__LEVEL=DEBUG

cd $(dirname $0)
java ${JAVA_OPTS} -jar quarkus-run.jar

Parameters

DBZ_ID

This is the name you assign to identify a source. This name will later appear as a source in the Migrate > Sources section of the EDB Postgres AI Console.

Consider the following ID guidelines:

  • The maximum character length for the ID is 255 characters.
  • You can use lowercase and uppercase characters, numbers, underscores(_) and hyphens(-) for the ID. Other special characters are not supported.
  • The ID must be unique. The source instances cannot have the same ID.

RW_SERVICE_HOST

Specifies the URL of the service that will host the migration. transporter-rw-service is always https://transporter-rw-service.biganimal.com.

TLS_PRIVATE_KEY_PATH

Directory path to the client-key.pem private key you downloaded from the EDB Postgres AI Console.

The HTTP client of the EDB DMS Reader uses it to perform mTLS authentication with the transporter-rw-service.

TLS_CERTIFICATE_PATH

Directory path to the X509 client-cert.pem certificate you downloaded from the EDB Postgres AI Console.

The HTTP client of the EDB DMS Reader uses it to perform mTLS authentication with the transporter-rw-service.

TLS_CA_PATH

Directory path to the int.cert Certificate Authority you downloaded from the EDB Postgres AI Console.

It signs the certificate configured in TLS_CERTIFICATE_PATH.

APICURIOREQUEST_CLIENT_KEYSTORE_LOCATION

Directory path to the client-keystore.p12 keystore location file you downloaded from the EDB Postgres AI Console. It is created from the private key and certificate configured in TLS_PRIVATE_KEY_PATH and TLS_CERTIFICATE_PATH.

The Apicurio client uses it to perform mTLS authentication with the transporter-rw-service.

APICURIOREQUEST_TRUSTSTORE_LOCATION

Created from the Certificate Authority configured in TLS_CA_PATH.

The Apicurio client uses it to perform mTLS authentication with the transporter-rw-service.

DBZ_DATABASES

This is a list of source database information you require for the EDB DMS Reader be able to read the correct source database information for the migration.

You can configure the EDB DMS Reader to migrate multiple databases. The DBZ_DATABASES_0__TYPE section delimits the information for the first database. You can use DBZ_DATABASES_1__TYPE to provide data for a second database. Add more sections to the EDB DMS Reader (DBZ_DATABASES_2__TYPE, DBZ_DATABASES_3__TYPE) by increasing the index manully.

DBZ_DATABASES_0__TYPE

This is the source database type. EDB DMS reader supports ORACLE and POSTGRES.

DBZ_DATABASES_0__HOSTNAME

The hostname of the source database.

DBZ_DATABASES_0__PORT

The port of the source database.

DBZ_DATABASES_0__CATALOG

The database name in the source database server.

DBZ_DATABASES_0__USERNAME

The database username of the source database.

DBZ_DATABASES_0__PASSWORD

The password for the database username of the source database.

Running the EDB DMS Reader

  1. Start the migration:

    cd /opt/cdcreader
    ./run-cdcreader.sh
  2. Go to the EDB Postgres AI Console, and verify that a source with the DBZ_ID name is displayed in Migrate > Sources.

You can select this source for your migration.


Could this page be better? Report a problem or suggest an addition!