FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
No puedo ejecutar un script (trabajo) en otro servidor...
Hola foro, tengo un script de un "Trabajo" que hice en mi servidor local de SQL Server, este "Trabajo" hace una copia de mi b.d. lo quiero ejecutar en otra maquina para no volver a programar el "Trabajo" ,bien lo que hago es cargar el script y este me genera el "trabajo" pero cuando selecciono iniciar (en el trabajo) este se marca con una "X" y cambia su color a rojo.
El registro de los dos servidores esta como local, y el usuario en los dos es: 'sa' no entiendo porque no lo puedo ejecutar. En el reporte que se genera dice lo siguiente: Programa Microsoft (R) SQLMaint (Unicode), versi¢n Iniciada sesi¢n en el servidor SQL Server 'JZBECARIOSIS' como 'NT AUTHORITY\SYSTEM' (de confianza) [Microsoft SQL-DMO] Error 21268: [SQL-DMO]La fila o columna especificada est fuera del intervalo del conjunto de resultados de consulta especificado. Que puedo hacer ? |
#2
|
||||
|
||||
Cita:
Por otra parte trata de poner todo el código del Script, así yo ó otro miembro del foro pueda ayudarte..
__________________
No todo es como parece ser... |
#3
|
|||
|
|||
Codigo
Este es el codigo que me genera el "Trabajo" para el respaldo de la b.d.
-- Secuencia de comandos generada en 14/09/2005 12:58 -- Por: sa -- Servidor: (LOCAL) BEGIN TRANSACTION DECLARE @JobID BINARY(16) DECLARE @ReturnCode INT SELECT @ReturnCode = 0 IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'Database Maintenance') < 1 EXECUTE msdb.dbo.sp_add_category @name = N'Database Maintenance' -- Eliminar el trabajo con el mismo nombre (si existe) SELECT @JobID = job_id FROM msdb.dbo.sysjobs WHERE (name = N'Copia de seguridad de base de datos para el plan de mantenimiento de base de datos ''Plan de mantenimiento de NPV''') IF (@JobID IS NOT NULL) BEGIN -- Comprobar si el trabajo es un trabajo multiservidor IF (EXISTS (SELECT * FROM msdb.dbo.sysjobservers WHERE (job_id = @JobID) AND (server_id <> 0))) BEGIN -- Así es, anular la secuencia de comandos RAISERROR (N'No se puede importar el trabajo ''Copia de seguridad de base de datos para el plan de mantenimiento de base de datos ''Plan de mantenimiento de NPV'''' porque ya existe un trabajo multiservidor con este nombre.', 16, 1) GOTO QuitWithRollback END ELSE -- Eliminar el trabajo [local] EXECUTE msdb.dbo.sp_delete_job @job_name = N'Copia de seguridad de base de datos para el plan de mantenimiento de base de datos ''Plan de mantenimiento de NPV''' SELECT @JobID = NULL END BEGIN -- Agregar el trabajo EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'Copia de seguridad de base de datos para el plan de mantenimiento de base de datos ''Plan de mantenimiento de NPV''', @owner_login_name = N'sa', @description = N'No hay ninguna descripci¢n.', @category_name = N'Database Maintenance', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback -- Agregar los pasos del trabajo EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Paso 1', @command = N'EXECUTE master.dbo.xp_sqlmaint N''-PlanID FAFFD6AE-3EDF-4585-95B0-D478B7A1D9CF -Rpt "C:\RESPALDOS\INFORME\Plan de mantenimiento de NPV4.txt" -DelTxtRpt 5MINUTES -WriteHistory -VrfyBackup -BkUpMedia DISK -BkUpDB "D:\RESPALDOS" -DelBkUps 10MINUTES -BkExt "BAK"''', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 4, @retry_attempts = 0, @retry_interval = 0, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback -- Agregar las programaciones del trabajo EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Programaci¢n 1', @enabled = 1, @freq_type = 4, @active_start_date = 20050914, @active_start_time = 20000, @freq_interval = 1, @freq_subday_type = 4, @freq_subday_interval = 5, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 235959 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback -- Agregar los servidores de destino EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback END COMMIT TRANSACTION GOTO EndSave QuitWithRollback: IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION EndSave: |
#4
|
|||
|
|||
viendo muy por arriba el tema ..
quizas necesites que los servers esten 'VINCULADOS'
Saludos Ingel |
|
|
|