You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否配置Log Analytics捕获Azure SQL Server自动备份信息并提取详情?

从Azure SQL Server自动PITR备份提取状态与时间信息

以下是几种精准获取所需信息的方法,可解决Log Analytics查询不精准的问题:

1. 修正Log Analytics查询(精准定位备份事件)

如果之前的Log Analytics查询未拿到正确数据,大概率是未筛选对事件类别和字段。使用以下Kusto查询直接定位PITR相关的日志备份事件:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SQL"
| where Category == "Backup"
| where OperationName == "BACKUP_DB"
| extend BackupProps = parse_json(Properties)
| where tostring(BackupProps.BackupType) == "LOG" // PITR基于日志备份,全量备份为基础
| project
  数据库名称 = Resource,
  服务器名称 = split(ResourceId, "/")[8],
  备份开始时间 = BackupProps.StartTime,
  备份结束时间 = BackupProps.EndTime,
  备份状态 = BackupProps.Status,
  备份类型 = BackupProps.BackupType

2. 用PowerShell提取恢复点与备份状态

获取可恢复的PITR时间点

# 替换为你的资源信息
$rgName = "你的资源组名称"
$serverName = "你的SQL服务器名称"
$dbName = "目标数据库名称"

$restorePoints = Get-AzSqlDatabaseRestorePoint -ResourceGroupName $rgName -ServerName $serverName -DatabaseName $dbName
$restorePoints | Select-Object RestorePointType, RestorePointCreationDate, EarliestRestoreDate

查询备份操作的执行状态(成功/失败)

$backupLogs = Get-AzLog -ResourceGroupName $rgName -ResourceType "Microsoft.Sql/servers/databases" -ResourceName "$serverName/$dbName" -StartTime (Get-Date).AddDays(-7)
$backupLogs | Where-Object { $_.OperationName.Value -eq "Microsoft.Sql/servers/databases/backup/action" } | Select-Object EventTimestamp, Status, Properties

3. Azure CLI快速查询

列出PITR恢复点

az sql db restore-point list --resource-group 你的资源组 --server 你的SQL服务器 --name 目标数据库

查询备份操作日志

az monitor activity-log list --resource-group 你的资源组 --resource-type Microsoft.Sql/servers/databases --resource-name 你的SQL服务器/目标数据库 --start-time 2024-05-01T00:00:00 --query "[?operationName.value=='Microsoft.Sql/servers/databases/backup/action']"

4. 直接从Azure SQL数据库内部查询

连接到目标数据库后,执行以下SQL查询获取备份历史(包含PITR依赖的日志备份):

SELECT
    backup_start_date AS 备份开始时间,
    backup_finish_date AS 备份结束时间,
    CASE type
        WHEN 'L' THEN '日志备份(PITR)'
        WHEN 'D' THEN '全量备份'
        ELSE '其他备份类型'
    END AS 备份类型,
    CASE status
        WHEN 1 THEN '成功'
        WHEN 0 THEN '失败'
        ELSE '未知'
    END AS 备份状态,
    database_name AS 数据库名称
FROM sys.dm_db_backup_history
WHERE database_name = '你的数据库名称'
AND type = 'L' -- 仅筛选PITR相关的日志备份
ORDER BY backup_start_date DESC;

内容的提问来源于stack exchange,提问作者Murilodsp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 10:17:37