Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Backup y Restore de BD en SQL Server con C# (https://www.clubdelphi.com/foros/showthread.php?t=62999)

Lester 25-01-2009 00:28:55

Backup y Restore de BD en SQL Server con C#
 
Hola a todos, tengo realizado un proyecto que permite realizar backup y restore de BD de SQL Server, lo programé en C#, pero el problema es que cuando realizo un BACKUP en un servidor remoto y le doy el camino (local - en mi máquina) para que me guarde el .bak entonces me lo guarda con el mismo camino pero en el server seleccionado..., igualmente pasa con el restore, cuando mando a restaurar una bd remota con un fichero local entonces me dice que no puede restaurarlo porque está offline o no se encuentra. Local si me trabaja perfecto, las sentencias que utilizo para backup y restore las pongo a continuación, son sentencias SQL que utilizo en JOBS...

SENTENCIA PARA BACKUP:

Código:

cmd.CommandText = "";
cmd.CommandText = "BACKUP DATABASE [" + BaseDatosComboBox.Text + "] TO DISK = N'" + sfd.FileName.ToString() + "' WITH  INIT, ";
cmd.CommandText += "NOUNLOAD, NAME = N'Backup', NOSKIP, NOFORMAT ";
cmd.CommandText += "RESTORE VERIFYONLY FROM DISK = '" + sfd.FileName.ToString() + "'";
cmd.ExecuteNonQuery();

SENTENCIA PARA RESTORE:

Código:

cmd.CommandText = "";
cmd.CommandText =  "RESTORE FILELISTONLY FROM DISK = '" + ofd.FileName.ToString() + "' ";
cmd.CommandText += "RESTORE DATABASE " + BaseDatosComboBox.Text + " FROM DISK = '" + ofd.FileName.ToString() + "' WITH REPLACE";
cmd.ExecuteNonQuery();

El componente ofd es un OpenFileDialog al igual que el sfd es un SaveFileDialog, donde escojo el nombre del fichero BACKUP o el RESTORE

Existen otras vías para realizar BACKUPS o RESTORES con C# de Base de datos en SQL Server sin que sea esta???

Desde ya muchas gracias...

__hector 02-02-2009 16:00:53

La ruta que se especifica tanto en la sentencia backup como restore, son locales a la maquina donde se ejecuta el motor de base de datos de sql server. Si quieres que dichos archivos se guarden en otro sitio, puedes mapear un share en el servidor, o probar colocando un path UNC (de la forma \\maquin\share) y ver si te funciona.

Nunca lo he probado, pues no he tenido la necesidad, pero puedes comprobar lo que te digo intentando hacer un backup/restore de una base de datos remota usando el mismisimo SQL Server Enterprise Manager, y veras que no puedes especificar rutas fuera de la misma maquina donde este corre.

Suerte!

Lester 07-02-2009 13:49:32

Cita:

Empezado por hector (Mensaje 336852)
La ruta que se especifica tanto en la sentencia backup como restore, son locales a la maquina donde se ejecuta el motor de base de datos de sql server. Si quieres que dichos archivos se guarden en otro sitio, puedes mapear un share en el servidor, o probar colocando un path UNC (de la forma \\maquin\share) y ver si te funciona.

Nunca lo he probado, pues no he tenido la necesidad, pero puedes comprobar lo que te digo intentando hacer un backup/restore de una base de datos remota usando el mismisimo SQL Server Enterprise Manager, y veras que no puedes especificar rutas fuera de la misma maquina donde este corre.

Suerte!

Es verdad hector, tienes toda la razón, no sé como no me había fijado en eso..., muchas gracias por tu respuesta...


La franja horaria es GMT +2. Ahora son las 01:00:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi