Supported technologies v2

LiveCompare can connect to and compare data from a list of technologies, including PostgreSQL, EDB Postgres Distributed (PGD, formerly known as BDR), and Oracle.

LiveCompare has three kinds of connections:

  • Initial (optional): Used to fetch metadata about pglogical or PGD connections. Required if data connections are pglogical or PGD, and if replication_sets or node_name settings are used. Requires logical_replication_mode = pglogical or logical_replication_mode = bdr. A pglogical- or PGD-enabled database is required.
  • Data: The actual database connection that the tool connects to to perform data comparison. The first connection in the list is used to solve Table Filter and Row Filter, and is also used with the Initial Connection' to gather information about PGD nodes. If logical_replication_mode = bdrandall_bdr_nodes = on, then LiveCompare considers all PGD nodes that are part of the same PGD cluster as the Initial Connection`. In this case, you don't need to define data connections individually. The fix can be potentially applied in all data connections, as comparison and consensus decisions work per row.
  • Output (mandatory): Where LiveCompare creates a schema called livecompare, some tables, and views. This is required to keep progress and reporting data about comparison sessions. It must be a PostgreSQL or 2ndQPostgres connection.

The table shows versions and details about supported technologies and the context in which you can use them in LiveCompare.

TechnologyVersionsPossible connections
PostgreSQL10, 11, 12, 13, 14, and 15Data and output
EDB PostgreSQL Extended10, 11, 12, 13, 14, and 15Data and output
EDB PostgreSQL Advanced (EPAS)11, 12, 13, 14, and 15Data and output
pglogical2 and 3Initial, data, and output
EDB Postgres Distributed (PGD)1, 2, 3, 4, and 5Initial, data, and output
Oracle11g, 12c, 18c, 19c, and 21cA single data connection

PgBouncer support

You can use LiveCompare against nodes through PgBouncer. However, you must use pool_mode=session because LiveCompare uses prepared statements on PostgreSQL, which isn't possible when pool_mode is either transaction or statement.