AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 61305
Accepted
jason.zissman
jason.zissman
Asked: 2014-03-20 08:22:16 +0800 CST2014-03-20 08:22:16 +0800 CST 2014-03-20 08:22:16 +0800 CST

Obtenha arquivos WAL da instância PostgreSQL do AWS RDS

  • 772

Temos uma instância Postgres RDS no Amazon Web Services. Temos backups automáticos ativados e tiramos instantâneos diariamente. Gostaríamos de gerar um backup local 'atualizado' da instância RDS que possamos gerenciar nós mesmos. A execução de pg_dump na instância não é suficiente porque queremos poder restaurar o banco de dados a qualquer momento. Preferimos ter um backup local do RDS e de todos os arquivos WAL desde que o backup foi feito. Perguntas:

  1. É possível acessar os arquivos WAL e backups que o RDS está gerando automaticamente em sua rotina de backup? Isso seria ideal. Eu gostaria de baixar uma cópia local deles. Após a investigação inicial, sinto que a resposta a esta pergunta é 'não'. Parece que o RDS está armazenando seus arquivos WAL e backups no S3, mas isso os torna inacessíveis para nós. Adoraria a confirmação.

  2. Existe alguma outra forma de acessar as transações (arquivos WAL) que ocorreram na instância do RDS? Imagino que deveríamos ser capazes de criar um banco de dados Postgres em um EC2 e 'alimentar' transações de nossa instância RDS 'ao vivo' primária para esta instância EC2. Depois que nossa instância do EC2 for atualizada, podemos extrair arquivos WAL de lá. Mas que dor de cabeça :/ Essa configuração é possível? Qual é a mágica de 'alimentar' de nossa instância RDS para a instância EC2 para que ela esteja sempre atualizada?

Obrigado!

postgresql amazon-ec2
  • 3 3 respostas
  • 17556 Views

3 respostas

  • Voted
  1. Best Answer
    Craig Ringer
    2014-03-20T16:43:08+08:002014-03-20T16:43:08+08:00

    Atualização: postei sobre isso nos fóruns da AWS - entre em contato e pergunte lá .


    Até o momento, o Amazon RDS não oferece suporte à replicação física fora do RDS. Você pode usar GRANTo REPLICATIONdireito de usuário usando um rds_superuserlogin, mas não pode configurar replicationentradas para IPs externos em pg_hba.conf.

    Além disso, quando você cria um grupo de parâmetros de banco de dados no RDS, alguns parâmetros-chave são exibidos, mas bloqueados, por exemplo archive_command, que é bloqueado para /etc/rds/dbbin/pgscripts/rds_wal_archive %p. O AWS RDS for PostgreSQL não parece expor esses WALs para acesso externo (digamos, via S3), como seria necessário se você usasse a replicação de remessa WAL para PITR externo.

    Portanto, neste ponto, se você deseja enviar pelo wal, não use o RDS. É um banco de dados enlatado e fácil de usar, mas fácil de usar geralmente significa que também é limitado, e esse certamente é o caso aqui. Como Joe Love aponta nos comentários, ele fornece remessa WAL e PITR dentro do RDS , mas você não pode acessar o WAL de fora do RDS.

    Portanto, você precisa usar os próprios recursos de backup do RDS - dumps, instantâneos e seu próprio PITR baseado em WAL.


    Mesmo que o RDS permitisse que você fizesse conexões de replicação (para pg_basebackupou replicação de streaming) e permitisse o acesso ao WAL arquivado, talvez você não conseguisse realmente consumir esse WAL. O RDS executa um PostgreSQL corrigido, embora ninguém saiba o quão fortemente corrigido ou se altera significativamente o formato em disco. Ele também roda na arquitetura selecionada pela Amazon, que provavelmente é x64 Linux, mas não é facilmente determinada. Como o formato e a replicação do PostgreSQL em disco dependem da arquitetura, você só pode replicar para hosts com a mesma arquitetura usada pelo Amazon RDS e somente se a compilação do PostgreSQL for compatível com a deles.

    Entre outras coisas, isso significa que você não tem uma maneira fácil de migrar do RDS. Você teria que parar todas as gravações no banco de dados por tempo suficiente para obter um pg_dump, restaurá-lo e colocar o novo banco de dados em execução. Os truques usuais com replicação e failover, com rsync, etc, não funcionarão porque você não tem acesso direto ao host do banco de dados.

    Mesmo se o RDS executasse um PostgreSQL sem patch, a Amazon provavelmente não permitiria que você fizesse streaming do WAL para o RDS ou importasse para o RDS usando pg_basebackuppor motivos de segurança. O PostgreSQL trata o diretório de dados como conteúdo confiável, e se você criou alguma função 'LANGUAGE c' inteligente que conecta a funcionalidade interna ou fez qualquer outra coisa complicada, você pode explorar o servidor para obter maior acesso do que deveria ter . Portanto, a Amazon não permitirá a entrada do WAL tão cedo.

    Eles poderiam suportar o envio WAL de saída, mas os problemas acima com compatibilidade de formato, liberdade para fazer alterações, etc., ainda se aplicam.


    Em vez disso, você deve usar uma ferramenta como Londiste ou Bucardo.

    • 21
  2. user318817
    2018-03-15T15:58:20+08:002018-03-15T15:58:20+08:00

    Agora isso é possível usando a replicação lógica: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication

    • 3
  3. michel-slm
    2015-01-21T00:52:41+08:002015-01-21T00:52:41+08:00

    A replicação usando sistemas baseados em gatilho como Londiste e Bucardo dentro e fora do RDS agora é suportada a partir de 10 de novembro de 2014 , de acordo com uma resposta naquele tópico do fórum.

    Anúncio aqui

    • 1

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve