PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

~/.psqlrc file untuk DBA

Dalam pemantauan DBA reguler kami, kami akan menggunakan begitu banyak kombinasi kueri pg_catalog untuk mengambil informasi seperti dalam transaksi, kueri menunggu, Jumlah koneksi, dll. Sebagian besar DBA, membuat tampilan untuk memotong kueri kombinasi besar dan tetap berguna untuk digunakan nanti sesuai kebutuhan.

PostgreSQL, menyediakan file startup (.psqlrc) yang dieksekusi sebelum terhubung ke database saat digunakan dengan utilitas psql. Menggunakan file .psqlrc Anda dapat menempatkan semua pertanyaan penting Anda dengan satu kata alias dengan perintah 'set' dan menjalankannya di terminal psql alih-alih mengetik pertanyaan besar. Jika Anda tidak melihat file .psqlrc di direktori home pengguna 'postgres', Anda dapat membuatnya secara eksplisit. Saya mencobanya dan ternyata sangat membantu.

Poin di .psqlrc:
  • .psqlrc adalah file startup, dijalankan saat menghubungkan ke cluster.
  • File .psqlrc akan berada di direktori home pengguna 'postgres'.
  • psql options -X atau -c, jangan membaca file .psqlrc.
  • File .psqlrc adalah untuk level sesi lengkap, bukan level basis data.

Screenshot terminal saya:

Mari kita lihat bagaimana menerapkan ini.

Sintaks:

set <alias-variable-name>  'query'
Catatan:jika kueri Anda memiliki tanda kutip tunggal atau ganda, gunakan ' atau ” dalam kueri. Contoh Query untuk dimasukkan ke dalam file .psqlrc dengan 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!

Penggunaan:

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)

Apakah itu tidak membantu. Menikmati… :). Akan kembali dengan beberapa barang lagi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATEADD setara di PostgreSQL

  2. java.lang.NoSuchFieldError:NONE dalam hibernasi dengan Spring 3, maven, JPA, c3p0

  3. Nilai referensi kolom serial di kolom lain selama INSERT yang sama

  4. Bagaimana Now() Bekerja di PostgreSQL

  5. Masukkan Data Ke Tabel yang Ditautkan oleh Kunci Asing