暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL技术大讲堂 - 第12讲:WAL作用与管理

北京CUUG 2023-03-23
275











Part 12:WAL作用与管理


内容1
WAL物理与逻辑结构
内容2WAL数据内部布局
内容3WAL数据写进程
内容4
WAL管理
内容5WAL归档日志


WAL概述


· 没有WAL的插入操作

· 有WAL的插入操作

· Insert操作与recovery

· 使用WAL进行数据库恢复


事务日志与WAL文件


· 事务日志与WAL 段文件

使用内置函数pg_xlogfile_name(9.6或更早版本)或pg_walfile_name(10或更高版本),我们可以找到包含指定LSN的WAL段文件名。


WAL日志内部布局


· WAL内部布局

· 三类XLOG 数据部分记录 (version 9.5 or later)



写XLOG记录


· 写XLOG记录


WAL写处理

· WAL 写进程

    1、At commit

    2、When wal buffer full

    3、writes periodically

写XLOG记录

· Checkpoint 处理概述

pg_control File

· pg_control File30

即使pg_控制文件存储超过40个项目,需要的三个项目如下所示:

    State –最新检查点启动时数据库服务器的状态。总共有七种状态:“启动”是系统正在启动的状态;“关闭”是系统通过shut down命令正常关闭的状态;“生产中”是系统正在运行的状态;依此类推。

    Latest checkpoint location –最新检查点记录的LSN位置。

    Prior checkpoint location –先前检查点记录的LSN位置。

· 9.7.2. pg_control File
pg_control文件存储位置:
    postgres> pg_controldata  /usr/local/pgsql/data
    pg_control version number: 937
    Catalog version number: 201405111
    Database system identifier: 6035535450242021944
    Database cluster state: in production
    pg_control last modified: Mon Apr 27 15:16:38 2020
    Latest checkpoint location: 0/C000F48
    Prior checkpoint location: 0/C000E70


    ... snip ...


    Database Recovery

    · 数据库实例恢复开始位置( 检查点)

    · 数据库WAL日志记录

    · 利用wal进行数据库恢复

    WAL 文件管理

    · WAL 日志切换
    WAL 满足以下条件发生日志切换: 
        1、WAL segment has been filled up.
        2、The function pg_switch_wal has been issued.

        3、archive_mode is enabled and the time set to archive_timeout has been exceeded.(基于主备复制需求)

    · 创建新的WAL日志文件

    · WAL日志文件删除与回收(基于一个checkpoint完成过程)

    · 文件管理
    WAL段文件的数量主要由以下三个参数控制:

        1、checkpoint_segments (9.5版本后被废弃)

        2、checkpoint_completion_target (默认为0.5)

        3、WAL_keep_segments

    ((2+checkpoint_completion_target)×checkpoint_segments+1) 
    数据库归档
    · 归档日

    连续归档是在WAL段切换时将WAL段文件复制到归档区域的功能,由archiver(后台)进程执行。其中,占位符%p是复制的WAL段,而%f是存档日志。

      ALTER SYSTEM SET archive_command = 'cp %p /home/postgres/archives/%f';
      ALTER SYSTEM SET archive_mod = on;

      WAL 文件管理
      · 发生切换时归档

      · 设置wal相关参数
          设置wal目录最大可用尺寸(默认值为1024MB):max_wal_size
          设置wal文件最大可用尺寸(默认值为16MB):wal_segment_size
          设置wal缓冲区尺寸(默认值512KB):wal_buffers





      以上就是Part 12 - PostgreSQL WAL作用与管理 的内容,欢迎进群一起探讨交流
      QQ交流群:752027153
      微信交流群:联系客服拉你进微信PG交流群
      钉钉交流群:35822460,钉钉群专门有视频讲解











      相关阅读:

      从小白到专家 PG技术大讲堂 - Part 7:PG用户与Schema对应关系
      从小白到专家 PG技术大讲堂 - Part 8:PG对象权限管理
      从小白到专家 PG技术大讲堂 - Part 9:PG实例连接访问控制
      从小白到专家 PG技术大讲堂 - Part 10:PostgreSQL数据库管理
      从小白到专家 PG技术大讲堂 - Part 11:PostgreSQL控制文件作用与管理

      蓝蓝的天

      -->> 联系客服,进群或领取文档资料

      文章转载自北京CUUG,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论