Đăng nhập vào một tệp trong dịch vụ windows PostgreSQL


11

Tôi cần một giải pháp thay thế để chạy lệnh sau:

C:\xxx\pgsql\bin\pg_ctl" -D "C:\xxx\pgsql\data" -l "C:\yyy\log\pgsql.log" start.

Bằng cách này, máy chủ bắt đầu và đăng nhập vào C:\yyy\log\pgsql.log. Khi tôi cố gắng đăng ký máy chủ như một dịch vụ - không có tùy chọn ghi nhật ký nào và máy chủ sẽ đăng nhập vào Trình xem sự kiện. Từ tài liệu pg_ctl:

đăng ký pg_ctl [-N tên dịch vụ] [tên người dùng -U] [-P mật khẩu] [-D datadir] [-S a [uto] | d [emand]] [-w] [-t giây] [-s] [-o tùy chọn]

Làm thế nào tôi có thể buộc máy chủ đăng nhập vào một tập tin? Lưu ý: Tôi không muốn sử dụng trình cài đặt một lần nhấp, tôi chỉ muốn làm việc với các tệp nhị phân được giải nén.


Hãy chắc chắn rằng bạn đã kích hoạt log_statementđểlog_statement = 'all'
Chris

Câu trả lời:


13

Xác định vị trí của bạn postgresql.conftrong datadir

Tìm phần giống như thế này

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

# - Where to Log -

#log_destination = 'stderr'             # 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 = off                # 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
#log_truncate_on_rotation = off         # If on, an existing log file of the
                                        # same name as the new log file will be
                                        # truncated rather than appended to.
                                        # But such truncation only occurs on
                                        # time-driven rotation, not on restarts
                                        # or size-driven rotation.  Default is
                                        # off, meaning append to existing files
                                        # in all cases.
log_rotation_age = 7d                   # Automatic rotation of logfiles will
                                        # happen after that time.  0 disables.
#log_rotation_size = 10MB               # Automatic rotation of logfiles will
                                        # happen after that much log output.
                                        # 0 disables.

chỉ đơn giản là không chú ý và sử dụng các tham số này. Sau đó, khởi động lại dịch vụ postgres,

Vì bạn đang chạy postgresql trong Windows, có thể bạn không được phép chỉnh sửa postgresql.conftrong khi dịch vụ đã hết. Nếu đó là trường hợp:

  • tắt dịch vụ postgres
  • biên tập postgresql.conf
  • bắt đầu dịch vụ postgres

Hãy thử một lần !!!


Cảm ơn đã chỉ cho tôi đi đúng hướng, Rolando, nhưng câu trả lời của bạn không đúng ... Khi bạn trích dẫn tệp cấu hình, bạn chỉ có thể có stderr, csvlog, syslog, eventlogở đó. Tôi đã phải thay đổi các thuộc tính sau đây : logging_collector = on, log_directory = ..., log_filename=.... Nếu bạn chỉnh sửa câu trả lời của mình, tôi sẽ chấp nhận nó.
Vic

1
Này Vic, cảm ơn. Tôi là người mới làm việc tại PostgreSQL và cung cấp hỗ trợ nhỏ cho nó. Tôi chỉ là một DBA MySQL nước cũ.
RolandoMySQLDBA

1
log_directory = 'C: / Users / Peter / Documents / jonbloe / system / log' làm việc cho tôi. Nhưng đừng sử dụng Windows '\' vì nó hoạt động như một lối thoát và nhật ký kết thúc trong một thư mục PGDATA / UsersPeterDocumentjonbloesystemlogs
peter2108
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.