PDA

Ver la Versión Completa : Salvar BD


dtomeysoto
08-12-2006, 18:29:10
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

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
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

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


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: