Replicação postgresql
Publicado por Rogerio Reis 26/02/2007
[ Hits: 7.718 ]
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
Pequeno, simples mas interessante chat desenvolvido totalmente em shell script.
Fazendo backup de uma pasta em arquivos separados
Instalador do emulador de joystick Xbox para joystick generico para PC, PS2, PS3 (Debian e Derivados
FindBackdoor - Detectar possíveis backdoors em arquivos PHP (WordPress)
Nenhum comentário foi encontrado.
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalação Completa e Configuração Básica do Void Linux
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Tenha opção de emblemas embutido no pcmanfm
Instalar o Microsoft Teams no Ubuntu e Derivados
Erro ao instalar o linux-headers (2)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (4)









