开始之守护进程
postgresql启动时,首先启动/usr/local/pgsql/bin/postgres功能进程,守护进程还监听连接请求,接收客户端的连接请求,并为客户端生成服务器进程
共享缓冲区
共享缓冲区主要用来提高数据库操作的效率及可扩展性,此刻后端程序不再从文件中读取及写入文件,而是从处理缓冲区或RAM中读取及写入.缓冲区的容量分配是由postgresql.conf中的参数shared_buffer设置,数据库启动时会根据参数设置分配固定大小的共享内存
- 缓冲区缓冲检查可借助扩展程序
pg_buffercache
- 创建缓存命令 :
create extension pg_buffercache
检查点
检查点主要用来帮助数据库面临崩溃时,崩溃恢复程序通过检测最新的检查点(在预写日志文件中WAL)记录来确定它应该从哪里开始REDO操作
检查点设定参数
- checkpoint_segments : 即WAL区段,每个WAL区段是16MB,若3个16MB的WAL区段填充完成则一个新的检查点就应该出现,默认值为3。
- checkpoint_timeout : 一个超时值,可设置为秒(默认值)分钟或小时。
- checkpoint_completion_target : 缓解检查点频繁出现导致的I/O峰值
附注
当出现如下情况时,出现检查点
- checkpoint_timeout 周期失效
- WAL的checkpoint_segments数量已填满
检查点参数设置参考
WAL恢复
是WAL概念的主要用途,此处我们指那些已被提交上来但并未找到数据文件的恢复事务
部分参数释义
参数 | 作用 |
---|---|
wal_level | 1.针对系统崩溃的恢复 2. 基于时间点恢复进行存档 3.创建一个备用数据库 |
wal_buffer | 为WAL缓冲区预留的共享内存量 |
wal_write_delay | WAL更新间隔标识,默认为200毫秒 |
bgwriter_lru_maxpages | 指定每一次迭代中进程写入缓冲区的最大数量 |
autovacuum | 自动启动清空操作 默认值为 ON
|
日志进程
日志标签严重等级
严重性 | 用途 |
---|---|
INFO | 提供了用户隐式请求的信息 如 : VACUUM VERBOSE 的输出 |
NOTICE | 提供了可能对用户有益的信息 如 : 关于长标识符截断通知 |
WARNING | 提供了可能问题的警告 如 : 事务块之外的COMMIT |
ERROR | 汇报导致当前命令中止的错误 |
LOG | 汇报管理员感兴趣的信息 如 : 检查点活动 |
FATAL | 汇报导致当前会话中止的错误 |
PANIC | 汇报导致所有数据库对话中止的错误 |
log_line_frefix
可以以非常详细的自定义格式登录,可使用日志文件对数据库发生的事项进行分析
部分前缀选项释义
选项 | 描述 | 选项 | 描述 |
---|---|---|---|
%a | 应用名称 | %m | 有毫秒的时间戳 |
%u | 用户名 | %i | 命令标签 |
%d | 数据库名称 | %e | SQL状态错误码 |
%r | 远程主机与端口 | %c | 会话ID |
%h | 远程主机 | %l | 改会话的日志行数 |
%p | 进程ID | %s | 会话起始时间戳 |
%t | 无毫秒的时间戳 |