第一遍做测试的时候,没遇到大的问题就成功了。
       现在真正来做日志传送备份的时候遇到了一个问题:
 就是我那个从备份服务器共享过来的文件夹  backup  确实是按照我的要求主服务器每20分钟备份一次日志到backup文件夹
       但是我那个 copy 复制用的文件夹,却只是数据库备份刚刚成功时候产生了一个 tuf 文件后,就一直没产生过文件了,也就是没复制,更谈不上还原了。 这是怎么回事呢?
       备份服务器上面的数据库仍是现象的 备份/只读  的模式 ,说明是成功了的啊?
       

解决方案 »

  1.   

    看下copy用的那个job的历史信息.
      

  2.   

    在SQL server Profiler 里面跟踪, 原来他显示的都是是我以前做成功过的 复制作业 。现在的网络路径都不一样了。所以根本在复制的时候,他找的是我以前的网络路径可是我的作业和计划都是更改了的啊?怎么回事?
    怎么清除那些信息,让数据库自动复制我现在的日志?
      

  3.   

    我的 备份|只读 这台数据库服务器(IP:192.168.1.204)上面的错误如下:
    exec sp_executesql N'EXECUTE msdb.dbo.sp_sqlagent_log_jobhistory @job_id = @P1, @step_id = @P2, @sql_message_id = @P3, @sql_severity = @P4, @run_status = @P5, @run_date = @P6, @run_time = @P7, @run_duration = @P8, @operator_id_emailed = @P9, @operator_id_netsent = @P10, @operator_id_paged = @P11, @retries_attempted = @P12, @session_id = @P13, @message = @P14',N'@P1 uniqueidentifier,@P2 int,@P3 int,@P4 int,@P5 int,@P6 int,@P7 int,@P8 int,@P9 int,@P10 int,@P11 int,@P12 int,@P13 int,@P14 nvarchar(4000)','CE900511-A5C9-4832-A2CB-4DEA8A10FC57',1,0,0,4,20090320,92400,2,0,0,0,0,7,N'2009-03-20 09:24:01.68 *** 错误: 无法检索辅助 ID“a717c865-d385-4471-bf88-5789a40aba4a”的复制设置。(Microsoft.SqlServer.Management.LogShipping) ***
    2009-03-20 09:24:01.68 *** 错误: 指定的 agent_id A717C865-D385-4471-BF88-5789A40ABA4A 或 agent_type 1 不是日志传送监视处理所需的有效对。(.Net SqlClient Data Provider) ***
    2009-03-20 09:24:01.68 *** 错误: 无法记录历史记录/错误消息。(Microsoft.SqlServer.Management.LogShipping) ***
    2009-03-20 09:24:01.68 *** 错误: 指定的 agent_id A717C865-D385-4471-BF88-5789A40ABA4A 或 agent_type 1 不是日志传送监视处理所需的有效对。(.Net SqlClient Data Provider) ***
    2009-03-20 09:24:01.70 *** 错误: 无法清除历史记录。(Microsoft.SqlServer.Management.LogShipping) ***
    2009-03-20 09:24:01.70 *** 错误: 指定的 agent_id A717C865-D385-4471-BF88-5789A40ABA4A 或 agent_type 1 不是日志传送监视处理所需的有效对。(.Net SqlClient Data Provider) ***
    2009-03-20 09:24:01.70 ----- 结束事务日志复制  -----退出状态: 1 (错误)

    我的 主数据库服务器(IP:192.168.1.201)上面的错误如下:
    exec master.sys.sp_MSadd_log_shipping_history_detail @agent_id = N'062229b1-4884-4a9e-91e9-01a7b4bcaa2a', @agent_type = 1, @session_id = 3299, @database = null, @session_status = 1, @last_processed_file_name = null, @message =  N'正在复制日志备份文件。主服务器:“A\MSSQL2008”,主数据库:“bbsxp”,备份源目录:“\\192.168.1.201\bbsxpbackup”,备份目标目录:“\\192.168.1.201\bbsxpcopy”'exec master.sys.sp_MSadd_log_shipping_history_detail @agent_id = N'062229b1-4884-4a9e-91e9-01a7b4bcaa2a', @agent_type = 1, @session_id = 3299, @database = null, @session_status = 3, @last_processed_file_name = null, @message =  N'复制目标目录“\\192.168.1.201\bbsxpcopy”不存在。'而我正常的路径应该是 \\192.168.1.204\rizhibackup  和 \\192.168.1.204\rizhicopy 。上面那路径都是以前做测试时候的路径
      

  4.   

    我的真正的脚本是这个:
    -- 在主服务器上执行下列语句,以便为数据库 [192.168.1.201\MSSQL2008].[db_rizhi] 
    -- 配置日志传送。
    -- 需要在主服务器上 [msdb] 数据库的上下文中运行该脚本。  
    ------------------------------------------------------------------------------------- 
    -- 添加日志传送配置 -- ****** 开始: 要在主服务器 [192.168.1.201\MSSQL2008] 上运行的脚本 ******
    DECLARE @LS_BackupJobId AS uniqueidentifier 
    DECLARE @LS_PrimaryId AS uniqueidentifier 
    DECLARE @SP_Add_RetCode As int 
    EXEC @SP_Add_RetCode = master.dbo.sp_add_log_shipping_primary_database 
    @database = N'db_rizhi' 
    ,@backup_directory = N'\\192.168.1.204\rizhibackup' 
    ,@backup_share = N'\\192.168.1.204\rizhibackup' 
    ,@backup_job_name = N'rizhi的事务日志备份作业' 
    ,@backup_retention_period = 15
    ,@backup_threshold = 10 
    ,@threshold_alert_enabled = 1
    ,@history_retention_period = 5760 
    ,@backup_job_id = @LS_BackupJobId OUTPUT 
    ,@primary_id = @LS_PrimaryId OUTPUT 
    ,@overwrite = 1 
    IF (@@ERROR = 0 AND @SP_Add_RetCode = 0) 
    BEGIN DECLARE @LS_BackUpScheduleUID As uniqueidentifier 
    DECLARE @LS_BackUpScheduleID AS int 
    EXEC msdb.dbo.sp_add_schedule 
    @schedule_name =N'rizhi的事务日志备份作业计划' 
    ,@enabled = 1 
    ,@freq_type = 4 
    ,@freq_interval = 1 
    ,@freq_subday_type = 4 
    ,@freq_subday_interval = 3 
    ,@freq_recurrence_factor = 0 
    ,@active_start_date = 20090320 
    ,@active_end_date = 99991231 
    ,@active_start_time = 0 
    ,@active_end_time = 235900 
    ,@schedule_uid = @LS_BackUpScheduleUID OUTPUT 
    ,@schedule_id = @LS_BackUpScheduleID OUTPUT EXEC msdb.dbo.sp_attach_schedule 
    @job_id = @LS_BackupJobId 
    ,@schedule_id = @LS_BackUpScheduleID  EXEC msdb.dbo.sp_update_job 
    @job_id = @LS_BackupJobId 
    ,@enabled = 1 
    END 
    EXEC master.dbo.sp_add_log_shipping_alert_job EXEC master.dbo.sp_add_log_shipping_primary_secondary 
    @primary_database = N'db_rizhi' 
    ,@secondary_server = N'192.168.1.204\MSSQL2008' 
    ,@secondary_database = N'db_rizhi' 
    ,@overwrite = 1 -- ****** 结束: 要在主服务器 [192.168.1.201\MSSQL2008] 上运行的脚本  ******
    -- 在辅助服务器上执行下列语句,以便为数据库 [192.168.1.204\MSSQL2008].[db_rizhi] 
    -- 配置日志传送。
    -- 需要在辅助服务器上 [msdb] 数据库的上下文中运行该脚本。 
    ------------------------------------------------------------------------------------- 
    -- 添加日志传送配置 -- ****** 开始: 要在辅助服务器 [192.168.1.204\MSSQL2008] 上运行的脚本 ******
    DECLARE @LS_Secondary__CopyJobId AS uniqueidentifier 
    DECLARE @LS_Secondary__RestoreJobId AS uniqueidentifier 
    DECLARE @LS_Secondary__SecondaryId AS uniqueidentifier 
    DECLARE @LS_Add_RetCode As int 
    EXEC @LS_Add_RetCode = master.dbo.sp_add_log_shipping_secondary_primary 
    @primary_server = N'192.168.1.201\MSSQL2008' 
    ,@primary_database = N'db_rizhi' 
    ,@backup_source_directory = N'\\192.168.1.204\rizhibackup' 
    ,@backup_destination_directory = N'\\192.168.1.204\rizhicopy' 
    ,@copy_job_name = N'rizhi的事务日志复制作业' 
    ,@restore_job_name = N'rizhi的事务日志还原作业' 
    ,@file_retention_period = 15 
    ,@overwrite = 1 
    ,@copy_job_id = @LS_Secondary__CopyJobId OUTPUT 
    ,@restore_job_id = @LS_Secondary__RestoreJobId OUTPUT 
    ,@secondary_id = @LS_Secondary__SecondaryId OUTPUT IF (@@ERROR = 0 AND @LS_Add_RetCode = 0) 
    BEGIN DECLARE @LS_SecondaryCopyJobScheduleUID As uniqueidentifier 
    DECLARE @LS_SecondaryCopyJobScheduleID AS int 
    EXEC msdb.dbo.sp_add_schedule 
    @schedule_name =N'rizhi的事务日志复制作业计划' 
    ,@enabled = 1 
    ,@freq_type = 4 
    ,@freq_interval = 1 
    ,@freq_subday_type = 4 
    ,@freq_subday_interval = 4 
    ,@freq_recurrence_factor = 0 
    ,@active_start_date = 20090320 
    ,@active_end_date = 99991231 
    ,@active_start_time = 0 
    ,@active_end_time = 235900 
    ,@schedule_uid = @LS_SecondaryCopyJobScheduleUID OUTPUT 
    ,@schedule_id = @LS_SecondaryCopyJobScheduleID OUTPUT EXEC msdb.dbo.sp_attach_schedule 
    @job_id = @LS_Secondary__CopyJobId 
    ,@schedule_id = @LS_SecondaryCopyJobScheduleID  DECLARE @LS_SecondaryRestoreJobScheduleUID As uniqueidentifier 
    DECLARE @LS_SecondaryRestoreJobScheduleID AS int 
    EXEC msdb.dbo.sp_add_schedule 
    @schedule_name =N'rizhi的事务日志还原作业计划' 
    ,@enabled = 1 
    ,@freq_type = 4 
    ,@freq_interval = 1 
    ,@freq_subday_type = 4 
    ,@freq_subday_interval = 5 
    ,@freq_recurrence_factor = 0 
    ,@active_start_date = 20090320 
    ,@active_end_date = 99991231 
    ,@active_start_time = 0 
    ,@active_end_time = 235900 
    ,@schedule_uid = @LS_SecondaryRestoreJobScheduleUID OUTPUT 
    ,@schedule_id = @LS_SecondaryRestoreJobScheduleID OUTPUT EXEC msdb.dbo.sp_attach_schedule 
    @job_id = @LS_Secondary__RestoreJobId 
    ,@schedule_id = @LS_SecondaryRestoreJobScheduleID  
    END 
    DECLARE @LS_Add_RetCode2 As int 
    IF (@@ERROR = 0 AND @LS_Add_RetCode = 0) 
    BEGIN EXEC @LS_Add_RetCode2 = master.dbo.sp_add_log_shipping_secondary_database 
    @secondary_database = N'db_rizhi' 
    ,@primary_server = N'192.168.1.201\MSSQL2008' 
    ,@primary_database = N'db_rizhi' 
    ,@restore_delay = 0 
    ,@restore_mode = 1 
    ,@disconnect_users = 0 
    ,@restore_threshold = 6   
    ,@threshold_alert_enabled = 1 
    ,@history_retention_period = 5760 
    ,@overwrite = 1 END 
    IF (@@error = 0 AND @LS_Add_RetCode = 0) 
    BEGIN EXEC msdb.dbo.sp_update_job 
    @job_id = @LS_Secondary__CopyJobId 
    ,@enabled = 1 EXEC msdb.dbo.sp_update_job 
    @job_id = @LS_Secondary__RestoreJobId 
    ,@enabled = 1 END 
    -- ****** 结束: 要在辅助服务器 [192.168.1.204\MSSQL2008] 上运行的脚本 ******

      

  5.   

    现在JOB里面作业我都删除的还剩这个作业。 在作业监视器里面看到这样的错误:

    消息
    2009-03-20 10:20:01.47 *** 错误: 无法检索辅助 ID“13002b30-0084-40f4-977b-3979d731afa8”的复制设置。(Microsoft.SqlServer.Management.LogShipping) ***
    2009-03-20 10:20:01.47 *** 错误: 指定的 agent_id 13002B30-0084-40F4-977B-3979D731AFA8 或 agent_type 1 不是日志传送监视处理所需的有效对。(.Net SqlClient Data Provider) ***
    2009-03-20 10:20:01.48 *** 错误: 无法记录历史记录/错误消息。(Microsoft.SqlServer.Management.LogShipping) ***
    2009-03-20 10:20:01.48 *** 错误: 指定的 agent_id 13002B30-0084-40F4-977B-3979D731AFA8 或 agent_type 1 不是日志传送监视处理所需的有效对。(.Net SqlClient Data Provider) ***
    2009-03-20 10:20:01.48 *** 错误: 无法清除历史记录。(Microsoft.SqlServer.Management.LogShipping) ***
    2009-03-20 10:20:01.48 *** 错误: 指定的 agent_id 13002B30-0084-40F4-977B-3979D731AFA8 或 agent_type 1 不是日志传送监视处理所需的有效对。(.Net SqlClient Data Provider) ***
    2009-03-20 10:20:01.48 ----- 结束事务日志复制  -----退出状态: 1 (错误)