Replicação postgresql
Publicado por Rogerio Reis 26/02/2007
[ Hits: 7.566 ]
Olá,
Estou enviando um shell script para quem deseja replicar off-line um BD postgres, como um backup do dia anterior, por exemplo.
Depende de acesso 'sem senha' entre os servidores (.pgpass) e do perl script sendEmail para enviar e-mails em modo texto.
Diferente de outras soluções, você não precisa especificar tabela por tabela e nem criar novos campos em suas tabelas. Todo o banco é replicado
Espero que seja útil para vocês como foi para mim.
Abcs.
Rogério Reis
#!/bin/bash # Objetivo: Sincronizar o banco de dados de producao com o backup (este host) # Autor: Rogerio Reis # Data: 20/12/06 # Dependencias: #sendEmail -> Script perl para envio de e-mail em modo texto (basta descompactar) #Acesso ao postgres sem senha entre os servidores (utilize ~/.pgpass) #Este script deve ser executado no servidor backup # Variaveis (Voce DEVE alterar as variaveis para seu ambiente) # Obtendo data de ontem ontem=`date -d yesterday "+%d%m%Y"` servidor="192.168.0.10" #Servidor que contem o banco em producao usuario="root" codificacao="--encoding=SQL_ASCII" #Codificacao de caracteres do banco (deixe em branco em caso de erro) arquivo="/tmp/backup.sql" banco="erp" # Nome do BD mailserver="192.168.0.1" remetente="sincroniza-db@seudominio.com.br" destinatario="rogerio@seudominio.com.br" assunto="Relatorio de sincronizacao $banco" # assunto do email sendEmailpath="/usr/local/sendEmail-v1.42" # Caminho onde esta o sendEmail relat="/tmp/sincroniza-db" echo "Relatorio de sincronizacao - banco: $banco - data $ontem" > $relat echo "-----------------------------------------------------" >> $relat echo "" >> $relat echo "Fazendo o dumping do banco $banco" >> $relat if pg_dump -f $arquivo -Ft $banco -h $servidor -U $usuario then echo "Dumping do banco $banco executado com sucesso" >> $relat else echo "Erro no dumping" >> $relat fi echo "" >> $relat echo "Dropando o banco $banco backup" >> $relat if dropdb $banco then echo "Banco $banco removido com sucesso" >> $relat else echo "Erro na remocao do banco $banco" >> $relat fi echo "" >> $relat echo "Recriando o banco $banco" >> $relat if createdb $banco $codificacao then echo "Banco $banco criado com sucesso" >> $relat else echo "Erro na criacao do banco $banco" >> $relat fi echo "" >> $relat echo "Populando o banco" >> $relat if pg_restore -Ft $arquivo -d $banco then echo "Banco $banco populado com sucesso" >> $relat else echo "Erro na carga de $banco " >> $relat fi echo "Removendo arquivo de backup" rm -f $arquivo echo "Reportando o ocorrido" cat $relat | $sendEmailpath/sendEmail.pl -u "$assunto" -f $remetente -t $destinatario -s $mailserver
Download do banco de dados NCBI NR (DNA)
Agenda de Contatos - Shell Script + MYSQL
Nenhum coment�rio foi encontrado.
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Como instalar o Telegram Desktop no Ubuntu 24.04
Overclocking Permanente para Drastic no Miyoo Mini Plus
Problemas de chaves (/usr/share/keyrings) no Debian
Converter os repositórios Debian para o novo formato com as chaves
Programa simples pra cortar vídeos (6)
Instalação automatizada do Debian 12 em UEFI (1)
Browser/Placa de vídeo trava Ubuntu 22.04 (2)