开发者社区> 问答> 正文

什么是Virtual Log?

什么是Virtual Log?

展开
收起
三分钟热度的鱼 2024-04-26 23:31:29 11 0
3 条回答
写回答
取消 提交回答
  • 一个九年资深的程序员,擅长数据库、Java、C#、系统运维、电脑技巧等方面知识,阿里云专家博主、C站站优质博主、公众号运营超五年,热爱分享IT技术相关技术文章,给大家提供帮助!

    每个物理的事务日志文件内部分为多个虚拟日志文件,如上图的(virtual log 1-4)。在物理日志文件中没有指定虚拟日志文件大小也不能指定到底要存在多少个虚拟日志文件。数据库引擎会自动的控制它们,但出于性能原因,数据库引擎会试图维持少量的虚拟文件个数。

    如果日志文件开始设置的比较小,然后设置的增长率或大小也比较小。在日志文件不断增大的过程中,每次都是按许多微小增加,它将增加虚拟日志文件的数量,而影响系统性能。这就是为什么要将自动增长设置为一个较大的增量。如果日志设置一次增长 1 MB 会不断产生更多的虚拟日志文件中。不断增加的虚拟日志文件会影响数据库启动和日志的备份/恢复操作。

    2024-04-28 17:53:38
    赞同 展开评论 打赏
  • 某政企事业单位运维工程师,主要从事系统运维工作,同时兼顾教育行业、企业等src安全漏洞挖掘,曾获全国行业网络安全大赛二等奖。

    Virtual Log(虚拟日志)是一种特殊的日志记录机制,用于模拟或替代实际的日志行为,通常在特定场景下(如测试、调试、压测等)使用。以下是关于Virtual Log的关键信息:

    Tracer工具类:Tracer提供DummyContextUtil类,用于操作虚拟日志上下文。创建虚拟日志上下文时,调用createDummyLogContext()方法,并确保在使用完毕后通过clearDummyLogContext()方法及时销毁。这两个方法分别负责创建和清理虚拟日志上下文,确保线程上下文状态的正确管理。

    全链路压测标记:通过DummyContextUtil可以设置全链路压测标记。示例代码如下:

    DummyContextUtil.createDummyLogContext();
    DummyContextUtil.addPenetrateAttribute(PenAttrKeyEnum.LOAD_TEST_MARK, "T");
    DummyContextUtil.clearDummyLogContext();
    

    RDS SQL Server事务日志:RDS SQL Server的事务日志采用Virtual Log File(VLF,虚拟日志文件)进行管理。日志备份时,VLF状态从2(活动)变为0(未活动)。只有当VLF处于未活动且位于日志文件尾部时,才能进行日志收缩。因此,可能需要多次执行日志备份和收缩操作,以使日志尾部达到全0状态,进而降低日志使用空间。

    ASM VirtualService自定义日志:ASM(Application Service Mesh)允许通过VirtualService资源自定义请求头和响应头,并在日志中查看这些内容。可通过自定义日志格式,从请求Header、响应Header、Envoy内置值中提取所需变量。例如:

    my-x-custom-request-header: %REQ(x-custom-request-header)%
    my-x-dynamic-request-header: %REQ(x-dynamic-request-header)%
    my-x-custom-response-header: %RESP(x-custom-response-header)%
    

    注意,若响应头配置修改在日志记录操作之后生效,这些修改后的响应头信息可能不会出现在Access Logs中。

    查询日志(log_fdw)外部表结构:查询日志(如ft1)是一个外部表,其结构包含多种列,如log_time(日志时间)、user_name(用户名)、database_name(数据库名)、message(消息内容)等,用于存储详细的日志信息。这些日志数据通常由特定的FDW(Foreign Data Wrapper)插件(如log_fdw)从外部源(如CSV文件)导入到PostgreSQL数据库中进行查询。

    综上所述,Virtual Log涉及虚拟日志上下文管理、全链路压测标记、RDS SQL Server事务日志管理、ASM VirtualService自定义日志以及查询日志(log_fdw)外部表结构等多个方面,分别服务于不同的日志处理、测试、查询和分析需求。

    Tracer 工具类 虚拟日志上下文工具类

    通过VirtualService资源自定义请求头和响应头 步骤二:通过日志查看自定义请求和响应内容

    2024-04-27 11:40:34
    赞同 1 展开评论 打赏
  • Virtual Log是Delos中推出的思路,通过将共识协议的控制平面与数据平面分离,使数据平面仅负责日志定序及数据持久化,从而可以有更加高效的实现。这种思路允许共识协议的热升级。

    2024-04-27 08:19:12
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载