答案1
代理仅用于处理正在运行的维护作业(备份、重新索引等)。在重新启动之前,请检查没有任何正在运行的作业,这样就没问题了。我以前从未重新启动过它,但就像其他任何事情一样,如果您担心的话,我会在非工作时间重新启动它。
答案2
根据我使用 SQL 的经验,您应该能够重新启动此服务而不会产生任何意外后果。只要 SQL Server 正在运行,一旦您停止代理服务,它重新启动就不会出现任何问题。
您在事件日志中看到了什么让您认为需要重新启动?
答案3
运行脚本以查明是否有任何作业正在运行。如果没有,则可以安全地重新启动它。
List Running Jobs
/*
DESCRIPTION:
List the RUNNING jobs on an instance
CONFIGURATION
None
Compatibility list:
MSSQL2005
MSSQL2008
Does not work
MSSQL2000
Legend
@execution_status=1 Running
@execution_status=4 Idle
*/
IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects WHERE ID = OBJECT_ID(N'tempdb..#JobInfo'))
BEGIN
DROP TABLE #JobInfo
END
SELECT * INTO #JobInfo
FROM OPENROWSET('sqloledb', 'server=(local);trusted_connection=yes'
, 'set fmtonly off exec msdb.dbo.sp_help_job @execution_status=1')
SELECT
-- [job_id]
[originating_server],[name],[enabled]
--,[description]
,[start_step_id]
--,[category]
,[owner]
--,[notify_level_eventlog],[notify_level_email],[notify_level_netsend],[notify_level_page],[notify_email_operator],[notify_netsend_operator],[notify_page_operator],[delete_level],[date_created],[date_modified]
--,[version_number]
,[last_run_date]
,[last_run_time]
,[last_run_outcome]
,[next_run_date]
,[next_run_time]
--,[next_run_schedule_id]
,[current_execution_status]
,[current_execution_step]
,[current_retry_attempt]
--,[has_step],[has_schedule],[has_target]
,[type]
FROM #JobInfo
当你收到错误时,以下是解决方案
解决方案:基本上,由于安全配置,SQL Server 中默认禁用“即席分布式查询”,并且您无法使用 OPENROWSET 或 OPENDATASOURCE,如果您无法执行这两个行集函数,则无法访问任何远程数据源。那么如何解决这个问题?下面给出了启用“即席分布式查询”的脚本。
USE master
GO
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
- 输出
配置选项“显示高级选项”从 0 更改为 1。运行 RECONFIGURE 语句进行安装。配置选项“Ad hoc Distributed Queries”从 0 更改为 1。运行 RECONFIGURE 语句进行安装。
如上所示,“即席分布式查询”设置从 0 更改为 1。现在您可以轻松执行任何“即席查询”
注意:默认情况下,此选项设置为 0,您需要将其更改为 1 才能激活此功能。