backup e restore postgresql
Moderador: Moderadores
-
pauloa1
- Usuário Nível 3

- Mensagens: 227
- Registrado em: 25 Jun 2008 14:57
- Localização: Augusto Pestana-RS
backup e restore postgresql
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
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
-
raquelreis
- Usuário Nível 2

- Mensagens: 87
- Registrado em: 18 Jul 2011 15:29
- Localização: à procura
backup e restore postgresql
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...
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.
[]'s
_____________________________________________________________________________________
PROGRAMADOR é aquele que te resolve um problema que você não sabia que tinha, de uma maneira que você não compreende.
-
pauloa1
- Usuário Nível 3

- Mensagens: 227
- Registrado em: 25 Jun 2008 14:57
- Localização: Augusto Pestana-RS
backup e restore postgresql
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
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
backup e restore postgresql
pode compartilhar conosco?
[]´s
[]´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.
“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.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
backup e restore postgresql
Olá Paulo,
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.
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.
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 )pauloa1 escreveu: Como vcs fazem com rotinas de backup e restore?
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.
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.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 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
xHarbour.org + Hwgui + PostgreSql
backup e restore postgresql
vlw Leo...
[]´s
[]´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.
“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.
backup e restore postgresql
Aproveitei a dica do sygecom e fiz a minha versão da rotina para LINUX.
Código: Selecionar todos
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
backup e restore postgresql
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
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
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
backup e restore postgresql
(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!
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ê.
(2) Não tente fazer o backup copiando os arquivos diretamente. Não funciona. Use o script de backup!
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ê.
backup e restore postgresql
Galera,
Peguei a idéia de vcs e montem meu backup para MYSQL com HWGUI!
Peguei a idéia de vcs e montem meu backup para MYSQL com HWGUI!
Código: Selecionar todos
#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
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
backup e restore postgresql
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!
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
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql

