云數(shù)據(jù)庫GaussDB如何查看數(shù)據(jù)庫連接數(shù)?
背景信息
當(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ù)指定。
- 預(yù)留連接供gs_clean使用:需要預(yù)留連接給gs_clean工具進(jìn)行殘留事務(wù)清理,以免由于殘留事務(wù)長期阻塞系統(tǒng)正常運(yùn)行,對(duì)于有n個(gè)CN的集群環(huán)境,那么需要至少預(yù)留n個(gè)連接給各個(gè)CN上的gs_clean進(jìn)行殘留事務(wù)清理。
GaussDB查看數(shù)據(jù)庫連接數(shù)具體操作步驟
1、連接數(shù)據(jù)庫。
2、查看全局會(huì)話連接數(shù)限制。
其中800是最大會(huì)話連接數(shù)。
3、查看已使用的會(huì)話連接數(shù)。
具體命令請參見下表。
須知:除了創(chuàng)建的時(shí)候用雙引號(hào)引起的數(shù)據(jù)庫和用戶名稱外,以下命令中用到的數(shù)據(jù)庫名稱和用戶名稱,其中包含的英文字母必須使用小寫。
描述
|
命令
|
---|---|
查看指定用戶的會(huì)話連接數(shù)上限。 |
執(zhí)行如下命令查看連接到指定用戶omm的會(huì)話連接數(shù)上限。其中-1表示沒有對(duì)用戶omm設(shè)置連接數(shù)的限制。 postgres=# SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='omm'; rolname | rolconnlimit ----------+-------------- omm | -1 (1 row) |
查看指定用戶已使用的會(huì)話連接數(shù)。 |
執(zhí)行如下命令查看指定用戶omm已使用的會(huì)話連接數(shù)。其中,1表示omm已使用的會(huì)話連接數(shù)。 postgres=# SELECT COUNT(*) FROM dv_sessions WHERE USERNAME='omm'; count ------- 1 (1 row) |
查看指定數(shù)據(jù)庫的會(huì)話連接數(shù)上限。 |
執(zhí)行如下命令查看連接到指定數(shù)據(jù)庫postgres的會(huì)話連接數(shù)上限。其中-1表示沒有對(duì)數(shù)據(jù)庫postgres設(shè)置連接數(shù)的限制。 postgres=# SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='postgres'; datname | datconnlimit ----------+-------------- postgres | -1 (1 row) |
查看指定數(shù)據(jù)庫已使用的會(huì)話連接數(shù)。 |
執(zhí)行如下命令查看指定數(shù)據(jù)庫postgres上已使用的會(huì)話連接數(shù)。其中,1表示數(shù)據(jù)庫postgres上已使用的會(huì)話連接數(shù)。 postgres=# SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres'; count ------- 1 (1 row) |
查看所有用戶已使用會(huì)話連接數(shù)。 |
執(zhí)行如下命令查看所有用戶已使用的會(huì)話連接數(shù)。 postgres=# SELECT COUNT(*) FROM dv_sessions; count ------- 10 (1 row) |