作为可以替换ORACLE 重要的一员,PG 是很值得学习。 今天总结一下 PostgreSQL, 如何进行故障的排错,小道消息是,昨天上午还是小道消息的,估计今天已经消息人尽皆知了,中国ORACLE 研发中心 dismission, N+6 外企还是很阔绰的。 网上也是讨论一堆中年人,就这样被抛弃了,如果知识不更新,脑子里面都是ORACLE ,恐怕是........
不说让心情不愉快的,现在说说PostgreSQL 数据库界的新宠,通过某些手段来发现数据库中可能存在的问题的方法
通过 pg_stat_activity 来获知系统的运行情况
通过上面的语句我们可以发现当前数据库中的连接情况,例如有多少个活跃的连接,有多少闲置的连接.
查看当前的transaction 中执行的时间长度, 可以发现执行时间较长的事务并查看相关的情况
另外POSTGRESQL 也有类似MYSQL的 slow log的设置,
通过修改此参数,可以将慢过设定时间的语句,记录在日志中,便于后期的分析。
当然DBA 感兴趣的问题例如是否缺少INDEX 也是可以寻找的,通过下面的脚本
寻找数据库中没有使用过的索引
发现有重复建立的索引列表
在最后,POSTGRESQL 由于相关原理,是需要对表定期进行 vacuum的,一般来说postgresql 会自动的对表进行 vaccum ,但由于某些特殊情况,如果系统不能对某些表进行 vacuum 则需要知道哪些表出现这样的情况。
这里我们可以通过 pg_stat_user_tables 表中的 n_live_tup 和 n_dead_tup来对某张表的膨胀率进行分析,并且采取后续的手段予以修复
本文分享自 AustinDatabases 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!