PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

~/.psqlrc файл за DBA

В нашия редовен DBA мониторинг ще използваме толкова много комбинации от pg_catalog заявки, за да получим информация като в транзакция, чакащи заявки, брой връзки и т.н. Повечето от DBA създават изгледи, за да съкратят големи комбинационни заявки и дръжте под ръка за по-късна употреба според изискване.

PostgreSQL предоставя стартов файл (.psqlrc), който се изпълнява преди свързване към базата данни, когато се използва с помощната програма psql. Използвайки .psqlrc файл, можете да поставите всичките си важни заявки с псевдоним на една дума чрез команда „set“ и да го изпълните в psql терминал, вместо да пишете големи заявки. Ако няма да видите .psqlrc файл в потребителската домашна директория на postgres, можете да го създадете изрично. Опитах го и намерих много полезен.

Точки върху .psqlrc:
  • .psqlrc е файл за стартиране, изпълнява се при свързване към клъстера.
  • .psqlrc файлът ще се намира в потребителската домашна директория на „postgres“.
  • psql опции -X или -c, не четете файла .psqlrc.
  • .psqlrc файлът е за пълно ниво на сесия, а не за ниво на база данни.

Екранна снимка на моя терминал:

Нека видим как да приложим това.

Синтаксис:

set <alias-variable-name>  'query'
Забележка:ако заявката ви има единични или двойни кавички, използвайте ‘ или ” в заявката. Примерни заявки за поставяне във файл .psqlrc с псевдоним:
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!

Употреба:

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)

Не беше ли полезно. Наслади се… :). Ще се върна с още неща.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Уникално поле на модела в Django и чувствителност към малки и големи букви (postgres)

  2. Тези проклети големи обекти

  3. Вземете първия ден от месеца в PostgreSQL

  4. SQL заявка за намиране на запис с идентификатор, който не е в друга таблица

  5. PostgreSQL визуален интерфейс, подобен на phpMyAdmin?