- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章SQL Server 作业同步 (结合备份作业)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
核心导出作业的 代码 和 作业备份是相似的 。
复制代码代码如下
alter PROC DumpJob (@job VARCHAR(100)) AS DECLARE @retrun NVARCHAR(max) DECLARE @jobname VARCHAR(30),@category_calss_i INT ,@category_calss VARCHAR(50),@category_name VARCHAR(50) ,@category_type VARCHAR(30),@category_id int ,@category_type_i int SELECT @jobname = 'powershell',@category_calss = '',@category_name='',@category_type = '' SELECT @jobname = @job SELECT @category_calss = CASE WHEN tshc.category_class = 1 THEN 'JOB' WHEN tshc.category_class = 2 THEN 'ALERT' else 'OPERATOR' END , @category_type = CASE WHEN tshc.category_type = 1 THEN 'LOCAL' WHEN tshc.category_type = 2 THEN 'MULTI-SERVER' else 'NONE' END ,@category_name = tshc.name ,@category_type_i = category_type ,@category_calss_i = tshc.category_class ,@category_id = tshc.category_id FROM msdb.dbo.sysjobs_view AS sv INNER JOIN msdb.dbo.syscategories AS tshc ON sv.category_id = tshc.category_id WHERE (sv.name=@jobname AND tshc.category_class = 1) SET @retrun = ' BEGIN TRANSACTION' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'DECLARE @ReturnCode INT' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N''' + @category_name +'''AND category_class=' +rtrim(@category_calss_i)+')' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'BEGIN' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'''+ @category_calss+''', @type=N'''+@category_type+''', @name=N'''+@category_name+'''' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'end' DECLARE @EventLogLevel INT,@EmailLevel INT,@NetSendLevel INT,@PageLevel INT DECLARE @EmailLeveloprid NVARCHAR(256),@NetSendLeveloprid NVARCHAR(256),@PageLeveloprid NVARCHAR(256) DECLARE @isenable INT , @description NVARCHAR(1024),@owner_log_name Nvarchar(512),@delete_level INT DECLARE @jobId UNIQUEIDENTIFIER,@start_step_id INT,@server NVARCHAR(512) SELECT @EventLogLevel=sv.notify_level_eventlog ,@EmailLevel=sv.notify_level_email ,@NetSendLevel=sv.notify_level_netsend ,@PageLevel=sv.notify_level_page ,@EmailLeveloprid = ISNULL((SELECT TOP 1 name FROM msdb..sysoperators WHERE id = sv.notify_email_operator_id),'') ,@NetSendLeveloprid = ISNULL((SELECT TOP 1 name FROM msdb..sysoperators WHERE id = sv.notify_netsend_operator_id),'') ,@PageLeveloprid = ISNULL((SELECT TOP 1 name FROM msdb..sysoperators WHERE id = sv.notify_page_operator_id),'') ,@isenable = sv.enabled ,@description = sv.description ,@owner_log_name = ISNULL(suser_sname(sv.owner_sid), N'''') ,@delete_level = sv.delete_level ,@jobId = sv.job_id ,@start_step_id = start_step_id ,@server = originating_server FROM msdb.dbo.sysjobs_view AS sv WHERE (sv.name=@jobname and sv.category_id=0) SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'DECLARE @jobId BINARY(16)' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'''+@jobname+''',' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @enabled='+RTRIM(@isenable)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @notify_level_eventlog='+RTRIM(@EventLogLevel)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @notify_level_email='+RTRIM(@EmailLevel)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @notify_level_netsend='+RTRIM(@NetSendLevel)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @notify_level_page='+RTRIM(@PageLevel)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @notify_email_operator_name ='''+RTRIM(@EmailLeveloprid)+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @notify_netsend_operator_name='''+RTRIM(@NetSendLeveloprid)+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @notify_page_operator_name='''+RTRIM(@PageLeveloprid)+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @delete_level='+RTRIM(@delete_level)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @description=N'''+@description+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @category_name=N'''+@category_name+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @owner_login_name=N'''+@owner_log_name+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @job_id = @jobId OUTPUT' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback' --SELECT * FROM msdb.dbo.syscategories DECLARE @step_id INT declare @step_name nvarchar(512) ,@cmdexec_success_code INT,@on_success_action INT,@on_success_step_id INT ,@on_fail_action INT,@on_fail_step_id INT,@retry_attempts INT,@retry_interval INT,@os_run_priority INT ,@subsystem NVARCHAR(512),@database_name NVARCHAR(512),@flags INT,@command NVARCHAR(max) DECLARE jbcur CURSOR FOR SELECT step_id FROM msdb..sysjobsteps WHERE job_id = @jobid ORDER BY step_id ; OPEN jbcur; FETCH NEXT FROM jbcur INTO @step_id WHILE @@FETCH_STATUS = 0 BEGIN SELECT @step_name = step_name ,@cmdexec_success_code= cmdexec_success_code ,@on_success_action = on_success_action ,@on_success_step_id = on_success_step_id ,@on_fail_action = on_fail_action ,@on_fail_step_id = on_fail_step_id ,@retry_attempts = retry_attempts ,@retry_interval = retry_interval ,@os_run_priority = os_run_priority ,@subsystem = subsystem ,@database_name = database_name ,@command = command ,@flags = flags FROM msdb..sysjobsteps a WHERE job_id = @jobid and step_id = @step_id SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @step_name=N'''+@step_name+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @step_id='+RTRIM(@step_id)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @cmdexec_success_code='+RTRIM(@cmdexec_success_code)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @on_success_action='+RTRIM(@on_success_action)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @on_success_step_id='+RTRIM(@on_success_step_id)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @on_fail_action='+RTRIM(@on_fail_action)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @on_fail_step_id='+RTRIM(@on_fail_step_id)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @retry_attempts='+RTRIM(@retry_attempts)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @retry_interval='+RTRIM(@retry_interval)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @os_run_priority='+RTRIM(@os_run_priority)+', @subsystem=N'''+@subsystem+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @database_name=N'''+@database_name+''',' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @flags='+RTRIM(@flags)+' ,' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @command=N'''+REPLACE(@command,'''','''''')+'''' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback' FETCH NEXT FROM jbcur INTO @step_id END CLOSE jbcur DEALLOCATE jbcur SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = '+rtrim(@start_step_id) SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback ' DECLARE @enabled INT,@freq_type INT,@freq_interval INT,@freq_subday_type INT,@freq_subday_interval INT ,@freq_relative_interval INT,@freq_recurrence_factor INT,@active_start_date INT,@active_end_date INT ,@active_start_time INT,@active_end_time INT,@name VARCHAR(512) SELECT @name = a.name ,@enabled = enabled ,@freq_interval = freq_interval ,@freq_type = freq_type ,@freq_subday_type=freq_subday_type ,@freq_subday_interval=freq_subday_interval ,@freq_relative_interval=freq_relative_interval ,@freq_recurrence_factor=freq_recurrence_factor ,@active_start_date=active_start_date ,@active_end_date=active_end_date ,@active_start_time=active_start_time ,@active_end_time=active_end_time FROM msdb..sysschedules a INNER JOIN msdb.dbo.sysjobschedules b ON a.schedule_id = b.schedule_id WHERE job_id = @jobId IF(@name IS not null) begin SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'''+@name+''', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @enabled='+RTRIM(@enabled)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @freq_type='+RTRIM(@freq_type)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @freq_interval='+RTRIM(@freq_interval)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @freq_subday_type='+RTRIM(@freq_subday_type)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @freq_subday_interval='+RTRIM(@freq_subday_interval)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @freq_relative_interval='+RTRIM(@freq_relative_interval)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @freq_recurrence_factor='+RTRIM(@freq_recurrence_factor)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @active_start_date='+RTRIM(@active_start_date)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @active_end_date='+RTRIM(@active_end_date)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @active_start_time='+RTRIM(@active_start_time)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @active_end_time='+RTRIM(@active_end_time)+', ' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' @schedule_uid=N'''+RTRIM(NEWID())+'''' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback' END SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N''(local)''' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'COMMIT TRANSACTION' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'GOTO EndSave' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'QuitWithRollback:' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' IF(@@TRANCOUNT>0)ROLLBACK TRANSACTION' SET @retrun = @retrun+CHAR(13)+CHAR(10) + 'EndSave:' SET @retrun = @retrun+CHAR(13)+CHAR(10) + ' ' select @retrun 。
我创建了一个存储过程,用来导出 作业,只有用powershell 脚本来实现同步,你可以powershell 脚本放入 sqlagent 中 定时运行起到同步的效果 一下是powershell 代码: 。
复制代码代码如下
$server = "(local)" $uid = "sa" $db="master" $pwd="fanzhouqi" $mailprfname = "sina" $recipients = "32116057@qq.com" $subject = 'System Log' function execproc($message) { $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $CnnString ="Server = $server; Database = $db;User Id = $uid; Password = $pwd" $SqlConnection.ConnectionString = $CnnString $CC = $SqlConnection.CreateCommand(); $CC.CommandText=$message $adapter = New-Object System.Data.SqlClient.SqlDataAdapter $CC $dataset = New-Object System.Data.DataSet #$SqlConnection.SelectCommand = $CC if (-not ($SqlConnection.State -like "Open")) { $SqlConnection.Open() } $adapter.Fill($dataset) |out-null $dataset.Tables[0].Rows[0][0] $SqlConnection.Close(); } function execsql($message) { $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $CnnString ="Server = fanr-pc\sql2012; Database = $db;User Id = $uid; Password = $pwd" $SqlConnection.ConnectionString = $CnnString $CC = $SqlConnection.CreateCommand(); if (-not ($SqlConnection.State -like "Open")) { $SqlConnection.Open() } $cc.CommandText=$message $cc.ExecuteNonQuery()|out-null $SqlConnection.Close(); } $jobscript = execproc " EXEC master..DumpJob @job = 'backup'" #$jobscript execsql $jobscript 。
有什么问题可以联系我:如果blog 的代码没办法使用也可以 加我qq 联系我,问我要。qq:32116057 fanr 。
最后此篇关于SQL Server 作业同步 (结合备份作业)的文章就讲到这里了,如果你想了解更多关于SQL Server 作业同步 (结合备份作业)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我希望使用 API 根据处理 Q 的大小更改运行的 Web 作业实例的数量,我知道我可以在门户中设置规则,但最短聚合时间为 60 分钟,并且我如果我们突然遇到大量工作,不希望系统在扩展之前等待 60
假设我有一个 spark 应用程序并且有两个操作导致两个 spark 作业。 //spark Application //Spark Job1 .... erro
大家好! 作为我对Java的自学的一部分,我正在尝试完成可用的Java初学者分配之一here(非常古老的东西-2001) 问题是我不知道如何应对这个挑战:(我将不胜感激任何建议,因为该解决方案不再可用
我一直在使用 HADOOP 1.2.1 服务器,并在那里执行许多 pig 作业。最近,我考虑将我的 Hadoop 服务器更改为 HADOOP 2.2.0。所以我在 HADOOP 2.2.0 中尝试了一
好的,我修复了静态错误。现在我只是想找出为什么每个对象都得到相同的条目(即相同的名字、年龄、体重等)。这是代码: package classlab3b; import classlab3B.BodyM
我的家庭作业中的一个问题需要一些帮助,我已经尝试了大约一个小时,但无法运行。 列出购买商品数量超过每位顾客平均商品数量的顾客 表格如下: Customer(Cnum, CustomerName, Ad
Kubernetes Jobs重复创建 Pod,直到指定数量的容器成功终止。作业通常与更高级别的CronJob机制一起使用,该机制会按循环计划自动启动新作业。 定期使用 Jobs 和 CronJobs
我有以下工作类(我已经删除了实际的工作代码): @On("0 0 1 * * ?") public class DailyJob extends Job { @Override pub
假设您将 cron 作业配置为每分钟运行一次以做某事。如果实际任务运行时间超过一分钟会发生什么? cron 会创建另一个作业实例/线程吗?还是 cron 会等待并确保上一次运行完成? 谢谢! 最佳答案
我们正在使用 TeamCity 7 并想知道是否可以仅在前一个步骤失败时才运行步骤?我们在构建步骤配置中的选项让您可以选择仅在所有步骤都成功时执行,即使步骤失败,或者始终运行它。 有没有办法仅在前一个
我在 oracle 中编写作业以执行存储过程,但是当时机成熟时,它不会无缘无故地发生任何事情。 是否有某种日志可以让我查看是否发生了错误或其他事情? 我使用 dbms_job 包来创建作业 恩克斯。
我正在用 Java 创建一个用于文件共享的 p2p 应用程序。每个对等节点都将在我的机器上的不同端口上运行并监听请求。但我遇到的问题是,当创建 PeerNode 实例时,我的代码会进入无限循环。以下是
我正在尝试创建一个队列,但当我运行 php artisanqueue:work 时它不起作用,我在终端中得到的只是 [2017-11-30 19:56:27] Processing: App\Jobs
我正在使用PHP库phpseclib0.2.2将SSH自动化到我的一台服务器中。我将其设置为每5分钟运行一次的cron任务。 在设置完它并确保其运行等情况下注销后,我看到了以下内容: $ logout
有没有办法获取多分支管道作业扫描收集到的所有分支的名称? 我想设置一个依赖于现有构建作业的夜间构建,因此需要检查多分支作业是否包含某些特定分支。另一种方法是检查现有作业。 最佳答案 我通过使用 Jen
我在编程方面还很陌生,我不太确定如何完成分配给我的学校作业。 Write a function void print_min(unsigned char a, short b,int c),which
我的作业有问题,需要帮助! 问题 1: 完成下面的 Java 方法,以便 raiseToPower(x,n) 将数字 x 提高到整数 n 次方(即计算值 xn )。请记住 x-n = 1/xn,x0
我正在做一项家庭作业,该作业有四个文本字段和一个文本区域,以及一个将文本字段和文本区域保存到文本文件的按钮,每行一个元素。然后,应出现一个对话框通知用户文件已保存。当对话框关闭时,它应该清空文本字段和
我需要运行一个名为ArrayHolder的java程序,它将运行两个线程。 ArrayHolder 将有一个 Array。 ThreadSeven 会用 7 覆盖该 Array 的每个元素,并用 1
在我的程序中,应该读取学生姓名、ID 号和 GPA,将其分配给指定的学生,然后打印出来。一切都编译正常,但出现错误 Error: Could not find or load main class L
我是一名优秀的程序员,十分优秀!