Usando o Amazon EC2 para replicação postgres_fdw ou BDR

5

Fui encarregado de fazer duas provas de conceito com o Postgres no Amazon RDS, um com postgres_fdw e outro com o BDR ( do coming-to-postgresql-9-6 / "> ). Depois de muitas pesquisas na Internet, parece que não é possível fazer o replication ou configurar postgres_fdw no RDS.

No entanto, alguém na internet (não consigo encontrar a referência) mencionou o EC2 como uma possível maneira de criar Postgres Foreign DataWrapper ou mesmo construindo a replicação a partir de um banco de dados do Postgres, vamos chamá-lo de Frankfurt , para conectar-se a uma segunda instância do Postgres que chamaremos de Seoul .

Alguém pode confirmar que a configuração postgres_fdw e também BDR pode ser definida no EC2?

Obrigado.

    
por Andy K 26.06.2017 / 15:01

2 respostas

3

O EC2 fornece uma VM independente. Desde que o BDR não exija acesso privilegiado ao hardware (isso não acontece), você está definido.

Por outro lado, o RDS fornece um serviço de banco de dados gerenciado que oferece um subconjunto da funcionalidade do Postgres. Como você descobriu, quando você quer algo que o RDS não oferece, o próximo passo é executar seus próprios bancos de dados em cima do EC2. Esteja avisado que agora você pode lidar com backups, replicação, agendar manutenção, aplicar atualizações ao SO subjacente, gerenciar as instâncias em que o banco de dados é executado e assim por diante.

    
por 05.07.2017 / 02:07
1

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.

    
por 18.07.2017 / 20:54