恢复SQL文件
我最近购买了一个网站,对MS SQL有很好的了解。我目前正在将数据库恢复到新的专用服务器 到目前为止,这一切都很成功,并按预期工作,直到我遇到两个我不知道如何恢复的文件 文件为TennantCleanUp.sql和UploadJob.sql 我问过这些文件的创建者它们是什么以及如何恢复它们。关于如何恢复他们,他没有提出任何建议。我想他暗示这是我的问题 他确实提供了以下描述,我认为这将有助于我提供所需的建议 TenantClean文件是每15分钟定期运行的作业 此作业的目的是,如果潜在租户经历了出租过程,但未完全完成交易,则该租户会暂时将该物业保持在其他人无法出租的状态,并向其他用户显示一条消息,说明其正在出租,但可能会返回列表 例如,如果我在与其他人同时添加租户信息的过程中,可能会有两个租户出租同一物业,而通过这种方式,第一个启动此过程的人可以获得15分钟的宽限期,以便在允许其他人之前完成此过程 谁能帮我下一步该怎么做才能让这些工作在MS SQL 2012中正常工作 职务代码恢复SQL文件,sql,sql-server,restore,job-scheduling,Sql,Sql Server,Restore,Job Scheduling,我最近购买了一个网站,对MS SQL有很好的了解。我目前正在将数据库恢复到新的专用服务器 到目前为止,这一切都很成功,并按预期工作,直到我遇到两个我不知道如何恢复的文件 文件为TennantCleanUp.sql和UploadJob.sql 我问过这些文件的创建者它们是什么以及如何恢复它们。关于如何恢复他们,他没有提出任何建议。我想他暗示这是我的问题 他确实提供了以下描述,我认为这将有助于我提供所需的建议 TenantClean文件是每15分钟定期运行的作业 此作业的目的是,如果潜在租户经历了
USE [msdb]
GO
/****** Object: Job [TenantClean] Script Date: 26/06/2014 11:07:33 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [Database Maintenance] Script Date: 26/06/2014 11:07:34 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Database Maintenance' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Database Maintenance'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'TenantClean',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'removes tenant info from a property that hasn''t been paid for.',
@category_name=N'Database Maintenance',
@owner_login_name=N'Chris', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Remove tenant info older that 15mins] Script Date: 26/06/2014 11:07:34 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Remove tenant info older that 15mins',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=3,
@retry_interval=1,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'DELETE FROM PropertyTenant
WHERE PaymentSuccessful = 0
AND DATEDIFF(minute, CreatedDate, GETDATE()) > 15',
@database_name=N'compRent',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'15minTenantClean',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=4,
@freq_subday_interval=15,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20130617,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959,
@schedule_uid=N'4749c1e7-a8a9-4482-9d52-22e95a4f7686'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO
谢谢万一有人想知道我是怎么想出来的 若要在不使用SQL代理的情况下执行此操作,必须进入SQL文件并提取命令 在我的情况下是这样的
@command=N'DELETE FROM PropertyTenant
WHERE PaymentSuccessful = 0
AND DATEDIFF(minute, CreatedDate, GETDATE()) > 15',
所以我用复制品
'DELETE FROM PropertyTenant
WHERE PaymentSuccessful = 0
AND DATEDIFF(minute, CreatedDate, GETDATE()) > 15'
并将其粘贴到记事本文件中
sqlcmd -S COMPUTERNAME -E -d DATABASENAME -Q "COMMAND HERE" >> OUTPUTFILENAME.txt 2>&1
并将其替换为以下内容
sqlcmd -S T800-907 -E -d TenantDB -Q "DELETE FROM PropertyTenant WHERE PaymentSuccessful = 0 AND DATEDIFF(minute, CreatedDate, GETDATE()) > 15" >> TenantCleanLog.txt 2>&1
然后我将其保存为.bat文件。当bat文件运行时,它会将输出保存到tenantCleanLog.txt
也可以将其安排为从windows task schedualar运行
希望这对我这样的人有帮助:D
然后我在internet上找到了这段代码您应该研究使用SQL Server中的代理设置作业计划。我看了这个,甚至看了一段视频,但我的SQL server似乎没有在树中包含这个代理。也可以只还原它们,或者我需要重写它们。如果不还原.sql文件,则执行它们,只需将它们粘贴到与数据库服务器链接的查询窗口中的management studio应用程序中,然后执行脚本。当然,您需要找到代理的计划脚本,但可能只需要执行另一个脚本。但是,由于您没有告诉我们这些脚本的作用,因此不可能在这里给您一个真正的答案。我质疑您的说法,即您对MS SQL非常了解,并且不知道.SQL文件是什么。您是否在文本编辑器中打开它们并查看了它们?然后您需要使用windows调度程序来执行此操作,只需谷歌提供有关如何设置的示例。