Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Salvar BD (https://www.clubdelphi.com/foros/showthread.php?t=38263)

dtomeysoto 08-12-2006 18:29:10

Salvar BD
 
Hola amigos, soy nuevo en el SQL Server y quisiera preguntarles si existe alguna forma de realizar una salva hacia un soporte externo de una base de datos en un servidor SQL Server. Como soy nuevo agradecería si alguien tiene algún manual de SQL server que me haga llegar o me diga desde donde lo puedo descargar. Un saludo Damian.

__hector 08-12-2006 23:00:15

Que es hacer una salva? Backup? A que te refieres con soporte externo? copiar el backup a otro disco? memoria flash? usb drive?

dtomeysoto 19-12-2006 15:49:45

Cuando me refiero a "hacer una salva" quiero decir hacer un backup de la base de datos, de manera que si un día sucede algo en el servidor yo pueda restaurar la última salva o backup que hice.

Como bien dices, esa salva o backup quisiera poder guardarla o almacenarla hacia una memoria flash por ejemplo o una ubicación que yo le especifique en mi disco duro por poner otro ejemplo.

__hector 19-12-2006 16:37:53

Creo que verificando la sentencia BACKUP DATABASE en los Books online de SQL Server puedes ver la sintaxis exacta de como escribir mandatos en TSQL para hacer backup de la base de datos.

Estoy casi completamente seguro de que en uno de los parametros puedes indicar la ruta fisica del archivo donde quieres que se guarde el backup, por lo que poniendo la ruta deseada (a la unidad de memoria flash, por ejemplo) puedes lograr lo que te propones.

Suerte!

santi33a 19-12-2006 18:37:21

Hola a todos:
Yo desde hace tiempo tengo esta opcion desde una aplicación cliente donde el cliente hace una salva de la BD cuando quiere.
En mi caso tengo una Procedimiento Almacenado al cual le paso como parametro el destino de la salva
Código SQL [-]
CREATE PROCEDURE BACKUP_BD @directorio varchar(200) AS
SET LANGUAGE spanish
checkpoint

BACKUP DATABASE Combustible to disk = @directorio  with init
BACKUP LOG Combustible TO disk = @directorio 
DBCC SHRINKFILE (Combustible_Log, 100)
go
El usuario tiene que ser miembro del grupo db_backupoperator

Ahora lo que no he podido hacer es lo contrario que el cliente restaure la salva, alguien sabe como ?

Neftali [Germán.Estévez] 22-12-2006 12:13:04

Cita:

Empezado por santi33a
Ahora lo que no he podido hacer es lo contrario que el cliente restaure la salva, alguien sabe como ?

¿Qué problema te ha dado el RESTORE DATABASE?
Que supongo que es el que has probado.

santi33a 23-12-2006 15:11:44

Claro que lo he probado por ejemplo:
Tengo una base de datos llamada Prueba a la que me conecto cuando abro la aplicacion cliente, esto mediante TADOConnection, ahora cuando quiero restuarla cierro la conexión y abro una conexion mediante otro TADOConnection a la BD Master donde tengo un procedimiento almacenado llamado restaura
Código SQL [-]
CREATE PROCEDURE Restaura @n varchar(200) AS
begin
 restore database Prueba from disk= @n with RECOVERY ,  REPLACE 
end
GO
esto lo hago de esta forma

Código Delphi [-]
procedure TFRest.BitBtnAClick(Sender: TObject);
begin
  inherited;
  if od.Execute  then begin        // un OpenDialog
   dm.adoc.Close;                   // Cierro la conexion con la BD Prueba
   adom.Open;                       // Abro la conexion con la BD Master
   Restaura.Parameters.ParamByName('@n').Value := od.FileName; // Le paso la direccion al sp
   Label1.Caption := 'Restaurando ...';
   BitbtnC.Visible := False;
   BitbtnA.Visible := False;
   Update;
   try
    Restuara.ExecProc;                     //  Y mando a restaurarla BD 
   finally
    adom.Close;                      //  Cierro la conexion con Master
    dm.adoc.Open;                  //  y la vuelvo abrir con Prueba
    Close;
   end;
  end;
end;

El problema esta que siempre me dice que falla porque no tengo una conexion exclusiva con la DB y ésta está en uso, sin embargo desde el SQL Query Analizer si funciona
Dime si ves que estoy haciendo mal ?:confused:


La franja horaria es GMT +2. Ahora son las 04:37:23.

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