PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Plik ~/.psqlrc dla DBA

W naszym regularnym monitorowaniu DBA będziemy używać tak wielu kombinacji zapytań pg_catalog, aby uzyskać informacje, takie jak w transakcji , oczekujące zapytania, liczba połączeń itp. Większość DBA tworzy widoki, aby skrócić duże zapytania złożone i trzymaj pod ręką do późniejszego użycia zgodnie z wymaganiami.

PostgreSQL zapewnia plik startowy (.psqlrc), który jest uruchamiany przed połączeniem z bazą danych podczas korzystania z narzędzia psql. Używając pliku .psqlrc możesz umieścić wszystkie ważne zapytania z jednym aliasem słowa za pomocą polecenia „set” i wykonać je w terminalu psql zamiast wpisywać duże zapytania. Jeśli nie zobaczysz pliku .psqlrc w katalogu domowym użytkownika „postgres”, możesz go utworzyć jawnie. Wypróbowałem to i okazało się, że jest bardzo pomocne.

Punkty na .psqlrc:
  • .psqlrc to plik startowy, wykonywany podczas łączenia się z klastrem.
  • Plik .psqlrc będzie znajdować się w katalogu domowym użytkownika „postgres”.
  • opcje psql -X lub -c, nie czytaj pliku .psqlrc.
  • Plik .psqlrc jest przeznaczony dla pełnego poziomu sesji, a nie poziomu bazy danych.

Mój terminal Zrzut ekranu:

Zobaczmy, jak to zaimplementować.

Składnia:

set <alias-variable-name>  'query'
Uwaga:jeśli zapytanie zawiera pojedyncze lub podwójne cudzysłowy, użyj w zapytaniu „ lub ”. Przykładowe zapytania do umieszczenia w pliku .psqlrc z aliasem:
vi ~/.psqlrc

set PAGER OFF

set waits 'SELECT pg_stat_activity.procpid, pg_stat_activity.current_query, pg_stat_activity.waiting, now() - pg_stat_activity.query_start as "totaltime", pg_stat_activity.backend_start FROM pg_stat_activity WHERE pg_stat_activity.current_query !~ '%IDLE%'::text AND pg_stat_activity.waiting = true;;'

set locks 'select pid,mode,current_query from pg_locks,pg_stat_activity where granted=false and locktype='transactionid' and pid=procpid order by pid,granted;;'

:wq!

Użycie:

postgres=# :waits
procpid | current_query | waiting | totaltime | backend_start
---------+-------------------------------+---------+-----------------+----------------------------------
9223 | insert into locks VALUES (1); | t | 00:00:18.901773 | 2011-10-08 00:29:10.065186+05:30
(1 row)

postgres=# :locks
pid | mode | current_query
------+-----------+-------------------------------
9223 | ShareLock | insert into locks VALUES (1);
(1 row)

Czy to nie było pomocne. Cieszyć się… :). Wrócimy z kilkoma rzeczami.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ograniczenie zdefiniowane ODROCZONY POCZĄTKOWO NATYCHMIAST jest nadal ODROCZONY?

  2. Porównaj varchar z char

  3. Tworzenie sekwencji PostgreSQL do pola (które nie jest identyfikatorem rekordu)

  4. PostgreSQL - klauzula GROUP BY lub być używana w funkcji agregującej

  5. Jak działa funkcja CONCAT() w PostgreSQL