sql >> Database teknologi >  >> RDS >> PostgreSQL

~/.psqlrc-fil til DBA'er

I vores almindelige DBA-overvågning vil vi bruge så mange kombinationer af pg_catalog-forespørgsler til at hente information som i transaktion , ventende forespørgsler, antal forbindelser osv. De fleste af DBA'erne skaber visninger for at afkorte store kombinationsforespørgsler og holdes ved hånden til senere brug efter behov.

PostgreSQL, giver en startfil (.psqlrc), som udføres, før der oprettes forbindelse til databasen, når den bruges med psql-værktøjet. Ved at bruge .psqlrc-filen kan du placere alle dine vigtige forespørgsler med ét ord-alias ved at 'set'-kommandoen og udføre den i psql-terminalen i stedet for at skrive store forespørgsler. Hvis du ikke kan se .psqlrc-filen i 'postgres' brugerhjemmemappe, kan du oprette den eksplicit. Jeg prøvede det og fandt det meget nyttigt.

Points på .psqlrc:
  • .psqlrc er en startfil, der udføres, når der oprettes forbindelse til klyngen.
  • .psqlrc-filen vil ligge i 'postgres' brugerhjemmemappe.
  • psql-indstillinger -X eller -c, læs ikke .psqlrc-filen.
  • .psqlrc-filen er for komplet sessionsniveau, ikke databaseniveau.

Skærmbillede af min terminal:

Lad os se, hvordan du implementerer dette.

Syntaks:

set <alias-variable-name>  'query'
Bemærk:Hvis din forespørgsel har enkelte eller dobbelte anførselstegn, skal du bruge ' eller " i forespørgslen. Eksempelforespørgsler til .psqlrc-fil med alias:
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!

Brug:

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)

Var det ikke nyttigt. God fornøjelse… :). Vender tilbage med nogle flere ting.


  1. Importerer zippet CSV-fil til PostgreSQL

  2. Konfiguration af PostgreSQL til observerbarhed

  3. Sådan bruges Where-klausulen i Select Statement i SQL Server - SQL Server / TSQL Tutorial Del 109

  4. Oracle Fast Recovery Area