如何设置每周作业以清除备份日志
How to set up a weekly job to clear backup logs
我的工作要求在我们的 SQL 服务器上设置每周 "log truncation job"。
我认为,我假设他们希望我设置一个作业来清除备份日志文件是正确的(但我可能是错的)。
不过我是 SQL 的新手,到目前为止我还没有做过这样的事情,所以我不知道该怎么做。
目前我没有关于 SQL 服务器的 backups/logs 存储位置的信息。
有没有我可以 运行 告诉我备份日志在哪里的脚本?
还有谁知道如何设置作业来清除 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
任何人都可以提供一点帮助吗?
以下脚本将显示数据库的大小并为您提供它们的位置:
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
就截断它们而言 - 我检查并发现以下内容:How do you clear the SQL Server transaction log?。
根据以上 link,我建议您设置一个 SQL 作业来执行此操作...
我的工作要求在我们的 SQL 服务器上设置每周 "log truncation job"。
我认为,我假设他们希望我设置一个作业来清除备份日志文件是正确的(但我可能是错的)。
不过我是 SQL 的新手,到目前为止我还没有做过这样的事情,所以我不知道该怎么做。
目前我没有关于 SQL 服务器的 backups/logs 存储位置的信息。
有没有我可以 运行 告诉我备份日志在哪里的脚本?
还有谁知道如何设置作业来清除 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
任何人都可以提供一点帮助吗?
以下脚本将显示数据库的大小并为您提供它们的位置:
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
就截断它们而言 - 我检查并发现以下内容:How do you clear the SQL Server transaction log?。
根据以上 link,我建议您设置一个 SQL 作业来执行此操作...