摘要:在没有手动配置的情况下,之类的事情,不得不交给做,而与账户之间的来回切换,也会浪费宝贵的时间。作为秒数表示空闲时间间隔,当一个连接持续该时间闲置,会发送包给客户端,若连续个包都在秒内没有回应,则会认为这个已死。
不要用Graphic Installer
至少在Ubuntu下,觉得原生的apt-get管理方式更合适,PG的文件资源会被分配到应该的地方,Linux的系统文件结构也是种非常稳健的架构。例如在/etc/postgresql下可以找到conf文件是一件清晰到爽的事情。正常通过apt安装的方式参见这篇博文。
之前有一台VM就是没有忍住一时之快,用了Graphic Installer,所有的东西被塞到/opt/PostgreSQL/x.x中,当然,conf、bin等文件都在其中。在没有手动配置的情况下,start/stop/restart/reload之类的事情,不得不交给pg_ctl做,而与postgres账户之间的来回切换,也会浪费宝贵的时间。例如重启PG需要
./pg_ctl restart -D ../data
而出现冲突的时候还会需要忍不住 -m fast 一下。而如果使用系统服务,至少可以这样:
sudo /etc/init.d/postgresql restart修改postgresql.conf
数据库系统参数是很重要的功能,根据应用特点进行性能调优时,往往需要用到。目前用到的几个参数里,shared_buffers一般会尽量设置大一些,有人建议设为RAM的10%,其实我觉得更大一些也没什么问题。tcp_keepalives_idle作为秒数表示空闲时间间隔,当一个tcp连接持续该时间闲置,db会发送tcp_keeplive包给客户端,若连续tcp_keepalives_count个包都在tcp_keepalives_interval秒内没有回应,则会认为这个tcp已死。
修改postgresql.conf后可以通过 select pg_reload_conf();重新加载配置。但是配置里有些是支持动态的,而有些必须要重启db,例如shared_buffers就如此,悲催。重加载或重启后,可通过show <配置项>命令查看当前已生效的配置项值,例如:
show tcp_keepalives_idle;查看当前的服务器状态
可调用PG自带的一个视图:
select * from pg_stat_activity
这个视图可以查出目前的连接,以及各自连接的状态、时间点、SQL内容等,视图内容:
CREATE OR REPLACE VIEW pg_stat_activity AS SELECT s.datid, d.datname, s.procpid, s.usesysid, u.rolname AS usename, s.application_name, s.client_addr, s.client_hostname, s.client_port, s.backend_start, s.xact_start, s.query_start, s.waiting, s.current_query FROM pg_database d, pg_stat_get_activity(NULL::integer) s(datid, procpid, usesysid, application_name, current_query, waiting, xact_start, query_start, backend_start, client_addr, client_hostname, client_port), pg_authid u WHERE s.datid = d.oid AND s.usesysid = u.oid;
当然,只要不是很老的PG版本,可以用pg_terminate_backend来终止相应的会话,这篇文章例举了更多的使用场景。例如:
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = "databasename"
终止某个用户的会话:
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE usename = "username"
如果觉得terminate太暴力,还可以使用pg_cancel_backend。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38941.html
摘要:总结来说,低效,所以现在想将几个系统融合到一个里边,并且每次切换系统的时候保留用户的操作。我是用开发的,所以切换的地方直接用了的切换组件。 前言 公司分好几个后台模块,统一使用vue+elementUi框架开发,每一个后台模块都是单独团队开发的。并且几个系统整体的风格、布局一样的,包括左侧边栏,上方的面包屑等用户在使用的时候,可能要切换别的系统就要在浏览器里,新打开窗口,再输入网址,回...
摘要:是啥顾英文名思义就是元素的轮廓,其实一般我们很少去设置元素的样式,因此很多人对他不太了解。浏览器默认给很多特定元素的某些行为加上了样式,比如标签输入框等。 outline是啥? outline顾英文名思义就是元素的轮廓,其实一般我们很少去设置元素的outline样式,因此很多人对他不太了解。浏览器默认给很多特定元素的某些行为加上了outline样式,比如a标签、input输入框等。当你...
阅读 747·2021-10-14 09:43
阅读 2071·2021-09-30 09:48
阅读 3440·2021-09-08 09:45
阅读 1088·2021-09-02 15:41
阅读 1876·2021-08-26 14:15
阅读 769·2021-08-03 14:04
阅读 2970·2019-08-30 15:56
阅读 3070·2019-08-30 15:52