0

我的工作要求在我们的 SQL 服务器上设置每周一次的“日志截断作业”。

我认为,我正确地假设(但我可能错了)他们希望我建立一个工作来清除备份日志文件。

但是,我是 SQL 新手,到目前为止,我之前还没有做过类似的事情,所以我不知道该怎么做。

目前,我没有关于 SQL 服务器的备份/日志存储位置的信息。

有没有我可以运行的脚本来告诉我备份日志在哪里?

还有人知道如何设置一项工作以清除 SQL 服务器备份日志或知道解释如何执行此操作的网站吗?

我找到了以下内容,但我不确定我是否完全理解这意味着什么。

CREATE PROCEDURE [dbo].[usp_DeleteOldBackupFiles] @path NVARCHAR(256),
@extension NVARCHAR(10),
@age_hrs INT
AS
BEGIN
SET NOCOUNT ON;

DECLARE @DeleteDate NVARCHAR(50)
DECLARE @DeleteDateTime DATETIME

SET @DeleteDateTime = DateAdd(hh, - @age_hrs, GetDate())

    SET @DeleteDate = (Select Replace(Convert(nvarchar, @DeleteDateTime, 111), '/', '-') + 'T' + Convert(nvarchar, @DeleteDateTime, 108))

EXECUTE master.dbo.xp_delete_file 0,
    @path,
    @extension,
    @DeleteDate,
    1
END

任何人都可以提供一点帮助吗?

4

1 回答 1

1

以下脚本将向您显示数据库的大小并为您提供它们的位置:

SELECT
    D.name                                          [Database Name]
,   F.Name                                          [File Type]
,   isnull(D.collation_name,'Unknown')              [Collation]
,   D.recovery_model_desc                           [Recovery Model]
,   F.physical_name                                 [Physical File]
,   F.state_desc                                    [Online Status]
,   F.size*8/1024/1024                              [File Size in GB]
,   F.size*8/1024                                   [File Size in MB]
--, F.size*8                                        [File Size in B]
--, *
FROM 
    sys.master_files F
    INNER JOIN sys.databases D ON D.database_id = F.database_id
ORDER BY
    D.name

在截断它们方面 - 我检查并发现以下内容:如何清除 SQL Server 事务日志?.

从上面的链接中,我建议您设置一个执行此操作的 SQL 作业...

于 2019-08-19T11:28:06.827 回答