Greenplumクラスタ障害(Sorry,too many clients already)調査:


障害:
1:            ;
2:           ;
3:            ;

処理手順:
1:     gpcc       ;
     greenplum         ,           :Sorry,too many clients already (alert)

2: master    gpstate -s   /usr/local/gpdata/gpmaster/gpseg-1/pg_log/gpdbxxxxxx.csv  ,           

"ERROR","58M01","failed to acquire resources on one or more segments","FATAL: sorry, too many clients already.

Performance Monitor - failed to connect to gpperfmon database: FATAL:  sorry, too many clients already.

サーバにログインしてクラスタのステータスを表示するには、次の手順に従います.
gpstate -b =》        

gpstate -f =》             

gpstate -m =》             

gpstate -Q =》           

         !

クラスタ最大接続数の調整
このとき、クラスタ接続数が多すぎると判断し、接続を殺して問題を解決しようとしたが、データベースクラスタは接続できず、gpconfigコマンドで修正した.
        :

max_connections :     ,Segment     Master 5-10 。

       :
gpconfig -s max_connections

GUC : max_connections
Master value: 250
Segment value: 750

####     
gpconfig -c max_connections -v 2000 -m 500
max_prepared_transactions
             ,     。         prepared          (  PREPARE TRANSACTION  )。        0。        prepared     。        max_connections     。      600  (b)    。

       :
gpconfig -s max_prepared_transactions
Values on all segments are consistent
GUC          : max_prepared_transactions
Master  value: 250
Segment value: 250
    
gpconfig -c max_prepared_transactions  -v 500

パラメータを変更すると、データベースの再起動が有効になります.
      :gpstop -M fast  -a
    :   gpstart -a 

構成が有効であることを確認します.
gpconfig -s max_connections
gpconfig -s max_prepared_transactions

データが起動すると、正常に使用できます!この時点で関連するデータベースはオンラインビジネスに関連しておらず、すべてが直接再起動されました.
スーパーユーザーログインを使用して、処理手順を参照してください.
# su - gpadmin
psql -d postgres

       ;
postgres=# SELECT * FROM pg_stat_activity;

               :

psql -d postgres -c "select count(*) from pg_stat_activity"

   2            :

psql -d postgres -c "select count(*) from pg_stat_activity where datname = 'pt_roi'"

                ,    :

SELECT pg_terminate_backend(pg_stat_activity.procpid) FROM pg_stat_activity WHERE pg_stat_activity.datname = ' $(DATABASES)' AND procpid <> pg_backend_pid();

問題の原因分析:
1:              ,         ,          ;
2:            ,           ,           ,         ,    ;
3:       、        ,            ;