如何用一条SQL 语句 查看某个集群的备份频率和备份文件保留时间?

【 使用环境 】生产环境 or 测试环境 生产
【 OB or 其他组件 】 OB 4.0
【 使用版本 】 OB 4.0
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

如何用一条SQL 语句 查看某个集群的备份频率和备份文件保留时间?

备份保留时间:

sys租户下查询:

select * from oceanbase.CDB_OB_BACKUP_DELETE_POLICY;
±----------±------------±----------------+
| TENANT_ID | POLICY_NAME | RECOVERY_WINDOW |
±----------±------------±----------------+
| 1016 | default | 7d |
| 1018 | default | 7d |

备份频率(备份策略),如果用ocp管理的应该去ocp元数据库查询。

查看已设置的清理策略

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013171

3 个赞

根据文档库中的信息,OceanBase 社区版并没有直接提供一条 SQL 语句来同时查看集群的备份频率和备份文件保留时间。这两个配置通常是通过不同的参数和表进行管理和记录的。

备份频率

备份频率通常是由备份策略决定的,而这些策略是在发起备份时指定的,并不是静态存储在某个表中供查询。如果您是通过 obshell 或者 OCP 等工具来管理备份任务,那么具体的备份频率应该是在这些工具的配置或调度计划中定义的。

备份文件保留时间

对于备份文件的保留时间,可以通过查询系统表 oceanbase.CDB_OB_BACKUP_CLEAN_POLICY 来获取相关信息。此表包含了关于备份清理策略的信息,其中包括了备份文件的保留期限。

SELECT * FROM oceanbase.CDB_OB_BACKUP_CLEAN_POLICY;

该查询将返回有关当前备份清理策略的信息,包括但不限于保留天数等字段。

综合建议

由于无法用单一 SQL 查询同时获得备份频率和备份文件保留时间,建议您:

  1. 检查备份日志:定期检查备份作业的日志,以了解实际执行的备份频率。
  2. 使用 OCP 或 obshell:如果使用了 OCP 或 obshell 进行备份管理,可以在相应的界面或命令行工具中查看备份策略设置。
  3. 联系管理员:与负责维护备份系统的管理员沟通,他们可能有更详细的记录或者可以提供定制化的查询脚本来满足您的需求。

如果您需要进一步的帮助来构建特定环境下的查询,请提供更多详细信息,例如使用的具体工具(如 OCP、obshell)以及是否有任何自定义的备份流程。

具体信息可参考以下文档:

  1. 集群近期 1 小时内发生的事件
  2. 检查租户资源使用状态
  3. 查询 SQL 流量分布情况及 QPS
  4. oceanbase.CDB_OB_BACKUP_TASK_HISTORY
  5. 发起租户级备份
  6. 检查集群配置项
  7. V$OB_SHARED_STORAGE_QUOTA
  8. 发起集群级备份
  9. 查看数据备份结果

select
b.tenant_name,
a.tenant_id,
DATE_FORMAT(start_timestamp, ‘%Y-%m-%d’) as ‘备份日期’,
CASE DATE_FORMAT(start_timestamp, ‘%w’)
WHEN 1 THEN ‘星期一’
WHEN 2 THEN ‘星期二’
WHEN 3 THEN ‘星期三’
WHEN 4 THEN ‘星期四’
WHEN 5 THEN ‘星期五’
WHEN 6 THEN ‘星期六’
WHEN 0 THEN ‘星期日’
END
as ‘星期几’,
case
when backup_type = ‘FULL’ then ‘全备’
when backup_type = ‘INC’ then ‘增量备份’
else null
end
as ‘备份类型’,
CASE
WHEN a.status = ‘SUCCESS’ THEN ‘成功’
WHEN a.status = ‘FAILED’ THEN ‘失败’
ELSE NULL
END
as ‘备份状态’,
case
when file_status = ‘DELETED’ THEN ‘备份文件已删除’
WHEN file_status = ‘AVAILABLE’ THEN ‘有效备份’
WHEN file_status = ‘INCOMPLETE’ THEN ‘备份文件缺失’
WHEN file_status = ‘EXPIRED’ THEN ‘备份文件失效’
WHEN file_status = ‘COPYING’ THEN ‘文件备份中’
WHEN file_status = ‘DELETING’ THEN ‘备份文件删除中’
WHEN file_status = ‘BROKEN’ THEN ‘备份文件不完整’
ELSE NULL
END
as ‘备份文件状态’,
SEC_TO_TIME(elapsed_secondes) AS ‘备份总时长’,
result,
round(output_bytes / 1024 / 1024 / 1024, 2) as ‘备份文件大小(G)’,
PATH
from
CDB_OB_BACKUP_SET_FILES a
LEFT JOIN dba_ob_tenants b ON a.tenant_id = b.tenant_id
order by
start_timestamp desc;

1 个赞

查询结果如下:
select * from oceanbase.CDB_OB_BACKUP_DELETE_POLICY

TENANT_ID POLICY_NAME RECOVERY_WINDOW
0 1074 default 1d
1 1076 default 1d
2 1078 default 1d
3 1080 default 3d

能否TENANT_ID 和TENANT_name 关联,做一个关联查询,查询出 TENANT_name ,TENANT_ID ,|POLICY_NAME|RECOVERY_WINDOW|?

谢谢,这个回答很精彩

根据文档库中的信息,您可以使用 oceanbase.DBA_OB_TENANTS 视图来获取租户的名称和 ID 信息,并将其与 oceanbase.CDB_OB_BACKUP_DELETE_POLICY 视图进行关联查询。这样就可以同时获得 TENANT_NAMETENANT_IDPOLICY_NAMERECOVERY_WINDOW 的信息。

以下是实现这一需求的 SQL 查询语句:

SELECT 
    t.TENANT_NAME, 
    p.TENANT_ID, 
    p.POLICY_NAME, 
    p.RECOVERY_WINDOW
FROM 
    oceanbase.CDB_OB_BACKUP_DELETE_POLICY p
JOIN 
    oceanbase.DBA_OB_TENANTS t 
ON 
    p.TENANT_ID = t.TENANT_ID;

解释:

  • oceanbase.CDB_OB_BACKUP_DELETE_POLICY:此表包含备份清理策略的信息,包括租户 ID (TENANT_ID)、策略名称 (POLICY_NAME) 和恢复窗口 (RECOVERY_WINDOW)。
  • oceanbase.DBA_OB_TENANTS:此表包含所有租户的基本信息,包括租户名称 (TENANT_NAME) 和租户 ID (TENANT_ID)。
  • JOIN:通过 TENANT_ID 字段将两个表连接起来,从而可以同时获取租户名称和其他备份策略相关信息。

执行上述查询后,您将得到如下格式的结果:

TENANT_NAME TENANT_ID POLICY_NAME RECOVERY_WINDOW
tenant1 1074 default 1d
tenant2 1076 default 1d
tenant3 1078 default 1d
tenant4 1080 default 3d

这将帮助您更清晰地了解每个租户的备份清理策略及其对应的恢复窗口时间。

如果您有任何其他问题或需要进一步的帮助,请随时告知!

详情请参考:

  1. oceanbase.CDB_OB_BACKUP_DELETE_POLICY
  2. oceanbase.CDB_WR_SQLTEXT
  3. oceanbase.CDB_OB_TRANSFER_PARTITION_TASKS
  4. oceanbase.CDB_OB_BACKUP_STORAGE_INFO
  5. oceanbase.DBA_OB_TENANTS
  6. 删除租户
  7. 自动清理过期备份

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞