PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách ghi các truy vấn trong PostgreSQL

  • Định vị tệp cấu hình
    • Định vị Đường dẫn Thư mục Dữ liệu
  • Định cấu hình PostgreSQL để tạo đầu ra nhật ký
    • Khởi động lại Dịch vụ PostgreSQL
  • Xác minh Tạo nhật ký

Việc kích hoạt đăng nhập trong PostgreSQL được thực hiện khá dễ dàng bằng cách thay đổi một số cài đặt cấu hình và sau đó khởi động lại máy chủ. Mặc dù các cài đặt này có thể được thay đổi "trong bộ nhớ", do đó chỉ cho phép ghi nhật ký tạm thời cho phiên khách cụ thể đó, nhưng trong hướng dẫn này, chúng tôi sẽ trình bày cách định cấu hình postgres để tạo vĩnh viễn tệp nhật ký lặp lại cho tất cả các phiên và kết nối.

Định vị tệp cấu hình

Nếu bạn không chắc postgresql.conf ở đâu tệp cấu hình được đặt, phương pháp đơn giản nhất để tìm vị trí là kết nối với ứng dụng khách postgres (psql ) và phát hành SHOW config_file; lệnh:

postgres=# SHOW config_file;
               config_file
------------------------------------------
 /etc/postgresql/9.3/main/postgresql.conf

Trong trường hợp này, chúng ta có thể thấy đường dẫn đến postgresql.conf tệp cho máy chủ này là /etc/postgresql/9.3/main/postgresql.conf . Bây giờ chỉ cần mở tệp đó bằng trình soạn thảo văn bản yêu thích của bạn và chúng tôi có thể bắt đầu thay đổi cài đặt:

$ nano /etc/postgresql/9.3/main/postgresql.conf

Định vị Đường dẫn Thư mục Dữ liệu

Bạn cũng nên xác nhận đường dẫn của data thư mục để cài đặt postgres của bạn. Điều này sẽ hữu ích sau này và việc truy xuất đường dẫn là một vấn đề của một SHOW đơn giản khác tuyên bố:

postgres=# SHOW data_directory;
        data_directory
------------------------------
 /var/lib/postgresql/9.3/main

Trên một số cài đặt, tệp cấu hình và data thư mục sẽ nằm dọc theo cùng một đường dẫn, trong khi ở các thư mục khác (như ví dụ này), chúng khác nhau. Dù bằng cách nào, hãy sao chép data này xuống đường dẫn thư mục để sử dụng sau này.

Định cấu hình PostgreSQL để tạo đầu ra nhật ký

Với postgresql.conf mở tệp, cuộn xuống ERROR REPORTING AND LOGGING và bạn có thể sẽ thấy một số tùy chọn cấu hình được nhận xét. Điều quan trọng nhất trong số các cài đặt này là log_destinationlogging_collector . Dưới đây là các cài đặt được đề xuất, mặc dù vậy, vui lòng thay đổi các cài đặt này cho phù hợp với nhu cầu của riêng bạn:

#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'csvlog'              # Valid values are combinations of
                                        # stderr, csvlog, syslog, and eventlog,
                                        # depending on platform.  csvlog
                                        # requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on          # Enable capturing of stderr and csvlog
                                        # into log files. Required to be on for
                                        # csvlogs.
                                        # (change requires restart)

# These are only used if logging_collector is on:
log_directory = 'pg_log'                # directory where log files are written,
                                        # can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
                                        # can include strftime() escapes

Ở đây, chúng tôi đang yêu cầu các bưu tá tạo nhật ký trong CSV định dạng và xuất chúng ra pg_log thư mục (trong data danh mục). Chúng tôi cũng đã bỏ ghi chú log_filename cài đặt để tạo ra một số tên riêng bao gồm dấu thời gian cho các tệp nhật ký.

Bạn có thể tìm thấy thông tin chi tiết về tất cả các cài đặt này trong official documentation .

Khởi động lại Dịch vụ PostgreSQL

Bước cuối cùng là khởi động lại dịch vụ PostgreSQL để các cài đặt này, cụ thể là logging_collector , Sẽ có hiệu lực. Việc thực hiện khởi động lại postgres sẽ khác nhau giữa các hệ thống, nhưng thông thường đối với hệ thống unix, lệnh sẽ giống như sau:

$ service postgresql restart
 * Restarting PostgreSQL 9.3 database server                               [ OK ]

Xác minh Tạo Nhật ký

Sau khi hệ thống được khởi động lại, việc ghi nhật ký sẽ bắt đầu ngay lập tức. Để đảm bảo đúng như vậy, hãy điều hướng đến data/pg_log thư mục cài đặt postgres của bạn. Hãy nhớ rằng chúng tôi đã lấy data đường dẫn thư mục trước đó, vì vậy chỉ cần điều hướng đến thư mục đó bằng cách thêm /pg_log cuối cùng để vào thư mục nhật ký:

$ cd /var/lib/postgresql/9.3/main/pg_log

Bây giờ hãy liệt kê các tệp và bạn sẽ thấy một tệp nhật ký đã được tạo sau khi khởi động lại dịch vụ trước đó:

$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv

Chúng tôi có nó; các tệp nhật ký được tạo tự động được bật với PostgreSQL bằng cách chỉ thay đổi một vài cài đặt cấu hình.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. org.postgresql.util.PSQLException:Chỉ mục cột nằm ngoài phạm vi:3, số cột:2

  2. Hàm RPAD () trong PostgreSQL

  3. LỖI:quyền bị từ chối đối với tên bảng quan hệ trên Postgres trong khi thử SELECT với tư cách người dùng chỉ đọc

  4. Tại sao truy cập mảng PostgreSQL trong C nhanh hơn nhiều so với PL / pgSQL?

  5. postgres:nâng cấp người dùng thành superuser?