寬屏企業(yè)網(wǎng)站源碼國家再就業(yè)免費(fèi)培訓(xùn)網(wǎng)
文章目錄
- 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í),需要查看是否連接數(shù)達(dá)到了上限??刂茢?shù)據(jù)庫連接的主要以下幾種選項(xiàng)。
- 全局的最大連接數(shù):由運(yùn)行參數(shù)max_connections指定。
- 某用戶的連接數(shù):在創(chuàng)建用戶時(shí)由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接設(shè)定,也可以在設(shè)定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。
- 某數(shù)據(jù)庫的連接數(shù):在創(chuàng)建數(shù)據(jù)庫時(shí),由CREATE DATABASE的CONNECTION LIMIT connlimit參數(shù)指定。
102.2 操作步驟
1、以操作系統(tǒng)用戶omm登錄數(shù)據(jù)庫主節(jié)點(diǎn)。
2、使用如下命令連接數(shù)據(jù)庫。
gsql -d postgres -p 8000
postgres為需要連接的數(shù)據(jù)庫名稱,8000為數(shù)據(jù)庫主節(jié)點(diǎn)的端口號(hào)。
連接成功后,系統(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、查看全局會(huì)話連接數(shù)限制。
openGauss=# SHOW max_connections;max_connections
-----------------800
(1 row)
其中800是最大會(huì)話連接數(shù)。
4、查看已使用的會(huì)話連接數(shù)。
須知:
除了創(chuàng)建的時(shí)候用雙引號(hào)引起的數(shù)據(jù)庫和用戶名稱外,以下命令中用到的數(shù)據(jù)庫名稱和用戶名稱,其中包含的英文字母必須使用小寫。
a、查看指定用戶的會(huì)話連接數(shù)上限。
執(zhí)行如下命令查看連接到指定用戶omm的會(huì)話連接數(shù)上限。其中-1表示沒有對用戶omm設(shè)置連接數(shù)的限制。
openGauss=# SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='omm';rolname | rolconnlimit
----------+--------------omm | -1
(1 row)
b、查看指定用戶已使用的會(huì)話連接數(shù)。
執(zhí)行如下命令查看指定用戶omm已使用的會(huì)話連接數(shù)。其中,1表示omm已使用的會(huì)話連接數(shù)。
openGauss=# CREATE OR REPLACE VIEW DV_SESSIONS ASSELECTsa.sessionid AS SID,0::integer AS SERIAL#,sa.usesysid AS USER#,ad.rolname AS USERNAMEFROM pg_stat_get_activity(NULL) AS saLEFT 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ù)庫的會(huì)話連接數(shù)上限。
執(zhí)行如下命令查看連接到指定數(shù)據(jù)庫postgres的會(huì)話連接數(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ù)庫已使用的會(huì)話連接數(shù)。
執(zhí)行如下命令查看指定數(shù)據(jù)庫postgres上已使用的會(huì)話連接數(shù)。其中,1表示數(shù)據(jù)庫postgres上已使用的會(huì)話連接數(shù)。
openGauss=# SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres';
count
---------------------
1
(1 row)
e、查看所有用戶已使用會(huì)話連接數(shù)。
執(zhí)行如下命令查看所有用戶已使用的會(huì)話連接數(shù)。
openGauss=# CREATE OR REPLACE VIEW DV_SESSIONS ASSELECTsa.sessionid AS SID,0::integer AS SERIAL#,sa.usesysid AS USER#,ad.rolname AS USERNAMEFROM pg_stat_get_activity(NULL) AS saLEFT JOIN pg_authid ad ON(sa.usesysid = ad.oid)WHERE sa.application_name <> 'JobScheduler';
openGauss=# SELECT COUNT(*) FROM DV_SESSIONS;
count
---------------------
10
(1 row)
👍 點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力!
?? 收藏,你的青睞是我努力的方向!
?? 評論,你的意見是我進(jìn)步的財(cái)富!