openGauss學(xué)習(xí)筆記-102 openGauss 數(shù)據(jù)庫管理-管理數(shù)據(jù)庫安全-客戶端接入之查看數(shù)據(jù)庫連接數(shù)102.1 背景信息102.2 操作步驟
openGauss學(xué)習(xí)筆記-102 openGauss 數(shù)據(jù)庫管理-管理數(shù)據(jù)庫安全-客戶端接入之查看數(shù)據(jù)庫連接數(shù)
102.1 背景信息
當(dāng)用戶連接數(shù)達(dá)到上限后霜医,無法建立新的連接驳规。因此,當(dāng)數(shù)據(jù)庫管理員發(fā)現(xiàn)某用戶無法連接到數(shù)據(jù)庫時值朋,需要查看是否連接數(shù)達(dá)到了上限∽虻牵控制數(shù)據(jù)庫連接的主要以下幾種選項。
全局的最大連接數(shù):由運(yùn)行參數(shù)max_connections指定撒强。
某用戶的連接數(shù):在創(chuàng)建用戶時由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接設(shè)定笙什,也可以在設(shè)定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。
某數(shù)據(jù)庫的連接數(shù):在創(chuàng)建數(shù)據(jù)庫時芽隆,由CREATE DATABASE的CONNECTION LIMIT connlimit參數(shù)指定统屈。
102.2 操作步驟
1、以操作系統(tǒng)用戶omm登錄數(shù)據(jù)庫主節(jié)點愁憔。
2、使用如下命令連接數(shù)據(jù)庫半抱。
gsql -d postgres -p 8000
postgres為需要連接的數(shù)據(jù)庫名稱膜宋,8000為數(shù)據(jù)庫主節(jié)點的端口號。
連接成功后棉磨,系統(tǒng)顯示類似如下信息:
gsql ((openGauss 1.0 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=#
3学辱、查看全局會話連接數(shù)限制环形。
openGauss=# SHOW max_connections;
max_connections
-----------------
800
(1 row)
其中800是最大會話連接數(shù)。
4萨咕、查看已使用的會話連接數(shù)火本。
[圖片上傳失敗...(image-8d69d4-1697536621814)]
須知: 除了創(chuàng)建的時候用雙引號引起的數(shù)據(jù)庫和用戶名稱外聪建,以下命令中用到的數(shù)據(jù)庫名稱和用戶名稱茫陆,其中包含的英文字母必須使用小寫。
a簿盅、查看指定用戶的會話連接數(shù)上限。
執(zhí)行如下命令查看連接到指定用戶omm的會話連接數(shù)上限棚瘟。其中-1表示沒有對用戶omm設(shè)置連接數(shù)的限制喜最。
openGauss=# SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='omm';
rolname | rolconnlimit
----------+--------------
omm | -1
(1 row)
b、查看指定用戶已使用的會話連接數(shù)迷雪。
執(zhí)行如下命令查看指定用戶omm已使用的會話連接數(shù)遂鹊。其中,1表示omm已使用的會話連接數(shù)秉扑。
openGauss=# CREATE OR REPLACE VIEW DV_SESSIONS AS
SELECT
sa.sessionid AS SID,
0::integer AS SERIAL#,
sa.usesysid AS USER#,
ad.rolname AS USERNAME
FROM pg_stat_get_activity(NULL) AS sa
LEFT JOIN pg_authid ad ON(sa.usesysid = ad.oid)
WHERE sa.application_name <> 'JobScheduler';
openGauss=# SELECT COUNT(*) FROM DV_SESSIONS WHERE USERNAME='omm';
count
\---------------------
1
(1 row)
c舟陆、查看指定數(shù)據(jù)庫的會話連接數(shù)上限。
執(zhí)行如下命令查看連接到指定數(shù)據(jù)庫postgres的會話連接數(shù)上限秦躯。其中-1表示沒有對數(shù)據(jù)庫postgres設(shè)置連接數(shù)的限制。
openGauss=# SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='postgres';
datname | datconnlimit
----------+--------------
postgres | -1
(1 row)
d倡缠、查看指定數(shù)據(jù)庫已使用的會話連接數(shù)茎活。
執(zhí)行如下命令查看指定數(shù)據(jù)庫postgres上已使用的會話連接數(shù)。其中盾饮,1表示數(shù)據(jù)庫postgres上已使用的會話連接數(shù)。
openGauss=# SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres';
count
---------------------
1
(1 row)
e丘损、查看所有用戶已使用會話連接數(shù)。
執(zhí)行如下命令查看所有用戶已使用的會話連接數(shù)衔蹲。
openGauss=# CREATE OR REPLACE VIEW DV_SESSIONS AS
SELECT
sa.sessionid AS SID,
0::integer AS SERIAL#,
sa.usesysid AS USER#,
ad.rolname AS USERNAME
FROM pg_stat_get_activity(NULL) AS sa
LEFT JOIN pg_authid ad ON(sa.usesysid = ad.oid)
WHERE sa.application_name <> 'JobScheduler';
openGauss=# SELECT COUNT(*) FROM DV_SESSIONS;
count
---------------------
10
(1 row)
?? 點贊吏饿,你的認(rèn)可是我創(chuàng)作的動力!
?? 收藏贞远,你的青睞是我努力的方向笨忌!
?? 評論,你的意見是我進(jìn)步的財富官疲!