簡體   English   中英

如何將 application_name 發送到 RPostgreSQL 連接

[英]How to send application_name to RPostgreSQL connection

我知道 PostgreSQL 數據庫允許跟蹤每個連接的應用程序名稱,看起來 application_name 變量應該與 RPostgreSQL 一起使用,但我到底應該怎么做? 將變量 application_name = "test" 添加到 dbConnect 不起作用。

我不確定您是否可以將application_name='test'作為參數傳遞給 RPostgreSQL 中的dbConnect (有一個可選的options參數,但我無法弄清楚它需要什么樣的數據)。

另一種方法是在打開連接后立即運行以下 SQL 查詢:

SET application_name='test'

它應該可以工作,直到您關閉連接。

它沒有很好的記錄,但像這樣的工作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM