USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Um grande problema
Defende
JARINÚ
SP - BRASIL
Postada em 09/06/2004 07:44 hs            
Pessoal o caso eh o seguinte:
Eu presciso em uma mesma funcao fazer as aseguintes operacoes na sequencia:
1 - Parar o servico MySql
2 - Fazer o backup dos dados
3- Reiniciar o servico
 
Tudo isso pra mim eh sem problema. O que acontece eh que nao dah tempo de parar o servico. Eu nao consigo primeiro parar ele e depois fazer o backup.
Ja tentei usar o DoEvents mas nao vai.
Olhem o codigo que faz essa rotina:
 
Private Sub btnCompacta_Click()
Dim ArqCompactado As String
Dim ArqOrigem As String
Dim Origem As String
Shell "net stop mysql", vbHide
DoEvents
Origem = DirBackup
    If txNome = "" Then
        MsgBox "Você tem de informar um nome de arquivo de backup valido.", vbInformation, "Aviso de Compactação."
            txNome.SetFocus
            Exit Sub
    Else
        ArqCompactado = Pasta_Destino.Path + "" & "link_" & txNome.Text + ".zip"
        ArqOrigem = Origem + "" + "*.*"
       
        lblProgresso.Visible = True
        Compacta ArqCompactado, ArqOrigem
        lblProgresso = ""
       
   Shell "net start mysql", vbHide
   DoEvents
  
    Call LogBackup("Backup", txNome.Text & ".zip", ArqCompactado)
        MsgBox "Arquivos compactados com sucesso!"
       
        lblProgresso.Visible = False
    End If
   
End Sub
O que vcs acham que eu poderia fazer???
     
Charles
não registrado
Postada em 09/06/2004 10:21 hs   
Cara,

Para evitar problemas com tempo de execução de determinada tarefa e evitar de usar espera ocupada (DoEvents), eu aconselho que você faça o backup sem parar o serviço do MySQL.

Para isso, você tem 2 formas de fazer o Backup:

1-Fazendo o DUMP do Banco de Dados

2-Gerando arquivos XML (pelo ADO, isso é muito fácil) e compactando esses arquivos XML.

Eu particularmente uso a 2ª alternativa.

Até mais!
Charles
     
Defende
não registrado
Postada em 09/06/2004 12:45 hs   
Caro Charles.
 
Fazer o backup nao eh o problema.
O problema eh na hora de restaurar ele. O servico tem de estar parado para que isso aconteca sem danos pois eu fiz um teste aqui e se eu restauro ele com o banco rodando ele me ferra todas as tabelas.
 
O que vc sugeriria para isso?
     
Charles
não registrado
Postada em 09/06/2004 14:45 hs   
Eu estou ainda desenvolvendo o meu módulo de Backup para MyySQL.

Mas, estou fazendo assim:

Através da conexão com o Banco de Dados, dadas as devidas permissões, é possível usar todas as funcionalidades que um Front-End qualquer lhe dá.

Para voltar um Backup, uma sugestão:

-Dê o comando DROP DATABASE no Banco de Dados antigo
-Dê o comando CREATE DATABASE e recrie as estruturas (vazias)
-Importe os dados do XML

-No caso de você querer ter uma segurança maior, poderá até fazer a leitura dos XML e
gravando em tabelas temporárias, que podem ser comparadas com a base
de dados (nesse caso você não DROPA o Banco de Dados antes...e sim, checa as
mudanças que existem entre o Banckup e o que já existe na Base)

Tudo isso, sem parar o serviço.

Os arquivos XML são tratados no VB como se fossem Recordset, isso facilita bem o serviço.

Realmente, rotinas de Backup são meio complexas....estou tentando fazer assim, até agora foi o melhor método que achei, pois, mesmo usando o "DUMP", ainda há certos inconvenientes com versões diferentes de Windows...problemas com Permissões (arquitetura do Win98 é bem diferente do Windows XP).

Abraços!
Charles


     
Defende
JARINÚ
SP - BRASIL
Postada em 09/06/2004 15:14 hs            
Cara, eh uma boa ideia. Eu pensei nisso aqui, veja o que voce acha:
 
Tenho um segundo exe que roda separado do exe principal do sistema. Pra fazer o backup, sem problema, agora pra restaurar eu faco assim: Verifico se o programa principal esta rodando e aviso pra fechar ele. Dai no formulario do sistema de backup na hora que o usuario clica em Restaurar eu disparo um timer com 10 segundos e uma rotina pra para o mysql, restauro tudo certinho, copiando e mandando substituir e dai logo em seguida disparo o mesmo timer soh que agora com a rotina de ativar o mysql.
Pronto, esta tudo restaurado. O que vc acha? Qual sua opniao?
 
Gostei muito desse ideia ai de DROP e de recriar tambem.
 
Rodrigo
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página