Eu esperava obter uma resposta clara sobre como garantir um backup completo do Postgres, assim como você obteria com o MS SQL Server e, em seguida, cuidar de usuários órfãos.
Pelo que li, e pode estar errado, encontrar um bom blog PostgreSQL tem sido um desafio, então sinta-se à vontade para recomendar alguns para mim, preciso descobrir como esse aplicativo funciona para poder confiar nos meus backups e no Slony replicação. Eu pedi a um desenvolvedor para restaurar um backup que tirei do PgadminIII via custom
, directory
, e tar
format enquanto selecionava OID
s, mas ele disse que dois deles não carregaram, tar
mas era apenas o diretório, não os dados. Estou realmente confuso agora.
- Estou usando o PGAdminIII, ele tem uma opção
pg_dump
epg_dumpall
. Quero fazer backup de tudo o que preciso para testar a restauração desse banco de dados em algum lugar e verificar se sim, todos os dados que precisamos e nosso backup é bom. Eventualmente, quero escrever um script de restauração automática, mas um dia de cada vez.
pg_dumpall
aparentemente tem uma -globals
opção que deveria fazer backup de tudo, mas a ajuda para pg_dumpall
mostra uma opção -g, --globals-only dump only global objects, no databases
, não uma --globals
opção.
Eu pensei pg_dumpall
que pelo menos faria backup de chaves estrangeiras, mas mesmo isso parece ser uma 'opção'. De acordo com a documentação , mesmo pg_dumpall
que eu precise usar uma -o
opção para fazer backup de chaves estrangeiras, não consigo imaginar quando não gostaria de fazer backup de chaves estrangeiras e isso faria mais sentido como opções padrão.
- Como cuidaria de usuários órfãos e validaria que tenho tudo? Eu gostaria de restaurar meu arquivo de backup em outro servidor e verificar se tudo funciona. Se alguém tiver alguma sugestão de como fazer um backup real no PostgreSQL e restaurar, ficaria muito grato.
Eu tinha um servidor PostgreSQL, mas ainda não consigo entender por que o aplicativo não faria backup OID
de s por padrão! Parece que 99,9% das vezes você gostaria disso.
ATUALIZAÇÃO 1:
A documentação do Postgres menciona que a globals
opção que eu estava procurando parece ser uma opção padrão nesta versão, mas ainda precisa da -o
opção. Se alguém puder verificar ou me dar um comando de exemplo para restaurar um único banco de dados em outro lugar com tudo o que precisa, eu agradeceria.
Edit: sendo solicitado pelo site para mostrar a singularidade desta pergunta editando minha pergunta. Essa questão levanta o problema e obtém clareza sobre OIDs em backups, a diferença entre globais e não globais, bem como testar recomendações de restauração para garantir que o backup seja bom, em vez de apenas fazer backup. Devido às respostas, consegui fazer backup, descobrir globals/oids e iniciar um processo de restauração de teste todas as noites no Postgres usando cron jobs. Obrigado pela ajuda!
Você pode despejar todo o cluster PostgreSQL com pg_dumpall. São todos os bancos de dados e todos os globais para um único cluster. A partir da linha de comando no servidor, eu faria algo assim. (O meu está escutando na porta 5433, não na porta padrão.) Você pode ou não precisar da opção --clean.
Isso inclui os globais--informações sobre usuários e grupos, tablespaces e assim por diante.
Se eu fosse fazer backup de um único banco de dados e movê-lo para um servidor temporário, despejaria o banco de dados com pg_dump e despejaria os globais com
pg_dumpall --globals-only
, oupg_dumpall --roles-only
(se você só precisa de papéis)assim.
As saídas são apenas arquivos de texto.
Depois de mover esses arquivos para um servidor diferente, carregue primeiro os globais e, em seguida, o dump do banco de dados.
Não, essa referência diz "Use esta opção se seu aplicativo fizer referência às colunas OID de alguma forma (por exemplo, em uma restrição de chave estrangeira). Caso contrário, essa opção não deve ser usada". (Ênfase adicionada.) Acho improvável que seu aplicativo faça referência às colunas OID. Você não precisa usar esta opção para "fazer backup de chaves estrangeiras". (Leia o arquivo de despejo em seu editor ou visualizador de arquivos.)