Amazon Aurora PostgreSQL

Prev Next

Overview

This page provides the required information for setting up replications using Amazon Aurora PostgreSQL as a:

Versions Supported

Amazon Aurora PostgreSQL is supported as source and target systems in Refresh, Mirroring, and Synchronization with the following version combinations:

  • Amazon Aurora PostgreSQL version 3.x with PostgreSQL 11

  • Amazon Aurora PostgreSQL version 4.x with PostgreSQL 12

  • Amazon Aurora PostgreSQL version 13.x with PostgreSQL 13

  • Amazon Aurora PostgreSQL version 14.x with PostgreSQL 14

  • Amazon Aurora PostgreSQL version 15.x with PostgreSQL 15

Prerequisites

  • For versions prior to Syniti Replicate 10.7.0.21, ensure that you download the appropriate PostgreSQL .NET Data Provider from the PostgreSQL website. For Syniti Replicate 10.7.0.21 or later versions, the NpgSQL driver is included with the installer.

  • Ensure that you have the Npgsql (file name: Npgsql.dll) assembly in your path name. For example, C:\Npgsql-3.2.6-net40\Npgsql.dll

  • The provider version number stored in the DBReplicator.exe.config file (in the Syniti Replicate hyper folder) must match the provider version that you are using. To change the version of the provider, specify the newVersion in the DBReplicator.exe.config file as follows:

<dependentAssembly>
    <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral">
    </assemblyIdentity>
    <bindingRedirect oldVersion="2.2.3.0" newVersion="2.2.3.0">
    </bindingRedirect>
</dependentAssembly>

Driver Matrix

Driver Matrix valid for previous versions of Syniti Replicate 10.7.0.21

Database Version

Driver Version

Amazon Aurora PostgreSQL 11

NpgSQL 4.0.2

Amazon Aurora PostgreSQL 12

NpgSQL 4.0.11

Amazon Aurora PostgreSQL 13

NpgSQL 4.0.11

Amazon Aurora PostgreSQL 14

NpgSQL 8.0.3

Amazon Aurora PostgreSQL 15

NpgSQL 8.0.3

Install the driver DLL using the Microsoft Global Assembly Cache Tool (GAC). If the provider is not registered, you will receive the following error when attempting to use the provider:

System.IO.FileNotFoundException: Could not load file or assembly 'Npgsql

For more information about this error, refer to our Knowledge Base.

Limitations

Limitations apply on CDC replication when using PostgreSQL as a source. Although these are listed in the link Amazon Aurora PostgreSQL database or Amazon AWS documentation, a subset is listed below as these restrictions apply specifically to use of PostgreSQL with Syniti Replicate.

The following limitations apply when using PostgreSQL as a source for AWS:

  • A captured table must have a primary key. If a table doesn't have a primary key, AWS Database Migration Service (DMS) ignores DELETE and UPDATE record operations for that table.

  • Timestamp with a time zone type datatype is not supported.

  • AWS DMS ignores an attempt to update a primary key segment. In these cases, the target identifies the update as one that didn't update any rows. However, because the results of updating a primary key in PostgreSQL are unpredictable, no records are written to the exceptions table.

  • Replication of multiple tables with the same name but where each name has a different case (for example, table1, TABLE1, and Table1) can cause unpredictable behavior, and therefore AWS DMS does not support it.

  • AWS DMS does not support change processing of TRUNCATE operations.

  • The OID LOB data type is not migrated to the target.

  • If your source is an on-premises PostgreSQL database or a PostgreSQL database on an Amazon EC2 instance, ensure that the test_decoding output plugin (found in the Postgres contrib package) is installed on your source endpoint. For more information about the test-decoding plugin, see the PostgreSQL documentation.

  • AWS DMS doesn't support replication of partitioned tables. When a partitioned table is detected, the following occurs:

    • The endpoint reports a list of parent and child tables.

    • AWS DMS creates the table on the target as a regular table with the same properties as the selected tables.

    • If the parent table in the source database has the same primary key value as its child tables, a duplicate key error is generated.

Note

To replicate partitioned tables from a PostgreSQL source to a PostgreSQL target, you first need to manually create the parent and child tables on the target. You then define a separate task to replicate to those tables. In such cases, you set the Task Configuration to Truncate before loading.

Connection Properties

Required Information

Property

Description

Server

Address or name of the PostgreSQL server

User ID

Database User ID

Password

User password

Optional Information

Property

Description

Database

Database name. Defaults to user name if not specified.

Port

Port to connect.

Pooling

Enables or disables connection pooling.

Max Pool Size

The maximum number of connections allowed in the pool.

Min Pool Size

The minimum number of connections allowed in the pool.

Encoding

Encoding to be used.

Timeout

The length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error.

SSL Mode

Modes for SSL Connection control:

  • Prefer: If it is possible to connect using SSL, it will be used.

  • Require: If an SSL connection cannot be made, an exception is thrown.

  • Allow: Allow encryption if the server requires it.

  • Disable: No SSL connection is done.

  • Verify-CA: Connect using SSL, allowing connections to a server that somebody else may have registered with the certificate authority (CA).

  • Verify-Full: Connect using SSL, allowing connection to a server that the user have registered with the CA.

SSL Certificate

Location of a client certificate to be sent to the server. Introduced in v6.0.

SSL Key

Location of a client key for a client certificate to be sent to the server. Introduced in v6.0.

SSL Password

Password for a key for a client certificate. Introduced in v6.0.

Root Certificate

Location of a CA certificate used to validate the server certificate.

Extended Properties

Additional properties no listed in the grid. Enter the properties as a list of "property = value" string separated by ";".