我对这个简单查询的输出有疑问:
select
pid,
state
from pg_stat_activity
where datname = 'My_DB_name'
以不同的方式运行:
QUERY="copy (select pid, state from pg_stat_activity where datname = 'My_DB_name') to stdout with csv"
psql -h host -U user -d database -t -c "$QUERY" >> result
1和2返回结果,因为我需要它们:
1:
pid state
------ -----------------------------
23126 idle
25573 active
2642 active
20420 idle
23391 idle
5339 idle
7710 idle
1558 idle
12506 idle
2862 active
716 active
9834 idle in transaction (aborted)
2:
pid | state
-------+-------------------------------
23126 | idle
25573 | idle
2642 | active
20420 | idle
23391 | idle
5339 | active
7710 | idle
1558 | idle
12506 | idle
2211 | active
716 | active
9834 | idle in transaction (aborted)
3很奇怪 - 它没有给我任何州名,除了'活跃'
23126,
25573,
2642,
20420,
23391,
5339,
7710,
1558,
12506,
1660,active
716,active
1927,active
9834,
我错过了什么?如何通过bash脚本获取所有州名?
答案 0 :(得分:1)
pg_stat_activity
是一个目录视图,根据您是以超级用户身份还是以非特权用户身份登录,将显示不同的内容。
从您的输出中,您似乎以#1和#2中的超级用户身份登录,但作为#3中的普通用户登录。