BACKUP MYSQL

GOLVEIAR 19/11/2015 11:00:50
#454147
Galera me ajuda aí. Tenho uma aplicação com um db mysql de 1Gb junto com o programa e o cliente está querendo backup dos dados pois é a segunda vez que perde parcialmente os dados. Quando vou fazer o backup uso o mysqlfront mas não posso ficar indo no estabelecimento sempre. Queria fazer via vb6 mesmo. Pra restaurar e backup. Todos os exemplos que vi aqui não funcionou ou é lento. Demorou muito. alguém pode me ajudar a fazer um já que migrei fax pouco tempo pro mysql e não manjo muito. Desde já agradeço.
FBGSYSTEMS 19/11/2015 11:07:59
#454148
Resposta escolhida
Fala amigo, quando comecei a trabalhar com o Mysql tive a mesma dúvida e foi aqui mesmo no fórum que me ajudaram, entao passo pra quem precisar. eu fiz assim:

        Open [Ô]backup.bat[Ô] For Output As #1
Print #1, [Ô]cd [Ô] & Chr(34) & [Ô]C:\FBG Systems[Ô] & Chr(34)
varsegundalinha = [Ô]mysqldump [Ô] & dsConfig!nomebd & [Ô] > [Ô] & Chr(34) & txtCaminho & Chr(34) & [Ô]\database[Ô] & Format(Date, [Ô]dd-mm-yyyy[Ô]) & [Ô]-[Ô] & Format(Time, [Ô]hh-mm[Ô]) & [Ô].sql -h [Ô] & servidor & [Ô] -u root -p[Ô] & password & [Ô][Ô]
Print #1, varsegundalinha
[ô]Print #1, [Ô]pause[Ô]
Close #1
[ô]Sleep (1000)
[ô]Shell varsegundalinha
[ô]Call ShellExecute(hWnd, [Ô]Open[Ô], App.Path & [Ô]\backup.bat[Ô], [Ô][Ô], App.Path, 1)
Shell App.Path & [Ô]\backup.bat[Ô], vbHide
Timer1.Enabled = True


No timer eu pus uma rotina pra verificar se o cmd ainda esta rodando
 If AppIsRunning([Ô]cmd.exe[Ô]) = False Then

Kill ([Ô]backup.bat[Ô])
MsgBox [Ô]Backup realizado com sucesso![Ô], vbInformation, [Ô]ATENÇÃO![Ô]
Timer1.Enabled = False
End If


Em um módulo:
Option Explicit
Private Const TH32CS_SNAPPROCESS As Long = 2
Private Const MAX_PATH As Long = 260
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type
Private Declare Function CreateToolhelp32Snapshot Lib [Ô]Kernel32[Ô] (ByVal lFlags As Long, _
ByVal lProcessID As Long) As Long
Private Declare Function Process32First Lib [Ô]Kernel32[Ô] (ByVal hSnapShot As Long, _
typProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib [Ô]Kernel32[Ô] (ByVal hSnapShot As Long, _
typProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib [Ô]Kernel32[Ô] (ByVal hPass As Long)

Public Function AppIsRunning(ByVal AppName As String) As Boolean
Dim Process As PROCESSENTRY32
Dim hSnapShot As Long
Dim r As Long
AppName = LCase$(AppName)
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
If hSnapShot <> -1 Then
Process.dwSize = Len(Process)
r = Process32First(hSnapShot, Process)
Do While r
If LCase$(Left$(Process.szExeFile, InStr(1, Process.szExeFile, vbNullChar) - 1)) = AppName Then
AppIsRunning = True
r = False
End If
r = Process32Next(hSnapShot, Process)
Loop
CloseHandle hSnapShot
End If
End Function


Comigo da certo. Mas pra fazer nos terminais voce precisa escolher uma pasta e copiar o mysqldump la. No servidor da certo se o mysqldump estiver no path do sistema
GOLVEIAR 20/11/2015 11:15:36
#454221
Valeu pela dica mas sou novo mesmo não manjo nada praticamente. onde coloco a senha nome porta e endereço do db que vou fazer backup.
NILSONTRES 20/11/2015 14:59:45
#454251
Só um detalhe, restaurar o BD de 1 Gb, demora mesmo, a restauração tem que inserir todos os registros, imagina só quantos registros tem em um banco com 1gb.
ACCIOLLY 21/11/2015 16:46:36
#454305
O pessoal do mysql liberou uma dll de backup e restore.
esses dias eu postei uma resposta pra um colega nosso com o mesmo problema seu

http://www.vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=447231&pagina=1

só que ele tem o vb.net

talvez possa te ajudar
XLEGENDARY 21/11/2015 19:09:02
#454326
rapaz, cria um shedule em um horario que vc tenha certeza que o server ta ligado
e seja feliz.. ^^
TIAGO007 22/11/2015 03:31:16
#454329
Citação:

:
Galera me ajuda aí. Tenho uma aplicação com um db mysql de 1Gb junto com o programa e o cliente está querendo backup dos dados pois é a segunda vez que perde parcialmente os dados. Quando vou fazer o backup uso o mysqlfront mas não posso ficar indo no estabelecimento sempre. Queria fazer via vb6 mesmo. Pra restaurar e backup. Todos os exemplos que vi aqui não funcionou ou é lento. Demorou muito. alguém pode me ajudar a fazer um já que migrei fax pouco tempo pro mysql e não manjo muito. Desde já agradeço.



So uma dica, tenho uma loja onde instalei o meu sistema e ela tinha menos movimento que as outras e reparei que o banco em mysql tava mais um pouco que 1 gb as outra lojas em torno 250mb, fiz copia do banco, e reinstalei o mysql, e importei os dados, de mais de 1 gb, caiu para 300mb
TIAGO007 22/11/2015 03:36:15
#454330
Citação:

:
:
Galera me ajuda aí. Tenho uma aplicação com um db mysql de 1Gb junto com o programa e o cliente está querendo backup dos dados pois é a segunda vez que perde parcialmente os dados. Quando vou fazer o backup uso o mysqlfront mas não posso ficar indo no estabelecimento sempre. Queria fazer via vb6 mesmo. Pra restaurar e backup. Todos os exemplos que vi aqui não funcionou ou é lento. Demorou muito. alguém pode me ajudar a fazer um já que migrei fax pouco tempo pro mysql e não manjo muito. Desde já agradeço.


So uma dica, tenho uma loja onde instalei o meu sistema e ela tinha menos movimento que as outras e reparei que o banco em mysql tava mais um pouco que 1 gb as outra lojas em torno 250mb, fiz copia do banco, e reinstalei o mysql, e importei os dados, de mais de 1 gb, caiu para 300mb




resolvendo problema de tamanho ibdata1 http://wiki.adilson.net.br/linux/banco-de-dados/mysql/tamanho-do-ibdata1
JCM0867 24/11/2015 23:33:33
#454382
Se usasse SQl Server sei de um programa excelente, Pode fazer um Backup Local, FTP ou Nuvem (Onedrive, Google Drive, Dropbox, etc). zipa e cryptografa. Ainda tem opção de Hora, Dia, Frequência, etc
Tem uma versão Gratuita que é para até dois banco de dados
E uma versão paga que é para inúmeras funcionalidades e não é muito caro
Tópico encerrado , respostas não são mais permitidas