PostgreSQL Write Ahead Logging WAL
前言 WAL 是 Write Ahead Log 的缩写,预写式日志。WAL log 也被称为 xlog 。WalWriter 进程就是写 WAL 日志的进程。预写式日志的概念就是在修改数据之前,必须要把这些修改操作记录到磁盘中,这样后面更新实际数据时,就不需要实时地把数据持久化到文件中了。即使机器突然宕机或数据库异常退出,导致一部分内存中的脏数据没有及时地刷新到文件中,在数据库重启后,通...
前言 WAL 是 Write Ahead Log 的缩写,预写式日志。WAL log 也被称为 xlog 。WalWriter 进程就是写 WAL 日志的进程。预写式日志的概念就是在修改数据之前,必须要把这些修改操作记录到磁盘中,这样后面更新实际数据时,就不需要实时地把数据持久化到文件中了。即使机器突然宕机或数据库异常退出,导致一部分内存中的脏数据没有及时地刷新到文件中,在数据库重启后,通...
前言 WAL 是 PostgreSQL 的关键组件,用于保证崩溃恢复时数据完整一致,在这里记录一下相关的参数 WAL 参数 不同的版本可能参数不一样,具体可以查询官网或者进入实例之后查询: -- PostgreSQL 15.8 -- 如果需要参数描述和范围可以查看 short_desc, extra_desc, context 字段 127.0.0.1:54323; wxj@demo...
前言 基本现在的轻薄笔记本都已经没有网线接口了,除了拓展坞之外只能使用 WiFi 连接网络。当我们重装系统或者更换电脑的时候需要重新配置网络,手动配置的方式效率较低,可以利用 Windows 下的 netsh 工具备份已有的 WiFi 连接信息,然后在其他机器导入或者重装系统之后恢复 WiFi 信息。 在 Windows 中可以通过 控制面板的网络管理,或者网卡属性查看 WiFi 信息。...
简单记录下怎么查看当前 g++ 编译器默认支持的 cpp 标准,毕竟 cpp 20 都已经出来几年了,有些特性编译器还没有完全支持 g++ -dM -E -x c++ /dev/null | grep __cplusplus 如果要查看 g++ 是否支持 cpp 20 可以执行以下命令 g++ -std=c++20 -E -x c++ - <<< "" 如果你的 g...
前言 什么是单块读?顾名思义,就是每次读取单个 block 。 Oracle 是支持多块读,今天测试一下 PostgreSQL 是否支持多块读,虽然之前听说是不支持的,今天直接测试验证一下。 测试使用的工具为:strace 、pg 15 block_size PostgreSQL 可以通过 block_size 设置 block 的大小。不过这个参数是只读的,在数据库安装之后就无法...
前言 Linux 的虚拟内存参数列在 /proc/sys/vm 目录中,可以直接查看对应的文件。 前几天调整了 Oracle SGA 大小,结果运行没多久就挂掉了,检查日志发生了 OOM,虽然使用率比较高,可是检查内存还有 2G 的空闲,最开始以为是设置了 操作系统用户的内存使用限制,可是也不应该是 OOM,不过还是设置为了 unlimit 。重启之后运行两个小时之后又宕机了。还是提示 ...
前言 记录一些 PostgreSQL 的常用函数 字符串 字符串/字段拼接 string_agg string_agg:用于拼接字段,需要两个参数,第一个是需要进行拼接的字段名,第二个是用于拼接字符的拼接符号 select string_agg(a,', ') from tab1; 如果字段不是字符类型,例如字段是数字类型,需要先转换为字符才能进行拼接,否则会报错 || :...
前言 Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用(Windows 下也可以运行,不过个人还没测试)。Podman 提供与 Docker 非常相似的功能。它不需要在你的系统上运行任何守护进程,并且它也可以在没有 root 权限的情况下运行。 Podman 可以管理和运行任何符合 OCI(Open Container Initiative)规范的容器和容器镜...
概述 数据库等保的时候会遇到一些安全加固操作,其中 PostgreSQL 数据库设置密码验证失败延迟时间可以通过安装 auth_delay 扩展插件来实现,该设置主要是防止暴力破解,在验证失败后, 会延迟一段时间后,才能继续验证。可以搭配 passwordcheck 限制简单密码。 一般来说 ‘passwordcheck、auth_delay’ 两个插件就在源码路径中的 contrid 目...
有的时候明确知道需要保留那些行,虽然可以采用匹配每行的字符,但是可能需要保留的行的内容在其他行中也存在,这个时候可以利用 vim/nvim 的 \% 特殊字符匹配指定的行内容。 再结合 :g 、:g!、 :v 来选择/反选指定的行/列内容可以高效的过滤行 符号 含义 备注 \% ...