暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB A 视图

墨天轮 2019-10-12
1084

视图

GaussDB 200提供了许多视图,用于展示数据库的内部状态,在定位故障时,经常使用的视图有:

  • pg_stat_activity,用于查询当前实例上各个session的状态;
  • pg_thread_wait_status,用于查询该实例上各个线程的等待事件;
  • pgxc_thread_wait_status,用于查询集群所有实例上各个线程的等待事件;
  • pg_locks,用于查询当前实例上的锁状态;
  • pgxc_node,用于显示集群中所有实例的IP/PORT;

当出现疑似查询停止响应的问题时,通过pg_thread_wait_status可以查看当前查询的等待状态,确定CN在等哪个DN;通过pgxc_thread_wait_status可以查看查询在整个集群节点上的等待状态,确定查询阻塞状态。如果对应的等待状态为acquire lwlock、acquire lock或者wait io,可以查看wait event列,确定当前查询具体的等待事件类型。

例如: 以构造DN上锁等待为例说明如何使用上述视图。

通过pg_thread_wait_status查询到CN在等待dn_6003_6004。
human_resource=#select * from pg_thread_wait_status; node_name | db_name | thread_name | query_id | tid | lwtid | ptid | tlevel | smpid | wait_status | wait_event -----------+----------------+-------------------+----------+-----------------+-------+------+--------+-------+------------------------------------- cn_5002 | human_resource | gsql | 37749717 | 140592340268816 | 60550 | | 0 | 0 | wait node: dn_6003_6004 |

通过pgxc_thread_wait_status查询到dn_6003_6004请求了锁,cn_5002在等待dn_6003_6004返回执行结果。

human_resource=#select * from pgxc_thread_wait_status where query_id=37749717; node_name | db_name | thread_name | query_id | tid | lwtid | ptid | tlevel | smpid | wait_status | wait_event --------------+----------------+-------------+----------+-----------------+-------+------+--------+-------+--------------------------------- dn_6003_6004 | human_resource | cn_5002 | 37749717 | 140625508820752 | 68888 | | 0 | 0 | acquire lock | relation cn_5002 | human_resource | gsql | 37749717 | 140592340268816 | 60550 | | 0 | 0 | wait node: dn_6003_6004 |

对于大规模集群,还可以通过EXECUTE DIRECT进一步查询DN上的锁信息。例如:

EXECUTE DIRECT ON(dn_6003_6004) ‘SELECT * FROM PG_THREAD_WAIT_STATUS WHERE QUERY_ID= 37749717’;
node_name | db_name | thread_name | query_id | tid | lwtid | ptid | tlevel | smpid | wait_status | wait_event --------------+----------+-------------+----------+-----------------+-------+------+--------+-------+------------------------------ dn_6003_6004 | postgres | cn_5001 | 25199867 | 139891497187088 | 18649 | | 0 | 0 | acquire lock | relation (1 row)

查看更多:华为GaussDB 200 数据库故障定位手段
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论