เข้าสู่ระบบไฟล์ในบริการ windows PostgreSQL


11

ฉันต้องการทางเลือกอื่นสำหรับการรันคำสั่งต่อไปนี้:

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

วิธีนี้เซิร์ฟเวอร์เริ่มต้นและเข้าสู่C:\yyy\log\pgsql.logระบบ เมื่อฉันพยายามที่จะลงทะเบียนเซิร์ฟเวอร์เป็นบริการ - ไม่มีตัวเลือกการบันทึกและเซิร์ฟเวอร์บันทึกไปยังตัวแสดงเหตุการณ์ จากเอกสาร pg_ctl:

pg_ctl register [-N servicename] [-U ชื่อผู้ใช้] [-P รหัสผ่าน] [-D datadir] [-S a [uto] | d [emand]] [-w] [-t วินาที] [-s] [-o ตัวเลือก]

ฉันจะบังคับให้เซิร์ฟเวอร์ลงชื่อเข้าใช้ไฟล์ได้อย่างไร หมายเหตุ: ฉันไม่ต้องการใช้โปรแกรมติดตั้งแบบคลิกเดียวฉันแค่ต้องการทำงานกับไบนารีที่ไม่ได้ซิป


ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งานlog_statementtolog_statement = 'all'
Chris

คำตอบ:


13

ค้นหาของคุณpostgresql.confใน datadir

ค้นหาส่วนที่มีลักษณะเช่นนี้

#------------------------------------------------------------------------------
# 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.

เพียงแค่ไม่ใส่เครื่องหมายข้อคิดเห็นและใช้พารามิเตอร์เหล่านี้ จากนั้นเริ่มบริการ postgres ใหม่

เนื่องจากคุณใช้ postgresql ใน Windows จึงเป็นไปได้ที่คุณอาจไม่ได้รับอนุญาตให้แก้ไขpostgresql.confในขณะที่ให้บริการ หากเป็นกรณีนี้:

  • ปิดบริการ postgres
  • แก้ไข postgresql.conf
  • เริ่มบริการ postgres

ให้มันลอง !!!


ขอขอบคุณที่ชี้ให้ฉันไปทิศทางที่ถูกต้อง Rolando แต่คำตอบของคุณก็จะไม่ถูกต้อง ... ในขณะที่คุณพูดแฟ้มการกำหนดค่าที่คุณสามารถมีเพียงstderr, csvlog, syslog, eventlogมี ฉันต้องเปลี่ยนคุณสมบัติต่อไปนี้แทน: logging_collector = on, log_directory = ..., log_filename=.... หากคุณแก้ไขคำตอบของฉันฉันจะยอมรับมัน
Vic

1
เฮ้วิคขอบคุณ ฉันเป็นสามเณรที่ PostgreSQL และให้การสนับสนุนเล็กน้อยสำหรับมัน ฉันเป็นเพียง MySQL DBA ของประเทศเก่า
RolandoMySQLDBA

1
log_directory = 'C: / Users / Peter / Documents / jonbloe / system / logs' ใช้งานได้สำหรับฉัน แต่อย่าใช้ Windows '\' เพราะมันทำงานเหมือนการหลบหนีและไฟล์บันทึกจะอยู่ในโฟลเดอร์ PGDATA / UsersPeterDocumentsjonbloesystemlogs
peter2108
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.