Hummm meter un respaldo en un campo ? Salvo que la DB tenga muuuuy poca info !
La opcion de Ademar funciona muy bien, solo que tarda una eternidad la restauracion si la DB es mediana a grande !
En mi caso, uso lo siguiente :
- Verifico y detengo el servicio
- Code: Select all Expand view RUN
static function VrfMySrvSts()
local oLoc, oWmi, oServiceList, oService, aSrvDts2Ret := {.f.,""}
oLoc:= CreateObject( "wbemScripting.SwbemLocator" )
oWmi:= oLoc:ConnectServer()
if oWmi == nil
msginfo( "NO SE PUDO OBTENER INFO DEL MOTOR DE DATOS PARA GENERAR EL RESPALDO.","AVISO" )
return aSrvDts2Ret
endif
oServiceList := oWmi:ExecQuery( "select * from Win32_Service where Name='MySQL'" )
for each oService in oServiceList
if oService:State == "Stopped"
aSrvDts2Ret[1] := .t.
endif
if oService:State == "Running"
oService:StopService()
aSrvDts2Ret[1] := .t.
aSrvDts2Ret[2] := "MySQL"
endif
next
return aSrvDts2Ret
- Ejecuto este programita similar al winzip o winrar desde linea de comandos
- Code: Select all Expand view RUN
aBckUpDatDts[2] := "c:\Repaldos"
aBckUpDatDts[3] := "c:\CarpetaDeMySql"
cBckPFix := "NombreDeTuRespaldo" + " " // Ojo en el espacio final sirve para separar los parametros !!!
aSrvMyDts := VrfMySrvSts()
if aSrvMyDts[1]
WaitRun( "7za.exe a " + aBckUpDatDts[2] + "\rsbck_" + cBckPFix + aBckUpDatDts[1] + "\DATA -pTuPassword", 0 ) // -p Para comprimir con password
endif
- Arranco el servicio otra vez
WaitRun( "sc start " + aSrvMyDts[2], 0 )
if vrfSqlEngOn()
// Aqui nomalmente lo que hago es cerrar el programa y que vuelvan a entrar...
endif
endif
- Code: Select all Expand view RUN
static function vrfSqlEngOn()
local oLoc, oWmi, oServiceList, oService, lVal2Ret := .f.
oLoc:= CreateObject( "wbemScripting.SwbemLocator" )
oWmi:= oLoc:ConnectServer
if oWmi == nil
DckMBox( 1, "NO FUE POSIBLE ARRANCAR EL MOTOR DE DATOS DESPUES DEL RESPALDO.",,,, )
return lVal2Ret
endif
oServiceList := oWmi:ExecQuery( "select * from Win32_Service where Name='MySQL'" )
for each oService in oServiceList
if oService:State == "Running"
lVal2Ret := .t.
endif
next
return lVal2Ret
El 7za.exe lo puedes encontrar sin problemas en google
Dependiendo de la pc, es posible que tengas que ejecutar como administrador.
Esto lo estoy usando desde hace años en DBs medianas ( 40 a 70 millones de registros ) sin ningun problemas hasta la fecha.
Espero les sirva.
Saludos