SQL Server - Crear un usuario para generar Respaldos SQL 2005

 
Vista:
sin imagen de perfil

Crear un usuario para generar Respaldos SQL 2005

Publicado por Linney Pérez Cornelio (8 intervenciones) el 17/12/2010 22:07:23
Buenas tardes, he estado creando respaldos en mi servidor de pruebas, cuando lo pase a producción al dia siguiente empezaron a fallar, revisando me di cuenta que los respaldos tenian diferente usuario(No recuerdo exactamente la columna que lo marcaba).

Pero investigando encontre, que si tenemos una tarea de respaldos y alguien mas se conecta y genera un respaldo, se pierde la cadena de conexión, es decir, si yo tengo un completo, y media hora después alguien mas se conecta y genera un respaldo, para que mis respaldo funcionen ya no me sirve mi completo, mas bien el completo de la persona que lo realizo, mi diferencial y mi log. Esto por que mas de una esta como Administrador.

El caso es que quiero crear un usuario que solo con ese se generen los Completos, Diferenciales y Log, aunque alguien mas se conecte que no me afecte. Es para SQL 2005.

de antemano,GRACiAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Crear un usuario para generar Respaldos SQL 200

Publicado por Loría (56 intervenciones) el 18/12/2010 06:26:13
Buenas noches Linney.

Hasta donde llega mi conocimiento lo que deseas hacer no puede realizarse. Los backup que se hacen en una base de datos afectan los consecuentes (diferenciales y de log), independiente de quién haya hecho el backup. La única forma sería coordinar con los otros administradores para que no puedan hacer backups y designar a una sola persona; no comprendo porque varias personas deberían estar haciendo backups si tu ya lo haces, pero es tu caso.

Algo que podrías probar, pero igual debes negociarlo con tus compañer@s, es que los backups se realicen con la clausula WITH COPY_ONLY. Esto hace que los full backup no interfieran en la cadena de respaldos de la BD para los diferenciales y de log. Pero como te digo deberás de negociarlo, porque si alguien utiliza la clausula normal romperá tu cadena.

Puedes buscar como utilizar esta clausula en la ayuda de Microsoft o google, es fácil.

Saludos.

Loría.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Crear un usuario para generar Respaldos SQL 200

Publicado por Linney Pérez Cornelio (8 intervenciones) el 20/12/2010 17:10:20
Lo que hice fue crear un usuario de Windows y un usuario en SQL con los persmisos Backup Operatos y sysadmin, con ese usuario programe los respaldos Completos, Diferenciales y Log, se realizaron sin problema, luego me conecte con el usuario de Administrador , entre al SQL con el usuario sa y con ese usuario trato de generar un respaldo y me manda el mensaje: Las operaciones de Copia de Seguridad y manipulación de Archivos ( Como ALTER DATABASE y ADD FILE) en una base de datos deben hacerse en serie. Emita de nuevo la instrucción al finalizar la operación actual de copia de seguridad o manipulación de archivos.

No entiendo porque me manda ese mensaje. Lo voy a seguir investigando, es que tengo que comprobar lo que me indicas, igual voy a probar lo del With_Copy_Only.

Muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear un usuario para generar Respaldos SQL 200

Publicado por Linney Pérez Cornelio (2 intervenciones) el 20/12/2010 21:29:46
Agregue la opción With_Copy_Only, lo deje de la siguiente manera:
Declare @strDatabase nvarchar(50)
Declare @strFolder nvarchar(500)

set @strDatabase=N'Wep'
set @strFolder =N'C:\RepBDWepComp'

Declare @tToday datetime
set @tToday=Getdate()

Declare @strBackupName nvarchar(100)
set @strBackupName=@strDatabase+ N''
+ STR(DATEPART(year,@tToday), 4, 0)
+ Replace(STR(DATEPART(month,@tToday),2,0), N' ',N'0')
+ Replace(STR(Datepart(Day,@tToday),2,0),N' ', N'0')
+ Replace(STR(Datepart(Hour,@tToday),2,0),N' ', N'0')
+ Replace(STR(Datepart(minute,@tToday),2,0),N' ', N'0')

Declare @strBackupFile nvarchar(600)
set @strBackupFile=@strFolder +N'\'+@strBackupName+N'.bak'

Backup Database @strDatabase
To Disk=@strBackupFile
With
COPY_ONLY,
INIT,
SKIP,
NAME=@strBackupName

Con este cambio, ya me dejo como Administrador realizar un respaldo y con el usuario que cree.

Ahora solo queda probar los respaldos y verificar que haya conservado la conexión.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear un usuario para generar Respaldos SQL 200

Publicado por Loría (56 intervenciones) el 21/12/2010 15:47:18
Perfecto debería servirte, si no coméntanos.

Excelente la retroalimentación.

Saludos.

Loría.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Crear un usuario para generar Respaldos SQL 200

Publicado por Linney Pérez Cornelio (8 intervenciones) el 21/12/2010 18:48:43
Al momento de la restauración me manda error. Te explico lo que hice Genere un respaldo Completo, Diferencial y LOg con el usuario que cree se llama Respaldos, luego me sali de esa sesión y entre con la sesión Administrador, me conecte a SQL con la sesión SA y genere un respaldo. Luego produje un Fallo en la BD, en la sesión de Administrador, me sali de esa sesión y entre con la de Respaldo trate de Adjuntar la BD que cree con mi usuario de Respaldos pero No me lo muestra en el Panel donde se seleccionan los Conjuntos a restaurar, trato de entrar a la pestaña Opciones y me manda el mensaje: Seleccione un Origen de Restauración, es lógico porque no aparece el respaldo que va a adjuntar.

Observación: Los respaldos que genere los generé con el usuario Respaldos, al tener que eliminar la BD ese usuario tambien se elimino, el único usuario que se conservo es el de SA. Supongo que por eso no me lo puede mostrar, porque el usuario no existe. Aunque ya lo volvi a crear, ni aun asi me muestra el respaldo.

A diferencia que si jalo el respaldo que genere como Administrador con SA, ese si me lo muestra para restaurar.

¿No se si para que los respaldos no rompan la cadena de conexión necesito crear un usuario o como le haria?

¿Con el COPY ONLY si los usuarios estan como Administrador y generan un respaldo y aparte en esa sesión de Administrador tengo mi JOB de respaldos, aún asi va a respetar la cadena de conexión?

Espero haberme explicado, Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear un usuario para generar Respaldos SQL 200

Publicado por Loría (56 intervenciones) el 23/12/2010 20:39:32
Linney,

Lo que debes hacer, primero que nada, es utilizar un usuario propio de Windows y no de SQL Server asignado a una base de datos, para evitar este problema. Si utilizas un usuario de SQL Server, y por ende asocias a una base de datos, cuando la BD se borre el usuario se va borrar. Si utilizas una cuenta de Windows esta siempre estará siempre ahí y no te causará ese problema.

Con respecto a tus preguntas, si utilizas las clausula de COPY ONLY el backup no será tomado en cuenta para la cadena de backups común, eso es lo que debes utilizar para los usuario ajenos a la estrategia de backups de tu BD.

Saludos.

Loría.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Crear un usuario para generar Respaldos SQL 200

Publicado por Linney Pérez Cornelio (8 intervenciones) el 10/01/2011 17:01:04
Buenos días, ya encontre la solución , de antemano Muchas Gracias Loria, con tu apoyo encontré la solución. Lo que realize fue lo siguiente: En la empresa en la que laboro mas de uno entra con la sesión de Administrador, asi que tenia que encontrar como realizar respaldos con el mismo inicio de sesión sin que afectara la cadena de conexión entre e Completo, Log y Diferencial.

Declare @strDatabase nvarchar(50)
Declare @strFolder nvarchar(500)

set @strDatabase=N'Wep'
set @strFolder =N'D:\RespaldosWEP\RepBDWepComp'

Declare @tToday datetime
set @tToday=Getdate()

Declare @strBackupName nvarchar(100)
set @strBackupName=@strDatabase+ N''
+ STR(DATEPART(year,@tToday), 4, 0)
+ Replace(STR(DATEPART(month,@tToday),2,0), N' ',N'0')
+ Replace(STR(Datepart(Day,@tToday),2,0),N' ', N'0')
+ Replace(STR(Datepart(Hour,@tToday),2,0),N' ', N'0')
+ Replace(STR(Datepart(minute,@tToday),2,0),N' ', N'0')

Declare @strBackupFile nvarchar(600)
set @strBackupFile=@strFolder +N'\'+@strBackupName+N'.bak'

Backup Database @strDatabase
To Disk=@strBackupFile
With
NOFORMAT,
INIT,
SKIP,
NAME=@strBackupName

Para el Copy_Only quedo de la siguiente manera:
Backup Database WEP
To Disk = 'D:\CarpetaDondeCaenRespaldos\Respaldo.bak'
WITH COPY_ONLY
GO

Solo como tips, en los diferenciales y Log, quiten NOFORMAT,INIT,SKIP porque con el COPY ONLY causan error al momento de realizar la restauración, me marcaba error, y en otro foro me comentario que quitara esa parte de los diferenciales y Log, con eso me funciono.

Ya están hechados a andar la tarea de respaldos, y gracias a dios ya funcionan, aunque otros usuarios generen respaldos.

Muchas gracias, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear un usuario para generar Respaldos SQL 200

Publicado por Loría (56 intervenciones) el 12/01/2011 17:06:59
Esas últimas cláusulas deben quitarse para no interferir con los mediaset creados para que lo tengas en cuenta si no lo sabías.

Gracias por tu completa información, esto le servirá a muchas personas que tengan la misma situación que tú en un futuro, casi nadie suele hacerlo pero a la vez como se pregunta, se enseña.

De nuevo gracias por tu retroalimentación.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar