无需作业的 SQL Server 完整数据库备份

tom*_*Bob 3 sql-server

我正在尝试找出可以修改正在运行的备份作业的计划的位置。SQL Server 在交给我们之前是由一个团队设置的。

我们的 SQL Server 代理中有一组维护作业,我可以修改这些作业,但查看服务器日志,还有另一个完整备份在运行,将所有内容备份到 blob 存储中。

问题是,我找不到计划在哪里进行。我在执行此备份的代理中看不到任何作业,管理文件夹中也没有维护计划。

有什么我想念的吗?或者有什么方法可以让我找到执行此备份的内容?

Gra*_*hey 6

备份命令几乎可以从任何地方运行,并可以使用任何类型的调度工具进行调度。因此,虽然 SQL Agent 是最常用的方法,但它并不是唯一的方法。要确定此备份运行时发生了什么,我建议创建一个扩展事件会话来捕获查询。您将能够看到正在使用的登录名。根据连接设置,您还可以看到进行呼叫的应用程序。至少,您可以看到呼叫来自网络中的机器。

因为扩展事件可以返回大量数据,所以我建议仅在根据您拥有的日志信息进行调用时才打开它。要搜索数据,您可以使用 SSMS 中的实时数据浏览器窗口。我有一篇关于该工具入门的博客文章,可能会有所帮助。


Dan*_*man 6

尽管已弃用功能,但默认跟踪将包含有关备份命令源的附加信息。下面是从所有可用跟踪文件中提取审计备份/恢复事件的示例查询。

SELECT tt.*
FROM sys.traces AS t
CROSS APPLY fn_trace_gettable(
    REVERSE(N'crt.gol' + SUBSTRING(REVERSE(t.path), CHARINDEX(N'\', REVERSE(t.path)), 128)), default) AS tt
JOIN sys.trace_events AS te ON
    te.trace_event_id = tt.EventClass
JOIN sys.trace_subclass_values AS tesv ON
    tesv.trace_event_id = tt.EventClass
    AND tesv.subclass_value = tt.EventSubClass
WHERE
    t.is_default = 1
    AND tt.ObjectType = 16964
    AND te.name = 'Audit Backup/Restore Event';
Run Code Online (Sandbox Code Playgroud)