copia seguridad diaria

02/10/2006 - 09:23 por Raquel Santamaria | Informe spam
Hola, me gustaría saber como puedo hacer una copia de seguridad diaria de
una aplicacion en VB .NET

Tengo el interface, para que a una hora seleccionada se realice la copia de
seguridad. Creo q necesito algun procedimiento, me podeis ayudar?

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
02/10/2006 - 16:51 | Informe spam
"Raquel Santamaria" wrote in message
news:
Hola, me gustaría saber como puedo hacer una copia de seguridad diaria de
una aplicacion en VB .NET

Tengo el interface, para que a una hora seleccionada se realice la copia
de seguridad. Creo q necesito algun procedimiento, me podeis ayudar?



Me imagino que no será una copia de la aplicación, que lo normal es que
no cambie, sino de una copia de los datos que maneja la aplicación.
Dependerá de cómo estén almacenados esos datos. Si están en archivos en
disco, hay que copiar esos archivos a algún medio de almacenamiento
separado. Si están en base de datos, lo más normal es hacer una llamada a la
base de datos para que ésta utilice sus mecanismos internos de copia de
seguridad. Por ejemplo, si la base de datos es Sql Server el comando es
"BACKUP DATABASE ... TO ...dispositivo... ...opciones...". Hay que crear
esta cadena con los textos apropiados y transmitírsela al servidor mediante
un ExecuteNonQuery() de un SqlCommand. Con otras bases de datos u otros
tipos de almacenamiento, el procedimiento variará. Esa sentencia se puede
crear dentro de un procedimiento almacenado del servidor, pero no es
obligatorio, también se puede enviar directamente desde el programa cliente.
Respuesta Responder a este mensaje
#2 Raquel Santamaria
03/10/2006 - 11:04 | Informe spam
Si, es una copia de los datos de una base de datos en sql server que se
maneja desde una
aplicacion en VB.NET

Y si no necesito un procedimiento, como se puede hacer la copia de seguridad
de los datos
diariamente?

En el caso de hacerse con un procedimiento, me podrías indicar como sería?
nunca he hecho
ninguno...

Gracias

"Alberto Poblacion"
escribió en el mensaje news:
"Raquel Santamaria" wrote in message
news:
Hola, me gustaría saber como puedo hacer una copia de seguridad diaria de
una aplicacion en VB .NET

Tengo el interface, para que a una hora seleccionada se realice la copia
de seguridad. Creo q necesito algun procedimiento, me podeis ayudar?



Me imagino que no será una copia de la aplicación, que lo normal es que
no cambie, sino de una copia de los datos que maneja la aplicación.
Dependerá de cómo estén almacenados esos datos. Si están en archivos en
disco, hay que copiar esos archivos a algún medio de almacenamiento
separado. Si están en base de datos, lo más normal es hacer una llamada a
la base de datos para que ésta utilice sus mecanismos internos de copia de
seguridad. Por ejemplo, si la base de datos es Sql Server el comando es
"BACKUP DATABASE ... TO ...dispositivo... ...opciones...". Hay que crear
esta cadena con los textos apropiados y transmitírsela al servidor
mediante un ExecuteNonQuery() de un SqlCommand. Con otras bases de datos u
otros tipos de almacenamiento, el procedimiento variará. Esa sentencia se
puede crear dentro de un procedimiento almacenado del servidor, pero no es
obligatorio, también se puede enviar directamente desde el programa
cliente.


Respuesta Responder a este mensaje
#3 Alberto Poblacion
03/10/2006 - 17:09 | Informe spam
"Raquel Santamaria" wrote in message
news:
Si, es una copia de los datos de una base de datos en sql server que se
maneja desde una
aplicacion en VB.NET

Y si no necesito un procedimiento, como se puede hacer la copia de
seguridad de los datos
diariamente?



string cadena="BACKUP DATABASE mibase TO DISK='C:\micopia.bak'"
Dim cn as New SqlConnection("(la misma cadena de conexión que usas en la
actualidad)")
Dim cmd as New SqlCommand(cadena, cn)
cn.Open()
cmd.ExecuteNonQuery() 'Esto hace el backup
cn.Close()

Las anteriores instrucciones las ejecutarás cada vez que quisieras hacer
el backup.

Si quieres que se haga todos los días, lo mejor es no hacerlo desde tu
programa, sino desde el propio Sql Server. Desde su herramienta
administrativa, lanza el asistente para planes de mantenimiento, y dentro
del asistente selecciona la copia que quieras con la periodicidad que te
interese. Él solito hará la copia sin que programes nada.

En el caso de hacerse con un procedimiento, me podrías indicar como sería?
nunca he hecho



CREATE PROCEDURE HacerCopia
AS
BACKUP DATABASE mibase TO DISK='C:\micopia.bak'
GO

Y luego llamas al procedimiento desde tu programa igual que arriba pero
cambiando cadena="HacerCopia" y añadiendo
cmd.CommandType=ComandType.StoredProcedure.


NOTA: Lo anterior hace un FULL BACKUP, y asume que el modelo de
recuperación de la base de datos el SIMPLE. Si estuviera configurada como
FULL RECOVERY necesitarías hacer también una copia del Log de transacciones
o se te terminará lenando el disco por el crecimiento incontrolado del Log.
Como ves, el tema de los backups de SQL Server es ligeramente más complejo
de lo que se ve desde el programa cliente, por lo que conviene que leas los
manuales correspondientes, ya que la selección del modelo de recuperación y
de la forma de hacer los backups no es trivial y tiene un condierable
impacto sobre el funcionamiento del servidor y las posibilidades de
recuperación ante desastres.
Respuesta Responder a este mensaje
#4 Raquel Santamaria
03/10/2006 - 17:36 | Informe spam
Gracias por contestar.

He estado viendo el asistente para planes de mantenimiento y cuando he
finalizado me ha dicho
que debo asegurarme de si el SQLAgent está funcionando o algo asi, te suena?
Y por supuesto sin esto
no me deja avanzar...

Ademas de eso, una preguntita que tenía ya de antes y que este asistente
mantiene: ¿porque la base de
datos msdb (por defecto ya creada en sql server) guarda un registro de las
copias de seguridad que se hacen?

Rachel


"Alberto Poblacion"
escribió en el mensaje news:
"Raquel Santamaria" wrote in message
news:
Si, es una copia de los datos de una base de datos en sql server que se
maneja desde una
aplicacion en VB.NET

Y si no necesito un procedimiento, como se puede hacer la copia de
seguridad de los datos
diariamente?



string cadena="BACKUP DATABASE mibase TO DISK='C:\micopia.bak'"
Dim cn as New SqlConnection("(la misma cadena de conexión que usas en
la actualidad)")
Dim cmd as New SqlCommand(cadena, cn)
cn.Open()
cmd.ExecuteNonQuery() 'Esto hace el backup
cn.Close()

Las anteriores instrucciones las ejecutarás cada vez que quisieras hacer
el backup.

Si quieres que se haga todos los días, lo mejor es no hacerlo desde tu
programa, sino desde el propio Sql Server. Desde su herramienta
administrativa, lanza el asistente para planes de mantenimiento, y dentro
del asistente selecciona la copia que quieras con la periodicidad que te
interese. Él solito hará la copia sin que programes nada.

En el caso de hacerse con un procedimiento, me podrías indicar como
sería? nunca he hecho



CREATE PROCEDURE HacerCopia
AS
BACKUP DATABASE mibase TO DISK='C:\micopia.bak'
GO

Y luego llamas al procedimiento desde tu programa igual que arriba pero
cambiando cadena="HacerCopia" y añadiendo
cmd.CommandType=ComandType.StoredProcedure.


NOTA: Lo anterior hace un FULL BACKUP, y asume que el modelo de
recuperación de la base de datos el SIMPLE. Si estuviera configurada como
FULL RECOVERY necesitarías hacer también una copia del Log de
transacciones o se te terminará lenando el disco por el crecimiento
incontrolado del Log. Como ves, el tema de los backups de SQL Server es
ligeramente más complejo de lo que se ve desde el programa cliente, por lo
que conviene que leas los manuales correspondientes, ya que la selección
del modelo de recuperación y de la forma de hacer los backups no es
trivial y tiene un condierable impacto sobre el funcionamiento del
servidor y las posibilidades de recuperación ante desastres.


Respuesta Responder a este mensaje
#5 Raquel Santamaria
03/10/2006 - 18:13 | Informe spam
Hola otra vez:

Ya he iniciado el agente del SQL... como ves mi ignorancia es mucha.

Por otro lado, he probado un pequeño programita que tenía mi antiguo
compañero
que hace backups a una hora determinada... pero me da un error, que seguro
te suenta:

"La instrucción BACKUP LOG no está permitida mientras el modelo de
recuperación sea SIMPLE. Utilice BACKUP DATABASE o cambie el modelo de
recuperación con ALTER DATABASE. [SQLSTATE 42000] (Error 4208)"

Que debo hacer?


"Raquel Santamaria" escribió en el mensaje
news:
Gracias por contestar.

He estado viendo el asistente para planes de mantenimiento y cuando he
finalizado me ha dicho
que debo asegurarme de si el SQLAgent está funcionando o algo asi, te
suena? Y por supuesto sin esto
no me deja avanzar...

Ademas de eso, una preguntita que tenía ya de antes y que este asistente
mantiene: ¿porque la base de
datos msdb (por defecto ya creada en sql server) guarda un registro de las
copias de seguridad que se hacen?

Rachel


"Alberto Poblacion"
escribió en el mensaje news:
"Raquel Santamaria" wrote in message
news:
Si, es una copia de los datos de una base de datos en sql server que se
maneja desde una
aplicacion en VB.NET

Y si no necesito un procedimiento, como se puede hacer la copia de
seguridad de los datos
diariamente?



string cadena="BACKUP DATABASE mibase TO DISK='C:\micopia.bak'"
Dim cn as New SqlConnection("(la misma cadena de conexión que usas en
la actualidad)")
Dim cmd as New SqlCommand(cadena, cn)
cn.Open()
cmd.ExecuteNonQuery() 'Esto hace el backup
cn.Close()

Las anteriores instrucciones las ejecutarás cada vez que quisieras
hacer el backup.

Si quieres que se haga todos los días, lo mejor es no hacerlo desde tu
programa, sino desde el propio Sql Server. Desde su herramienta
administrativa, lanza el asistente para planes de mantenimiento, y dentro
del asistente selecciona la copia que quieras con la periodicidad que te
interese. Él solito hará la copia sin que programes nada.

En el caso de hacerse con un procedimiento, me podrías indicar como
sería? nunca he hecho



CREATE PROCEDURE HacerCopia
AS
BACKUP DATABASE mibase TO DISK='C:\micopia.bak'
GO

Y luego llamas al procedimiento desde tu programa igual que arriba pero
cambiando cadena="HacerCopia" y añadiendo
cmd.CommandType=ComandType.StoredProcedure.


NOTA: Lo anterior hace un FULL BACKUP, y asume que el modelo de
recuperación de la base de datos el SIMPLE. Si estuviera configurada como
FULL RECOVERY necesitarías hacer también una copia del Log de
transacciones o se te terminará lenando el disco por el crecimiento
incontrolado del Log. Como ves, el tema de los backups de SQL Server es
ligeramente más complejo de lo que se ve desde el programa cliente, por
lo que conviene que leas los manuales correspondientes, ya que la
selección del modelo de recuperación y de la forma de hacer los backups
no es trivial y tiene un condierable impacto sobre el funcionamiento del
servidor y las posibilidades de recuperación ante desastres.






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida