函数
select pg_backend_pid():查看当前连接的pid,因为每个连接是一个进程的,所以当前连接的pid直接可见
select pg_cancel_backend(pid int) : 取消某个用户进程
select pg_reload_conf() 重载postgresql.conf中的配置文件,生效的都是无需重启的参数
select version() 查看版本 show server_version; 纯数字的
select pg_postmaster_start_time() 查看启动时间
select pg_conf_load_time() 产看最后load配置文件时间
show timezone 显示数据库时区
select user 查看当前用户名
select catalog/current_databases() 查看当前连接的数据库
select pg_xlogfile_name(pg_current_xlog_location()) 查看当前正在写的WAL select pg_walfile_name(pg_current_wal_lsn());
select pg_current_xlog_location() pg10改为 pg_current_wal_lsn()
SELECT pg_xlog_location_diff(pg_current_xlog_insert_location(),pg_current_xlog_location()) 查看WAL的buffer还有多少数据没写磁盘
select pg_is_in_recovery() 查看当前数据库是正常状态还是hot standby状态
select pg_rotate_logfile() 切换log日志文件到下一个,flush log相当于
select pg_switch_xlog() 切换WAL日志文件 select pg_switch_wal()
checkpoint 手工产生一次checkpoint
select pg_postmaster_start_time(); 查看启动时间
pg_encoding_to_char(encoding) pg中的字符转换为UTF8那种类型
select pg_switch_xlog(); 手动切换xlog
系统表
select *from pg_locks: 查看锁的情况
select *from pg_stat_activity: 查看系统服务进程,可查看运行较久的sql进程
select *from pg_statistic: 产看统计数据
select *from pg_settiongs limit 1: 参数的详细说明
参数
参数分类: 修改立即生效,修改执行reload生效,修改重启生效
参数操作
好看参数: show xxxx; eg: show rds_force_trans_ro_non_sup
修改参数: alter system set xxx=xxx
reload参数: select pg_reload_conf() pg_ctrl reload -D/u01/pgxxx/data
针对某个角色/database设置参数: alter role set xxx=xxx, alter database set xxx=xxx
查看参数如何生效: 方式 select context from pg_settings where name=‘xxx’
context七中类型
postmaster 重启
superuser-backend superuser修改后的新连接生效
user 单个会话用户可以在任意时间做修改,只会影响该会话
internal 编译期间的设置,只有重新编译才能生效。
backend reload 后的新连接生效
sighup pg_ctl reload 生效
superuser 这类参数可以由超级用户使用set修改。参数设置后只会影响超级用户自身的session配置,不会影响其他用户。
wal_level: 枚举类型,决定wal日志中的信息量
minimal:仅写入北葵或者突发关机时所需的信息
archive: 想用WAL做归档要使用 9.6前
hot_standby: 如果要搭建hot_standby备库要使用,一般实在流复制的时候使用到, 9.6前
replica:9.6中新增,相当于是archive和hot_standby的合并
logical: 主要用于logical decoding场景
在写入频繁的场景中,会产生大量的WAL日志,而且WAL日志量会远远超过实际更新的数据量。叫做“WAL写放大”。造成WAL写放大的主要原因有2点
1、在checkpoint之后第一次修改页面,需要在WAL中输出整个page,即全页写(full page writes)。全页写的目的是防止在意外宕机时出现的数据块部分写导致数据库无法恢复。
2、更新记录时如果新记录位置(ctid)发生变更,索引记录也要相应变更,这个变更也要记入WAL。更严重的是索引记录的变更又有可能导致索引页的全页写,进一步加剧了WAL写放大。
fsync: on/off: 是否使用fsync()系统调用,把文件系统中的脏页刷新到磁盘上,确保数据库宕机时数据不丢失(未刷盘相当于wal中的数据少了,导致无法恢复数据,比如未提交的无法回滚造成数据不一致)
synchronous_commit: on ,off、local、remote_write、remote_apply: 递交事务是否需要等到把WAL刷到磁盘再返回commit结果,设置为off如果宕机可能导致数据丢失
on当没有同步备库时,wal真正写入磁盘才返回commit成功
on当有同步备库时(设置了synchronous_standby_names)必须要等事务日志刷新到本地磁盘,并且还要等远程备库也提交到磁盘才能返回客户端已经提交
提交到磁盘是指收到数据刷新到磁盘文件(relaylog),不是指落库,允许备库应用日志慢
所以测试时候 select pg_wal_replay_pause(); 是没用的,需要关库
off写到缓存中就会向客户端返回提交成功。
延迟写入磁盘的时间为最大3倍的wal_writer_delay参数的(默认200ms)的时间,关闭synchronous_commit会造成最多600ms的事务丢失,但对高并发的小事务系统来说,性能来说提升较大。
remote_write:当事务提交时,不仅要把wal刷新到磁盘,还需要等wal日志发送到备库操作系统(但不用等备库刷新到磁盘)。
如果备库此时发生实例中断不会有数据丢失,因为数据还在操作系统上,而如果操作系统故障,则此部分wal日志还没有来得及写入磁盘就会丢失,备库启动后还需要想主库索取wal日志
local:当事务提交时,仅写入本地磁盘即可返回客户端事务提交成功,而不管是否有同步备库。
可以局部设置set local synchronous_commit to off; 局部事务科备库异步方式同步,重要事务同步方式
wal_buffers: wal的缓冲区大小,最小为32kb
wal_writer_delay: wal writer进程的sleep时间,默认200ms
wal_sync_method: wal写入磁盘的控制方式
log_min_messages: 设置log级别
log_mim_duration_statement: 慢日志设置时间,超过这个时间就把sql记录到日志中
log_staement: 设置是否记录sql,可设置ddl dml等
debug_print_xxx: 设置sql执行计划等打印到日志中
流复制相关参数 (重启生效)
listen_addresses=’*’ 监听地址
max_wal_senders=x 最大wal日志发送线程数
wal_level=hot_standby hot_standby
设置只读的参数: rds_force_trans_ro_non_sup=‘on’ (reload生效) 也可以设置recovery配置文件让其成为只读(重启生效)
原文链接:https://blog.csdn.net/zhangjikuan/article/details/88670871
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
外国CTO也感兴趣的开源数据库项目——openHalo
小满未满、
1995次阅读
2025-04-21 16:58:09
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
382次阅读
2025-04-15 14:48:05
QPlus V6.3 更新,新增PostgreSQL与PolarDB PG支持,OceanBase 容灾管理重磅上线
沃趣科技
212次阅读
2025-05-13 09:39:27
4月“墨力原创作者计划”获奖名单公布!
墨天轮编辑部
193次阅读
2025-05-13 16:21:59
中国PostgreSQL培训认证体系新增PGAI应用工程师方向
开源软件联盟PostgreSQL分会
191次阅读
2025-05-06 10:21:13
华象新闻 | PostgreSQL 18 Beta 1、17.5、16.9、15.13、14.18、13.21 发布
严少安
169次阅读
2025-05-09 11:34:10
PG生态赢得资本市场青睐:Databricks收购Neon,Supabase融资两亿美元,微软财报点名PG
老冯云数
160次阅读
2025-05-07 10:06:22
SQL 优化之 OR 子句改写
xiongcc
148次阅读
2025-04-21 00:08:06
告别老旧mysql_fdw,升级正当时
NickYoung
128次阅读
2025-04-29 11:15:18
PostgreSQL中文社区亮相于第八届数字中国峰会
PostgreSQL中文社区
118次阅读
2025-05-07 10:06:20