闪回监控 闪回日志大小

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 闪回数据库的特性 Flashback Database 功能非常类似与RMAN的不完全恢复, 它可以把整个数据库回退到过去的某个时点的状态, 这个功能依赖于Flashback log 日志,而且比RMAN更快速、高效。

闪回数据库的特性 

Flashback Database 功能非常类似与RMAN的不完全恢复, 它可以把整个数据库回退到过去的某个时点的状态, 这个功能依赖于Flashback log 日志,而且比RMAN更快速、高效。 因此Flashback Database 可以看作是不完全恢复的替代技术。 但它也有某些限制:
1. Flashback Database 不能解决Media Failure, 这种错误RMAN恢复仍是唯一选择
2. 如果删除了数据文件或者利用Shrink技术缩小数据文件大小,这时不能用Flashback Database技术回退到改变之前的状态,这时候就必须先利用RMAN把删除之前或者缩小之前的文件备份restore 出来, 然后利用Flashback Database 执行剩下的Flashback Datbase。
3. 如果控制文件是从备份中恢复出来的,或者是重建的控制文件,也不能使用Flashback Database。
4. 使用Flashback Database锁能恢复到的最早的SCN, 取决与Flashback Log中记录的最早SCN。

闪回数据库 的架构 
Flashback Database 整个架构包括一个进程Recover Writer(RVWR)后台进程,Flashback Database Log日志和Flash Recovery Area。一旦数据库启用了Flashback Database, 则RVWR进程会启动,该进程会向Flash Recovery Area中写入Flashback Database Log, 这些日志包括的是数据块的 " 前镜像(before image)", 这也是Flashback Database 技术不完全恢复块的原因。RVWR进程写入的是闪回数据库日志,详细流程图见下图。


[oracle@dg1 ~]$ ps -ef|grep rvw|grep -v grep
oracle    2665     1  0 08:53 ?        00:00:00 ora_rvwr_orcl

RVWR和LGWR的区别

假设T表C1列默认值为null,并进行了如下操作

时间点

作用的列 T(C1)的 SQL

RVWR

LGWR

09:00:00

Update T set c1=1;

改变前的值 null

改变前的值 null,改变后的值 1

09:10:00

Update T set c1=2;

改变前的值 1

改变前的值 1,改变后的值2

09:15:00

Update T set c1=3;

改变前的值 2

改变前的值 2,改变后的值3

09:20:00

Update T set c1=4;

改变前的值 3

改变前的值 3,改变后的值4

闪回日志和联机重做日志虽然作用相似 ,但他们还是有不少差异。 闪回日志不是循环使用的,联机重做日志是循环使用的。当事务修改了buffer cache中的数据块时,会将改变前的值和改变后的值以重做记录的形式保存在log buffer中,然后通过LGWR将重做记录写入联机重做日志中。但是在记录闪回日志时,只会将改变前的值保存在flashback buffer中,再由RVWR写入闪回日志中。
闪回时,从闪回日志的尾部向头部方向,依次取出闪回日志中的记录并应用在数据库上。而应用重做日志在进行实例恢复时,从闪回日志的头部向尾部方向依次取出重做记录并应用到数据库上。
比如当前时间
 09:20:00表T中C1列的值为4,当需要闪回到 09:10:00表T中C1为2的时候。从尾部应用日志开始,先取出C1=3这个值覆盖C1=4,之后继续取出C1=2覆盖C1=3。发现已经满足条件,故停止应用闪回日志。 
与闪回数据库相关的几个视图

1.v$flashback_database_log 
Flashback Database 所能回退到的最早时间,取决与保留的Flashback Database Log 的多少,该视图就可以查看许多有用的信息。
Oldest_flashback_scn / Oldest_flashback_time : 这两列用来记录可以恢复到最早的时点
Fashback_size: 记录了当前使用的Flash Recovery Area 空间的大小
Retention_target: 目标保存的实际(分钟)
Estimated_flashback_size: 根据策略对需要的空间大小的估计值
 
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.

SQL>  select OLDEST_FLASHBACK_SCN os,OLDEST_FLASHBACK_TIME ot,RETENTION_TARGET rt ,FLASHBACK_SIZE fs,ESTIMATED_FLASHBACK_SIZE efs from v$flashback_database_log;
        OS        OT                                     RT         FS               EFS
----------        ------------------------             ----------   ----------          ---------
    858471   2011-03-23 12:19:20       1440   79970304    95920128

2.v$flashback_database_stat 
这个视图用来对Flashback log  空间情况进行更细粒度的记录和估计。 这个视图以小时为单位记录单位时间内数据库的活动量, Flashback_Data  代表 Flashback log 产生数量, DB_Date  代表数据改变数量, Redo_Date 代表日志数量,通过这 3 个数量可以反映出数据的活动特点,更准确的预计 Flash Recovery Area 的空间需求

SQL> select BEGIN_TIME bt,END_TIME et,FLASHBACK_DATA fd,DB_DATA dd,REDO_DATA rd,ESTIMATED_FLASHBACK_SIZE efs from v$flashback_database_stat; 
BT                                     ET                               FD                 DD              RD            EFS
-------------------             -----------------------------      ------------    -------------     ----------      ----------
2011-03-24 20:50:40 2011-03-24 21:08:19    2727936    3760128     854016      0
2011-03-24 19:44:19 2011-03-24 20:50:40    5488640    8716288     2470400    93757440

3.v$flashback_database_logfile

该视图主要记录闪回日志的详细信息,NAME闪回日志的位置,FIRST_CHANGE#闪回日志中记录的最早的SCN,FIRST_TIME闪回日志中记录的最早时间

SQL> select * from v$flashback_database_logfile;

NAME                                                                    LOG#    THREAD#  SEQUENCE#      BYTES FIRST_CHANGE# FIRST_TIME
----------------------------------------------------------------- ---------- ---------- ---------- ---------- ------------- -------------------
/u01/app/flash_recovery_area/ORCL/flashback/o1_mf_6rhqmnl8_.flb            1          1         31    8192000        913156 2011-03-24 21:00:30
/u01/app/flash_recovery_area/ORCL/flashback/o1_mf_6rj46g7l_.flb            2          1         13    4096000        861743 2011-03-23 14:00:25
/u01/app/flash_recovery_area/ORCL/flashback/o1_mf_6rj7q75f_.flb            3          1         14    3981312        863845 2011-03-23 15:00:41
/u01/app/flash_recovery_area/ORCL/flashback/o1_mf_6rjc824j_.flb            4          1         15    3981312        865919 2011-03-23 16:00:57
/u01/app/flash_recovery_area/ORCL/flashback/o1_mf_6rjgrsmg_.flb            5          1         16    3981312        867909 2011-03-23 17:00:21
 
启用数据库闪回模式 
如果想启动FLASHBACK DATABASE的功能,您必须在MOUNT模式下,将数据库通过如下命令至于归档模式

SQL> alter database archivelog;
Database altered.

开启闪回模式

SQL> alter database flashback on;
Database altered.
 
关闭闪回执行可通过如下命令

SQL> alter database flashback off;
Database altered.

确认闪回是否开启

select name,current_scn,flashback_On from v$database
NAME                                   CURRENT_SCN         FLASHBACK_ON
---------------------------           ------------------------       ------------------------------                 
ORCL                                           0                              YES

与闪回数据库相关的几个参数

1. DB_RECOVERY_FILE_DEST_SIZE和 DB_RECOVERY_FILE_DEST 
要想使用Flashback Database, 必须使用Flash Recovery Area,因为Flashback Database Log只能保存在这里。 要配置的2个参数如下,一个是大小,一个是位置。如果数据库是RAC,flash recovery area 必须位于共享存储中。数据库必须处于archivelog 模式.
启用Flash Recovery Area:
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G SCOPE=BOTH; 
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/DBA/FB' SCOPE=BOTH; 
禁用Flash Recovery Area:
 
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='' ;
 
对于Flash Recovery Area,Oracle 是这样建议的,flash recovery area 设置的越大,flashback database 的恢复能力就越强,因此建议flash recovery area 能够放的下所有的数据文件,增量备份,以及所有尚未备份的归档文件,当然还有它自己产生的flashback logs。
在数据库运行过程中,oracle 自动向该区域写入文件,当剩余空间不足15%的时候,它就会在alert 中增加警告,提示你空间不足。但此时不会影响数据库的正常运转,直到所有空间统统被用掉之后,oracle 首先尝试删除寻些过期的文件,冗余文件或备份过的文件以及闪回日志,如果这些做完了,还是没有空闲空间的话,数据库就被hang住了。

2. DB_FLASHBACK_RETENTION_TARGET: 
该参数用来控制flashback log 数据保留的时间,或者说,你希望flashback database 能够恢复的最早的时间点。默认值是1440,单位是minute,即24 小时,需要注意的是该参数虽然未直接指定flash recovery area大小,但却受其制约,举个例子假如数据库每天有10%左右的数据变动的话,如果该初始化参数值设置为1440,则flash recovery area 的大小至少要是当前数据库实际容量的10%,如果该初始化参数设置为2880,则flash recovery area 的大小就至少是数据库所占容量的20%。

SQL>alter system set db_flashback_retention_target=1440 scope=both; 
启用闪回数据库
 

数据库的Flashback Database功能缺省是关闭的,要想启用这个功能,就需要做如下配置。

启用归档模式

SQL> alter database archivelog;
Database altered.

开启闪回模式

SQL> alter database flashback on;
Database altered.

关闭闪回执行可通过如下命令

SQL> alter database flashback off;
Database altered.

闪回数据库实际操作

1、确认开启归档模式 
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app
Oldest online log sequence     1
Next log sequence to archive   4
Current log sequence           4

2.确认开启闪回 

SQL> select flashback_on from v$database;
FLASHBACK_ON                                                                    
------------------------------------------------------                          
YES                                                                     
3.确认闪回日志的存放位置和最大容量 
SQL> show parameter db_recovery
NAME                                       TYPE                                      VALUE     
                                              
------------------------------------      ---------------------------------    -----------------------------------              
db_recovery_file_dest             string                                     /u01/app/flash_recovery_area          
db_recovery_file_dest_size    big integer                            2G                

闪回数据库

查询当前时间点

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS')                                                                                                                                                                
---------------------------------------------------------                                                                                                                                               
2011-03-24 09:40:10    
                                                                                                                                                              
查询当前SCN
SQL> select current_scn from v$database;
CURRENT_SCN                                                                                                                                                                                            
-----------                                                                                                                                                                                            
 905962  
                                                                                                                                                                                 
删除HR用户
SQL> drop user hr cascade;
User dropped.

进行闪回数据库

SQL> startup mount;
ORACLE instance started.
Total System Global Area  373293056 bytes                                                                                                                                                               
Fixed Size                  1219496 bytes                                                                                                                                                               
Variable Size             163578968 bytes                                                                                                                                                               
Database Buffers          205520896 bytes                                                                                                                                                               
Redo Buffers                2973696 bytes                                                                                                                                                               
Database mounted.

基于时间点的闪回 
SQL> flashback database to timestamp to_timestamp('2011-03-24 09:40:10','yyyy-mm-dd hh24:mi:ss');
Flashback complete.
基于SCN的闪回 
SQL> flashback database to scn 905962;
Flashback complete.

打开数据库: 
在执行完flashback database 命令之后,oracle 提供了两种方式让你修复数据库:
1). 直接alter database open resetlogs 打开数据库,当然,指定scn 或者timestamp 时间点之后产生的数据统统丢失。
2). 先执行alter database open read only 命令以read-only 模式打开数据库,然后立刻通过逻辑导出的方式将误操作涉及表的数据导出,再执行recover database 命令以重新应用数据库产生的redo,将数据库修复到flashback database 操作前的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,这样的话对现有数据的影响最小,不会有数据丢失。

下面以只读方式打开确认是否正确闪回
SQL> alter database open read only;
Database altered.
SQL> conn hr/hr;
Connected.


SQL> select count(*) from user_tables;
  COUNT(*)
----------
        26

以RESETLOGS方式打开数据库

SQL> alter database open resetlogs;

闪回数据库需要注意的几点:

1.一旦关闭闪回数据库,flashback recovery area中的闪回日志将自动全部删除

2.即便以resetlogs打开数据库,当前闪回日志里的内容仍然保留,仍然可以继续进行闪回以restlogs方式打开数据库。之所以考虑以read only放是打开数据库,主要是因为以resetlog方式打开数据库后,用户即可操作数据库,无法校验闪回的准确性。另外,当闪回数据库与DATA GUARD结合后,当主库发生逻辑损坏,我们可以闪回备库,然后以read only方式打开备库,将数据从备库中导出后导入到主库中,这样将对数据和业务的影响减小到最小。

3.如果闪回数据库的时间点之间进行了控制文件的恢复或重建,数据文件的收缩,或删除了某个表空间,则闪回将失败。

4.闪回日志在出现空间压力的情况下,oracle会自动删除闪回日志,则有可能导致无法闪回到指定的时间点。如果希望闪回到指定的时间点,可进行如下操作

SQL> create restore point must_to_flashback guarantee flashback database;

这样我们就给当前时间点取 must_to_flashback这个名字,确保能闪回到该时间点上 
5.闪回删除 只能用于非系统表空间和本地管理的表空间
6. 对象的参考约束、索引不会被恢复,指向该对象的外键约束需要重建。
7. 对象能否恢复成功,取决与对象空间是否被覆盖重用。
8. 当删除表时,信赖于该表的物化视图也会同时删除,但是由于物化视图并不会被放入recycle bin,因此当你执行flashback table to before drop 时,也不能恢复依赖其的物化视图,需要dba 手工介入重新创建。
9. 对于Recycle Bin中的对象,只支持查询.

闪回删除 
Flashback Drop 是从Oracle 10g 开始出现的, 用于恢复用户误删除的对象(包括表,索引等), 这个技术依赖于Tablespace Recycle Bin(表空间回收站),这个功能和windows的回收站非常类似。
Flashback 不支持sys用户. system表空间下的对象,也不能从回收站里拿到。故使用SYS 或者SYSTEM用户登陆时, show recyclebin 为空。
从Oracle 10g 开始, 每个表空间都会有一个叫作回收站的逻辑区域,当用户执行drop命令时, 被删除的表和表的关联对象( 包括索引, 约束,触发器,LOB段,LOB index 段) 不会被物理删除, 这些对象先转移到回收站中,这就给用户提供了一个恢复的可能。
初始化参数recyclebin 用于控制是否启用recyclebin功能,缺省是ON, 可以使用OFF关闭,如:

SQL> alter system set recyclebin=off;
SQL> alter system set recyclebin=on;
SQL> alter session set recyclebin=off;
SQL> alter session set recyclebin=on;

禁用后删除的对象将直接删除,不会写到Recycle中,当然在删除时,指定purge 参数,表也将直接删除,不会写到recyclebin中。

SQL> drop table test1; 
Table dropped.
SQL> drop table uk_czm purge;
Table dropped.

可以看到test1删除并被放入回收站中而uk_czm没有放入回收站 
SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST1            BIN$nzam0J++vbPgQAB/AQARTg==$0 TABLE        2011-03-24:16:56:22

查看recyclebin中的对象

SQL>select object_Name,original_name from recyclebin
OBJECT_NAME                                        ORIGINAL_NAME
-------------------------------------------------- ------------------
BIN$nzam0J++vbPgQAB/AQARTg==$0                     TEST1
查看对象的相信内容 
SQL> select * from "BIN$nzam0J++vbPgQAB/AQARTg==$0";
        ID NAME
---------- ------------------------------
         1 AA
         2 BB
         3 CC

表空间的Recycle Bin 区域只是一个逻辑区域,而不是从表空间上物理的划出一块区域固定用于回收站,因此Recycle Bin是和普通对象共用表空间的存储区域,或者说是Recycle Bin的对象要和普通对象抢夺存储空间。当发生空间不够时,Oracle会按照先入先出的顺序覆盖Recycle Bin中的对象。也可以手动的删除Recycle Bin占用的空间。
1). 
Purge tablespace tablespace_name : 用于清空表空间的Recycle Bin
2). Purge tablespace tablespace_name user user_name
 : 清空指定表空间的Recycle Bin中指定用户的对象
3). 
Purge recyclebin : 删除当前用户的Recycle Bin中的对象
4).
 Purge dba_recyclebin : 删除所有用户的Recycle Bin中的对象,该命令要sysdba权限
5). 
Drop table table_name purge :  删除对象并且不放在Recycle Bin中,即永久的删除,不能用Flashback恢复。
6). 
Purge index recycle_bin_object_name : 当想释放Recycle bin的空间,又想能恢复表时,可以通过释放该对象的index所占用的空间来缓解空间压力。 因为索引是可以重建的。

SQL> create table flash_drop(id int);
Table created.
SQL> drop table FLASH_DROP;
Table dropped.
SQL> create table flash_drop(id int);
Table created.
SQL> drop table FLASH_DROP;
Table dropped.
SQL> create table flash_drop(id int);
Table created.
SQL> drop table FLASH_DROP;
Table dropped.
SQL> create table flash_drop(id int);
Table created.

SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
FLASH_DROP       BIN$nzoFsXt1rUPgQAB/AQAKww==$0 TABLE        2011-03-24:19:59:45
FLASH_DROP       BIN$nzoFsXt0rUPgQAB/AQAKww==$0 TABLE        2011-03-24:19:59:40
FLASH_DROP       BIN$nzoFsXtzrUPgQAB/AQAKww==$0 TABLE        2011-03-24:19:56:22

使用原有的表名称来清空回收站中的表,默认清空回收站中最早的同名表

SQL> purge table FLASH_DROP;
Table purged.

可以看到  2011-03-24:19:56:22”也就是最早的“ FLASH_DROP”被清除了 
SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
FLASH_DROP       BIN$nzoFsXt1rUPgQAB/AQAKww==$0 TABLE        2011-03-24:19:59:45
FLASH_DROP       BIN$nzoFsXt0rUPgQAB/AQAKww==$0 TABLE        2011-03-24:19:59:40

执行闪回删除操作

SQL> flashback table flash_drop to before drop;
flashback table flash_drop to before drop
*
ERROR at line 1:
ORA-38312: original name is used by an existing object

由于数据库中已经重新创建了flash_drop表,故需加上rename to选项 
使用原有的表名称来闪回回收站中的表,默认闪回回收站中最晚的同名表

SQL> flashback table flash_drop to before drop rename to flash_1;
Flashback complete.

可以看到  2011-03-24:19:59:45” 也就是最晚的“ FLASH_DROP”被闪回了 
SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                                 OBJECT TYPE           DROP TIME
----------------                  ---------------------------------------------        -------------------------- ------------------------------
FLASH_DROP       BIN$nzoFsXt0rUPgQAB/AQAKww==$0     TABLE                     2011-03-24:19:59:40


使用回收站中的对象名称可明确指定需要删除或闪回的表 
SQL> purge table "BIN$nzoFsXt0rUPgQAB/AQAKww==$0";
SQL> flashback table "BIN$nzoFsXt0rUPgQAB/AQAKww==$0" to before drop;

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
29天前
|
存储 监控 固态存储
如何监控和优化 WAL 日志文件的存储空间使用?
如何监控和优化 WAL 日志文件的存储空间使用?
|
25天前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
2月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
244 0
|
3月前
|
SQL 数据库 Java
Hibernate 日志记录竟藏着这些秘密?快来一探究竟,解锁调试与监控最佳实践
【8月更文挑战第31天】在软件开发中,日志记录对调试和监控至关重要。使用持久化框架 Hibernate 时,合理配置日志可帮助理解其内部机制并优化性能。首先,需选择合适的日志框架,如 Log4j 或 Logback,并配置日志级别;理解 Hibernate 的多级日志,如 DEBUG 和 ERROR,以适应不同开发阶段需求;利用 Hibernate 统计功能监测数据库交互情况;记录自定义日志以跟踪业务逻辑;定期审查和清理日志避免占用过多磁盘空间。综上,有效日志记录能显著提升 Hibernate 应用的性能和稳定性。
48 0
|
3月前
|
开发者 前端开发 编解码
Vaadin解锁移动适配新境界:一招制胜,让你的应用征服所有屏幕!
【8月更文挑战第31天】在移动互联网时代,跨平台应用开发备受青睐。作为一款基于Java的Web应用框架,Vaadin凭借其组件化设计和强大的服务器端渲染能力,助力开发者轻松构建多设备适应的Web应用。本文探讨Vaadin与移动设备的适配策略,包括响应式布局、CSS媒体查询、TouchKit插件及服务器端优化,帮助开发者打造美观且实用的移动端体验。通过这些工具和策略的应用,可有效应对屏幕尺寸、分辨率及操作系统的多样性挑战,满足广大移动用户的使用需求。
54 0
|
3月前
|
存储 运维 监控
Entity Framework Core 实现审计日志记录超棒!多种方法助你跟踪数据变化、监控操作,超实用!
【8月更文挑战第31天】在软件开发中,审计日志记录对于跟踪数据变化、监控用户操作及故障排查至关重要。Entity Framework Core (EF Core) 作为强大的对象关系映射框架,提供了多种实现审计日志记录的方法。例如,可以使用 EF Core 的拦截器在数据库操作前后执行自定义逻辑,记录操作类型、时间和执行用户等信息。此外,也可通过在实体类中添加审计属性(如 `CreatedBy`、`CreatedDate` 等),并在保存实体时更新这些属性来记录审计信息。这两种方法都能有效帮助我们追踪数据变更并满足合规性和安全性需求。
57 0
|
3月前
|
存储 JSON 监控
FastAPI日志之谜:如何揭开Web应用监控与调试的面纱?
【8月更文挑战第31天】在现代Web开发中,日志记录对于监控应用状态、诊断问题和了解用户行为至关重要。FastAPI框架提供了强大的日志功能,使开发者能轻松集成日志记录。本文将详细介绍如何在FastAPI中设置和利用日志,包括基础配置、请求响应日志、错误处理和结构化日志等内容,帮助提升应用的可维护性和性能。
112 0
|
3月前
|
消息中间件 Prometheus 监控
Producer的监控与日志记录最佳实践
【8月更文第29天】在分布式系统中,消息队列作为关键组件之一,其稳定性和性能至关重要。生产者(Producer)负责生成并发送消息到消息队列中,因此确保生产者的健康运行是非常重要的。本文将探讨如何为生产者设置监控和日志记录,以跟踪其健康状况和性能指标。
57 0
|
3月前
|
Prometheus 监控 Cloud Native
Web服务器的日志分析与监控
【8月更文第28天】Web服务器日志提供了关于服务器活动的重要信息,包括访问记录、错误报告以及性能数据。有效地分析这些日志可以帮助我们了解用户行为、诊断问题、优化网站性能,并确保服务的高可用性。本文将介绍如何使用日志分析和实时监控工具来监测Web服务器的状态和性能指标,并提供具体的代码示例。
346 0
|
3月前
|
Prometheus 监控 安全