Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Pregunta Novato Copias de seguridad

Estas en el tema de Pregunta Novato Copias de seguridad en el foro de SQL Server en Foros del Web. Hola a todos, soy administrador de red.. pero no programo en sql... el caso es que tengo una aplicación corriendo con microsoft sql server expréss... ...
  #1 (permalink)  
Antiguo 13/07/2009, 05:15
 
Fecha de Ingreso: septiembre-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Novato Copias de seguridad

Hola a todos, soy administrador de red.. pero no programo en sql... el caso es que tengo una aplicación corriendo con microsoft sql server expréss...
necesito poder realizar copias de la bbdd diárias... y tengo que hacerlo de forma manual ya que en con esta versión (la expréss) no puedo programar los trabajos desde el agent...

me quiero crear un bat en el cual pare el servicio de sql para poder copiar posteriormente la bbdd y una vez haya finalizado rearrancar el servicio de nuevo...

he probado con el comando net stop mssqlserver
net stop sqlexecutive pero no me funcionan... alguien me puede decir como parar ese servicio para poder copiar la base de datos? muchísimas gracias y saludos.
  #2 (permalink)  
Antiguo 13/07/2009, 21:56
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Pregunta Novato Copias de seguridad

Debes utilizar el SCHEDULER de Windows para programar tus tareas.
  #3 (permalink)  
Antiguo 14/07/2009, 07:46
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Respuesta: Pregunta Novato Copias de seguridad

Pues si dáis con una solución mejor lo decís, que a mí también me interesa...

De momento yo trabajo con el software Cobian Backup, permite programar paradas y arranques de servicios antes y después de realizar las copias de seguridad de los ficheros o carpetas seleccionadas

Saludos
  #4 (permalink)  
Antiguo 14/07/2009, 09:22
 
Fecha de Ingreso: septiembre-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Pregunta Novato Copias de seguridad

Cita:
Iniciado por iislas Ver Mensaje
Debes utilizar el SCHEDULER de Windows para programar tus tareas.
Hola gracias por la respuesta, solo una pregunta... he usado este script con el sheduler de windows...funciona bien... me copia en caliente... pero la cosa es que me anexa siempre una copia diferente... con el problema de que si no elimino las copias antiguas manualmente... empezará a llenarse el disco del server...
sabeis como hacer el script para que solo me haga una copia diaria y remplaze dicha copia en vez de anexarla con otra fecha diferente?
Gracias.
-- Preference, S.L.
-- 20/03/2007
-- Script simplificado para realizar copias de seguridad de su base de datos
----------------------------------------------------------------------------
-- Parámetros de entrada
DECLARE @strDatabase nvarchar(50)
DECLARE @strFolder nvarchar(500)
-- Seleccione el nombre de la base de datos y su ubicación
SET @strDatabase = N'MIBDD'
--Seleccione el directorio donde se creará la copia de seguridad
SET @strFolder = N'D:\COPIA'
-- Por defecto, se creará un archivo .bak con el nombre de la base de datos
-- más la fecha y hora actual
-- Ekemplo: PrefSuite 200703201535.bak
-- Backup de la base de datos de PrefSuite creado el 20 de marzo de 2007 a las
-- Usted es libre de personalizarse este script de acuerdo a sus necesidades.
-- Para más información consulte la ayuda de Microsoft SQL Server.
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
  #5 (permalink)  
Antiguo 14/07/2009, 20:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Pregunta Novato Copias de seguridad

Es muy facil deshacerte de las copias viejas, que tambien estaria en un scrip, simplemente, deja un MES vivo de copias y las demas con un simple DEL, tal vez asociado con XP_CMDSHELL, puedes hacer el trabajo que requieres.

Soy de la idea de crear un archivo, por cada respaldo, hay quienes les gusta acumularlos en un mismo archivo, en lo personal a mi no me gusta.
  #6 (permalink)  
Antiguo 15/07/2009, 02:29
 
Fecha de Ingreso: septiembre-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Pregunta Novato Copias de seguridad

Cita:
Iniciado por iislas Ver Mensaje
Es muy facil deshacerte de las copias viejas, que tambien estaria en un scrip, simplemente, deja un MES vivo de copias y las demas con un simple DEL, tal vez asociado con XP_CMDSHELL, puedes hacer el trabajo que requieres.

Soy de la idea de crear un archivo, por cada respaldo, hay quienes les gusta acumularlos en un mismo archivo, en lo personal a mi no me gusta.
esa solución no me gusta mucho.... lo de un "mes completo"... sabrías como programar el script para que solo haga una copia diária y la machaque?
  #7 (permalink)  
Antiguo 16/07/2009, 10:48
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Pregunta Novato Copias de seguridad

-- Inserto el registro en [AsuntosDetalleCatalogos]
-- Preference, S.L.
-- 20/03/2007
-- Script simplificado para realizar copias de seguridad de su base de datos
----------------------------------------------------------------------------
-- Parámetros de entrada
DECLARE @strDatabase nvarchar(50)
DECLARE @strFolder nvarchar(500)
-- Seleccione el nombre de la base de datos y su ubicación
SET @strDatabase = N'MIBDD'
--Seleccione el directorio donde se creará la copia de seguridad
SET @strFolder = N'D:\COPIA'
-- Por defecto, se creará un archivo .bak con el nombre de la base de datos
-- más la fecha y hora actual
-- Ekemplo: PrefSuite 200703201535.bak
-- Backup de la base de datos de PrefSuite creado el 20 de marzo de 2007 a las
-- Usted es libre de personalizarse este script de acuerdo a sus necesidades.
-- Para más información consulte la ayuda de Microsoft SQL Server.
-- Agrega estas lineas --------------------------------------
DECLARE @MyBorrado NVARCHAR(255)
SET @MyBorrado = N'DEL ' + @strFolder +'\*.BAK'
EXECUTE master..XP_CMDSHELL MyBorrado
-------------------------------------------------------------
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
  #8 (permalink)  
Antiguo 17/07/2009, 13:37
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Pregunta Novato Copias de seguridad

Esta línea tiene la fecha.

SET @tToday = GETDATE()

Siempre saca la fecha actual; así que si le decimos que cada día debe sacar backup con un programador de tareas entonces no lo vá a sobreescribir. Por que está en función de la fecha del server
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:49.