Estamos usando postgres_fdw
no AWS RDS. Existem alguns problemas relacionados ao desempenho, mas funciona. Você só precisa usar o PostgreSQL 9.3 ou superior e verificar se postgres_fdw
está em rds.extensions
do grupo de parâmetros.
Seguindo sua definição, temos um DB Frankfurt
que possui um servidor externo Seoul
. E enquanto estiver conectado a Frankfurt
, você pode acessar dados em Seoul
como se fossem tabelas locais.
Você precisa executar algo semelhante a isso em Frankfurt
DB (e, claro, ter certeza de que ambos os bancos de dados podem acessar um ao outro por meio do VPC, você não precisa abri-los para todos):
CREATE EXTENSION postgres_fdw;
CREATE SERVER FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'seoul_host_address', port '5432', dbname 'seoul_db_name');
-- maybe you need this (if you want to map users)
CREATE USER MAPPING FOR public SERVER
seoul OPTIONS (user 'seoul-writer', password 'XXXXXXX');
-- then just create foreign table
CREATE FOREIGN TABLE table_name (
id integer DEFAULT NOT NULL,
name character varying(64)
) SERVER seoul OPTIONS (tablename 'seoul_table_name');
Esta não é uma solução perfeita para replicação. Se você só precisa de uma réplica somente leitura - use a replicação do AWS RDS e você não terá problemas.
Espero que esta informação seja útil.