Error con el Agente Sql Server

81 views
Skip to first unread message

integral

unread,
Nov 4, 2023, 12:57:53 AM11/4/23
to Comunidad de Visual Foxpro en Español
Que tal amigos

Buenas Noches

Estoy utilizando Sql Server 2019 y he creado una tarea para realizar un Backup Automático de una Base de Datos.

Utilizo el siguiente Scrip Sql-Transact

use BDCONSUMO
GO
declare @fecha varchar(max)
declare @archivo varchar(max)
set @fecha = CONVERT(varchar(10),GETDATE(), 105)
set @archivo = 'E:\BACKSQL2019\BACKUP\BDCONSUMO-'+ @fecha+'.BAK'
BACKUP DATABASE BDCONSUMO TO DISK = @archivo
WITH FORMAT,
NAME='BDCONSUMO';
GO

y me marca el siguiente error :

No se puede abrir el Dispositivo de Copia  E:\BACKSQL2019\BACKUP\BDCONSUMO-03-11-2023.BAK'

Agradezco sus comentarios y sugerencias para corregir este error.

Saludos,

Integral
 

 

Ricardo Mata

unread,
Nov 4, 2023, 9:11:25 AM11/4/23
to publice...@googlegroups.com
Buenos Días Integral

Por lo visto estás queriendo hacer un respaldo full de la BD a una fecha determinada, te sugiero utilizas WITH INIT en lugar de WITH FORMAT, ya que no vas a tener más de un respaldo en el medio de respaldo ( archivo .BAK ) así que no hay que formatear ni crear cabeceras para múltiples respaldos en el mismo medio

Espero te ayude con el problema

Saludos
Ricardo Mata
Valencia - Venezuela


--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/fe2f3bc7-9175-41ee-9ad6-00a3df746852n%40googlegroups.com.

integral

unread,
Nov 4, 2023, 2:14:15 PM11/4/23
to Comunidad de Visual Foxpro en Español
Que tal Amigo :

Gracias por la información, me puse a buscar información en la Web.

Decidí eliminar todo el With y funciono según lo esperado.

use BDCONSUMO
GO
declare @fecha varchar(max)
declare @archivo varchar(max)
set @fecha = CONVERT(varchar(10),GETDATE(), 105)
set @archivo = 'E:\BACKUP_SQL2019\BACKUP\BDCONSUMO-'+ @fecha+'.BAK'

BACKUP DATABASE BDCONSUMO TO DISK = @archivo
GO

PD : Ver imagen adjunta

Saludos,

Integral
BACKUP_AUTOMATICO.jpg

Jorge Zapata

unread,
Nov 4, 2023, 7:29:49 PM11/4/23
to Comunidad de Visual Foxpro en Español
Estimado Integral, te habia enviado el codigo que uso para el mismo proposito, te lo dejo nuevamente cambia  el nombre de la DB RSCONCAR por  BDCONSUMO
Saludos,
JZ


-- Backup Copia de Seguridad

USE RSCONCAR
GO
 
PRINT 'Reduciendo la base de datos...'
DBCC SHRINKDATABASE(N'RSCONCAR')
GO
 
PRINT 'Declarando las variables...'
DECLARE @Fecha AS VARCHAR(10)
DECLARE @Hora AS VARCHAR(8)
DECLARE @PathAndFile AS VARCHAR(254)
 
PRINT 'Fijando valores...'
SET @Fecha = CONVERT(VARCHAR, GETDATE(), 110)
SET @Hora = CONVERT(VARCHAR, GETDATE(), 108)
SET @PathAndFile = 'C:\BACKUP\RSCONCAR_' + SUBSTRING(@Fecha, 7, 4) + SUBSTRING(@Fecha, 1, 2) + SUBSTRING(@Fecha, 4, 2) + '_' + SUBSTRING(@Hora, 1, 2) + SUBSTRING(@Hora, 4, 2) + SUBSTRING(@Hora, 7, 2) + '.bak'

PRINT 'Iniciando la copia de seguridad en: ' + @PathAndFile
BACKUP DATABASE [RSCONCAR] TO
   DISK = @PathAndFile WITH NOFORMAT, INIT,  
   NAME = N'RSCONCAR-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO
 
PRINT 'Verificando la copia...'
DECLARE @backupSetId AS INT
SELECT @backupSetId = position
  FROM msdb..backupset
 WHERE database_name=N'RSCONCAR' AND backup_set_id=(SELECT MAX(backup_set_id) FROM msdb..backupset WHERE database_name=N'RSCONCAR')
 
IF @backupSetId IS NULL
   BEGIN
      RAISERROR (N'Verify failed. Backup information for database ''RSCONCAR'' not found.', 16, 1)
   END
 
 
PRINT 'La copia de seguridad ha terminado.'

integral

unread,
Nov 5, 2023, 12:58:31 PM11/5/23
to Comunidad de Visual Foxpro en Español
Buenos Días

Gracias amigo Jorge Zapata por el ejemplo brindado.

Me piden que ponga alertas, correos y mensajes al momento de generar el Backup.

Te comento que estoy utilizando el Agente de Sql Server 2019

 He creado una alerta, me falta crear y configurar un correo. Y la forma de mostrar un Mensaje como aviso visible que muestre por ejemplo.

IF SQLExec(nHandle,TxSQL) <= 0 Then
Messagebox("Respaldo No realizado en la Unidad Externa...",0+48,"Alerta",1500)
Else
Messagebox("[ Respaldo realizado correctamente ]",0+64,"Aviso del Sistema",1500)
Endif

Esto lo pienso implementar en el Scrip de comando que pide el Agente Sql Server.

Agradezco sus comentarios y sugerencias.

Saludos,

Integral
Reply all
Reply to author
Forward
0 new messages