我知道PostgreSQL数据库允许跟踪每个连接的应用程序名称,看起来application_name变量应该与RPostgreSQL一起使用,但我该怎么做呢?添加变量application_name =" test" dbConnect无法正常工作。
答案 0 :(得分:2)
我不确定你是否可以将application_name='test'
作为参数传递给RPostgreSQL中的dbConnect
(有一个可选的options
参数,但我无法弄清楚它期望什么样的数据。)
另一种方法是在打开连接后立即运行以下SQL查询:
SET application_name='test'
它应该可以工作,直到你关闭连接。
答案 1 :(得分:0)
它没有很好的文档记录,但类似的东西有效:
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv,
dbname = "<my_db>",
host = "<my_host>",
[...],
options = "-c application_name=my_app_name"
)
它也可以与dbPool
(包“ pool”)一起使用:
pool <- dbPool(
drv = dbDriver("PostgreSQL"),
dbname = "<my_db>",
host = "<my_host>",
[...]
minSize = 0,
maxSize = 3,
options = "-c application_name=my_app_name"
)
使用pg_stat_activity
mydb=> SELECT state, usename, application_name FROM pg_stat_activity WHERE datname = 'mydb';
state | usename | application_name
--------+----------+------------------
active | postgres | psql
idle | myuser | my_app_name