Clipper On Line • Ver Tópico - backup e restore postgresql

backup e restore postgresql

Discussão sobre SQL

Moderador: Moderadores

 

backup e restore postgresql

Mensagempor pauloa1 » 04 Nov 2011 08:48

Olá Pessoal!

Estou testando postgresql + sqlrdd.

Por enquanto tudo blz.

Minha dúvida é :
Aos que usam postgresql ou outro BD.

Como vcs fazem com rotinas de backup e restore?
Como fazem quando precisam incluir uma nova tabela, campo, ou replicar dados no cliente?
criam um scrips sql e enviam para cliente para executar com pgadmim ?
Ou fazem via sistema mesmo?

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 223
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

backup e restore postgresql

Mensagempor raquelreis » 22 Nov 2011 09:27

Bom dia pauloa1,

Vai depender do que você realmente deseja.
Eu por exemplo, deixo uma rotina de backup disponível no sistema para que um usuário super, como gerente, utilize.
Mas a restore apenas com senha Master, que no caso é um dos programadores.

Já a criação de tabelas,campos,etc, uso acesso remoto com o computador do cliente e executo/crio o scrip.

A parte de manipulação do banco não aconselho deixa disponível para o cliente, pois ele pode cometer erros e prejudicar o sistema todo.

Espero ter ajudado...
Keel
[]'s

_____________________________________________________________________________________
PROGRAMADOR é aquele que te resolve um problema que você não sabia que tinha, de uma maneira que você não compreende.
Avatar de usuário

raquelreis
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 18 Jul 2011 15:29
Cidade/Estado: à procura
Curtiu: 0 vez
Mens.Curtidas: 0 vez

backup e restore postgresql

Mensagempor pauloa1 » 22 Nov 2011 09:53

Obrigado pela resposta Raquel!

A Criação de novas tabelas e backup, fiz via sistema.

Estou vendo agora uma melhor forma de atualizar tabelas "quando tiver alteração ou inclusão de algum campo" via sistema, somente nas tabelas modificadas. Oque tenho hoje repassa todas mesmos as que não foram alteradas.

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 223
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

backup e restore postgresql

Mensagempor fladimir » 11 Out 2012 02:09

pode compartilhar conosco?

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

backup e restore postgresql

Mensagempor sygecom » 13 Out 2012 10:41

Olá Paulo,
pauloa1 escreveu:Como vcs fazem com rotinas de backup e restore?

Eu faço direto pelo meu sistema, para poder fazer isso eu distribuo o meu sistema junto os arquivos necessários para poder fazer backup(pg_dump.exe, zlib1.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, ssleay32.dll, libeay32.dll )
E depois uso o comando abaixo:
cFILE_TEMP:='backup_sistema'
nHandle=fcreate('script_bat',0)
FWRITE(nHandle,"SET PGPASSWORD="+_SENHA_SQL() + HB_OsNewLine())
FWRITE(nHandle,"pg_dump --host="+ _Host() +" --port="+ _PORTA() + " --file=" + cFILE_TEMP+".dmp --username="+ _USUARIO_SQL() +" --format custom --blobs --verbose " + _DATABASE() )

A Restauração uso o mesmo processo, porém me certifico que a base onde será restaurada está realmente vazia, ou seja sem nenhuma tabela de uso do meu sistema para não ferrar o meu sistema.

Como fazem quando precisam incluir uma nova tabela, campo, ou replicar dados no cliente?
criam um scrips sql e enviam para cliente para executar com pgadmim ?
Ou fazem via sistema mesmo?

Para criação ou alteração de tabelas eu faço direto via meu sistema mesmo, mantenho em meu sistema um .PRG com todas as tabelas e estruturas das tabelas para ser verificada quando muda de versão o sistema.
Para replicação já vi que nas versão mais atual >=9.0 já tem replicação nativa, mas ainda não sobrou um tempo para estudar como realmente funciona, mas acredito que é o melhor caminho por ser nativo do próprio PostgreSQL.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7006
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

backup e restore postgresql

Mensagempor fladimir » 13 Out 2012 10:58

vlw Leo...

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

backup e restore postgresql

Mensagempor Vlademiro » 06 Mai 2013 10:39

Aproveitei a dica do sygecom e fiz a minha versão da rotina para LINUX.


FUNCTION BackupPg()
LOCAL CFILE_TEMP := "backup_pg.sh"
LOCAL nHandle
LOCAL cTela
SAVE SCREEN TO cTela
nHandle := FCREATE( CFILE_TEMP , 0 )
FWRITE( nHandle , '#!/bin/bash' + HB_OSNewLine() )
FWRITE( nHandle , 'rm gestor.backup'+HB_OSNewLine() )
FWRITE( nHandle , 'export PGPASSWORD=SENHA'+HB_OSNewLine() )
FWRITE( nHandle , 'pg_dump --host=localhost --port=5432 --file=gestor.backup --username=gestor --format=custom --verbose gestor'+HB_OSNewLine() )
FCLOSE(nHandle) // Fecha o arquivo para que ele possa ser executado mais adiante.
RUN ('chmod 755 backup_pg.sh')
INKEY(0.5)
RUN ('./backup_pg.sh') // Executo
INKEY(0.5)
RUN ('rm backup_pg.sh') // Apago o arquivo
RESTORE SCREEN FROM cTela

RETURN NIL

Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

backup e restore postgresql

Mensagempor janio » 07 Mai 2013 12:54

Mas esse backup eh feito na propria maquina servidora ou em outra?

Qual a diferença de copiar da maneira tracional os arquivos do banco e esta?

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

backup e restore postgresql

Mensagempor Vlademiro » 10 Mai 2013 19:25

(1) O backup pode ser feito de qualquer máquina. Se vc reparar existe um local para você informar o IP.
(2) Não tente fazer o backup copiando os arquivos diretamente. Não funciona. Use o script de backup!

:D

Uma sugestão para quem está começando com o postgre é baixar o pgAdminIII, essa ferramenta é muito boa e é totalmente visual. A vantagem é que ela exibe os comandos, daí você pode ter o equivalente em linha de comando.

Para restaurar use a ferramente pgrestore (linha de comando) ou use o pgAdmin. Basta criar o banco, clicar sobre o banco com o botão esquerdo e selecionar restaurar (ou seria importar ?). A ferramenta pede o local onde está o arquivo de backup e pronto! A ferramenta mostra o comando pgrestore com os parâmetros e restaura o banco para você.
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

backup e restore postgresql

Mensagempor janio » 12 Mai 2013 10:18

Galera,

Peguei a idéia de vcs e montem meu backup para MYSQL com HWGUI!

#Include "hwgui.ch"
STATIC Thisform

FUNCTION Backup( ... )
RETURN _Backup( HB_AParams() )

FUNCTION _Backup(  )

   Local oDlg, oGroup1, oGroup2, oLabel1, oLabel2, oLabel3, oButtonex1, oButtonex2, oButtonex3

   Private vPasta := "", oArqRet, oFonte, vArquivoDestino := SEM(DOW(date())) + '.sql', oLabel4

PREPARE FONT oFonte NAME "Verdana" WIDTH 0 HEIGHT -13 WEIGHT 700 charset 255

INIT DIALOG oDlg TITLE "BACKUP" ;
    AT 100,186 SIZE 656,330 NOEXIT CLIPPER ;
    FONT HFont():Add( 'Verdana',0,-13,400,,,) ;
    STYLE WS_POPUP+WS_CAPTION+WS_SIZEBOX+DS_CENTER
    Thisform := oDlg

   //
   
   @ 012,012 GROUPBOX oGroup1 CAPTION " Backup base de dados - Banco MySql "  SIZE 632,99 ;
     FONT oFonte ;
     STYLE BS_CENTER

   @ 021,038 SAY oLabel1 CAPTION "Pasta Destino"  SIZE 107,21  ;
     FONT oFonte
   
   @ 021,060 GET oArqRet VAR vPasta SIZE 578,24   ;
      ON CHANGE {|| habilitaConfirma(vPasta,oButtonex2) }
     
   @ 604,060 BUTTONEX oButtonex1 CAPTION "..."   SIZE 29,22 ;
     ON CLICK {|| ProcuraPasta( oButtonex2 ) } ;
     STYLE WS_TABSTOP 

   //
   
   @ 012,120 GROUPBOX oGroup2 CAPTION "" SIZE 632,99 ;
     FONT oFonte ;
     STYLE BS_CENTER

   @ 021,140 SAY oLabel2 CAPTION "Arquivo Destino"  SIZE 107,21  ;
     FONT oFonte

   @ 021,160 SAY oLabel3 CAPTION vArquivoDestino SIZE 220,40  ;
      COLOR 16711680   ;
      FONT HFont():Add( '',0,-32,700,,,)

   @ 021,230 SAY oLabel4 CAPTION "" SIZE 350,30  ;
      COLOR 255   ;
      FONT HFont():Add( '',0,-22,700,,,)

   //

   @ 192,270 BUTTONEX oButtonex2 CAPTION "&Confirma"   SIZE 98,32 ;
      ON CLICK {|| Confirma(oButtonex2, oButtonex3, oArqRet) } ;
      STYLE WS_TABSTOP + WS_DISABLED
   
   @ 323,270 BUTTONEX oButtonex3 CAPTION "&Fecha"   SIZE 98,32 ;
      ON CLICK {|| EndDialog() } ;
      STYLE WS_TABSTOP 

   aDd STATUS oStatusPrincipal TO oDlg ;
   ON INIT {|this| this:SETtextPanel(1, time() ) } ;   
   Font HFont():Add( 'Arial',0,-13,700,,,)

   SET TIMER oTimer OF oDlg VALUE 1000 ACTION {|| AtualizaClock(oStatusPrincipal) }

   ACTIVATE DIALOG oDlg

RETURN oDlg:lresult

/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
Function AtualizaClock(This)

   This:SETtextPanel(1, time() )

Return nil

/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/

STATIC FUNCTION ProcuraPasta( hbBotao )
Local varbuf
Local curpath := DISKNAME()+':\'+curdir()

   varbuf := SelectFolder(curpath)
   If !Empty(varbuf)
      oArqRet:Value := varbuf
      hbBotao:Enable()
      hbBotao:SetFocus()
   Endif
   dirchange( curpath )
   
RETURN Nil

/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/

Static Function habilitaConfirma(var, botao)

If !Empty( var )
   botao:enable()
Else
   botao:Disable()
Endif

botao:refresh()

Return .t.

/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/

Function Confirma(bot1, bot2, GetDes)
Local nHandle
Local arquivo    := vPasta + If( right( AllTrim(vPasta),1 ) = "\", "", "\" ) + vArquivoDestino
Local ArqBat     := "backupPDV.bat"
Local Usuario    := "usuario"
Local Senha      := "senha"
Local aIni       := HB_ReadIni('c:\CriaSoftWare\PafCriaSoftWare.ini')   
Local   aSecaoIni  := aIni['Config']
Local   IpServidor := Upper( aSecaoIni['Servidor'] )

     If  IpServidor = "LOCAL"
        IpServidor = "localhost"
     Endif

   If !File( "mysqldump.exe" )
      MsgStop("ARQUIVO 'mysqldump.exe' NÃO ESTA PRESENTE")
      Return .t.
   Endif

   If !MsgYesNo("CONFIRMA BACKUP?")
      Return .t.
   Endif

   //
   bot1:disable()
   bot2:disable()
   GetDes:disable()
      
   oLabel4:caption := "Deletando backup anterior"
   
   Delete File( arquivo )
   Delete File( ArqBat )

   oLabel4:caption := "Criando script de backup"

   nHandle := fCreate( ArqBat , 0 )
   fWrite( nHandle , 'mysqldump --host=' + IpServidor + ' -u ' + Usuario + ' -p' + Senha + ' -x -e SeuBancoDados > ' + arquivo + HB_OSNewLine() )
   fClose(nHandle) // Fecha o arquivo para que ele possa ser executado mais adiante.
   
   Millisec(500)
   
   oLabel4:caption := "Fazendo backup. Aguarde..."

   MyRun( ArqBat ) // Executo
   
   Millisec(500)

   oLabel4:caption := ""

   Delete File( ArqBat )
         
   MsgInfo("BACKUP EFETUADO COM SUCESSO!")
   
   EndDialog()

Return .t.

/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/

FUNCTION Sem(n_sem)
LOCAL semana:={"Domingo","Segunda","Terca","Quarta","Quinta", "Sexta","Sabado"}

RETURN(semana[n_sem])

/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/

function MyRun( cComando )
**************************

local oShell, RET

oShell := CreateObject( "WScript.Shell" )
RET    := oShell:Run( "%comspec% /c " + cComando, 0, .T. )
oShell := NIL

return iif( RET = 0, .T., .F. )
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

backup e restore postgresql

Mensagempor janio » 18 Mai 2013 16:20

Fazer o backup neste método eh otimo, super rapido e seguro. Em compensação... a restauração demora pra c*r*lho! Estou desde o meio dia restaurando (para testes) uma base de dados de 3gb. São 16:20h e ainda nao terminou. Estou em not dell, core i5 e 6gb de memoria (maquina razoável).

Nem tudo eh perfeito!
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro