ฉันใช้ postgres เป็น Docker Container มาระยะหนึ่งแล้ว ในขั้นต้น ไม่ได้ตั้งค่า TZ และ PGTZ ดังนั้นฉันจึงคิดว่ามันผิดนัดเป็น UTC ในระบบ dev ของฉัน ฉันลองทำสิ่งต่อไปนี้ใน docker-compose.yml:

  postgres:
    image: postgres:13
    ports: ["5557:5432"]
    restart: unless-stopped
    volumes:
       - ./Index:/var/lib/postgresql/data
    environment:
       TZ: "America/Cayman"
       PGTZ: "America/Cayman"
       POSTGRES_PASSWORD: "postgres"

และดูเหมือนว่าจะทำการปรับเปลี่ยนเขตเวลาท้องถิ่น ฉันไม่ได้ปรับใช้สิ่งนั้นกับระบบที่ใช้งานจริงเพราะฉันสงสัยว่าจะทำให้เกิดปัญหาใด ๆ เกี่ยวกับประวัติการทำธุรกรรม DB และไฟล์บันทึก ฯลฯ หรือไม่ ความสมบูรณ์ของ DB นั้นใช้ได้แล้ว และฉันมีการสำรองข้อมูลกลับไปได้หลายวิธี ฉันไม่แน่ใจด้วยซ้ำว่าจำเป็นต้องตั้งเขตเวลาจริงๆ แต่ก็ดีแล้วที่คอนเทนเนอร์ทั้งหมดถูกตั้งค่าเป็นโซนท้องถิ่นแทนที่จะเป็น UTC

ปัญหาอื่นไม่เกี่ยวข้อง และมีการกล่าวถึงที่นี่: คำเตือน: ไม่สามารถเปิดไฟล์สถิติ "pg_stat_tmp/global.stat": ไม่อนุญาตให้ดำเนินการ

สั้น ๆ :

ดัชนีฐานข้อมูลนั้นถูกแมปกับโฟลเดอร์บนโฮสต์ในรูทของ Docker Package และทุกอย่างดูเหมือนจะทำงานได้ดีเท่าที่เกี่ยวข้องกับฐานข้อมูล ฉันใช้ Mac แต่ถ้าฉันแสดงรายการการอนุญาตจาก CLI สำหรับโฟลเดอร์ DB ฉันจะได้รับ:

[email protected]  1 sscotti  staff      3 Feb 22 11:01 PG_VERSION
[email protected]  6 sscotti  staff    192 Feb 22 11:54 base
[email protected] 60 sscotti  staff   1920 Feb 22 16:00 global
[email protected]  2 sscotti  staff     64 Feb 22 11:01 pg_commit_ts
[email protected]  2 sscotti  staff     64 Feb 22 11:01 pg_dynshmem
[email protected]  1 sscotti  staff   4782 Feb 22 11:02 pg_hba.conf
[email protected]  1 sscotti  staff   1636 Feb 22 11:01 pg_ident.conf
[email protected]  5 sscotti  staff    160 Feb 22 17:46 pg_logical
[email protected]  4 sscotti  staff    128 Feb 22 11:01 pg_multixact
[email protected]  2 sscotti  staff     64 Feb 22 11:01 pg_notify
[email protected]  2 sscotti  staff     64 Feb 22 11:01 pg_replslot
[email protected]  2 sscotti  staff     64 Feb 22 11:01 pg_serial
[email protected]  2 sscotti  staff     64 Feb 22 11:01 pg_snapshots
[email protected]  2 sscotti  staff     64 Feb 22 16:00 pg_stat
[email protected]  5 sscotti  staff    160 Feb 22 17:50 pg_stat_tmp
[email protected]  3 sscotti  staff     96 Feb 22 11:01 pg_subtrans
[email protected]  2 sscotti  staff     64 Feb 22 11:01 pg_tblspc
[email protected]  2 sscotti  staff     64 Feb 22 11:01 pg_twophase
[email protected]  4 sscotti  staff    128 Feb 22 11:01 pg_wal
[email protected]  3 sscotti  staff     96 Feb 22 11:01 pg_xact
[email protected]  1 sscotti  staff     88 Feb 22 11:01 postgresql.auto.conf
[email protected]  1 sscotti  staff  28073 Feb 22 11:01 postgresql.conf
[email protected]  1 sscotti  staff     36 Feb 22 16:00 postmaster.opts
-rw-------   1 sscotti  staff     94 Feb 22 16:00 postmaster.pid

pg_stat folder is actually empty.

and pg_stat_temp has:

-rw-------  1 sscotti  staff   1952 Feb 22 17:54 db_0.stat
-rw-------  1 sscotti  staff  20360 Feb 22 17:54 db_13395.stat
-rw-------  1 sscotti  staff   1151 Feb 22 17:54 global.stat

ปัญหาน่าจะอยู่ที่ไฟล์ DB ถูกผูกไว้กับโฟลเดอร์ในเครื่องบนโฮสต์แทนที่จะเป็น Docker Volume สะดวกกว่ามากที่จะผูกไว้กับโฟลเดอร์ในเครื่องที่เข้าถึงได้ง่ายจากโฮสต์ แต่ฉันคิดว่ามีปัญหาเกี่ยวกับการอนุญาตบางอย่างที่เกี่ยวข้อง จริงๆ แล้วฉันอาจต้องการเปลี่ยนเป็นโวลุ่ม แต่โวลุ่มยังคงต้องคงอยู่และสำรองข้อมูลอย่างง่ายดายไปยังบริการ NAS หรือคลาวด์ในพื้นที่ที่เราใช้สำหรับการสำรองข้อมูล

ด้วย Docker Desktop สำหรับ MacOS ดูเหมือนว่าจะมีประสิทธิภาพเล็กน้อยเมื่อใช้โฟลเดอร์ที่ถูกผูกไว้แทนที่จะเป็นโวลุ่ม แต่บน LINUX ดูเหมือนจะไม่ก่อให้เกิดปัญหา แม้ว่าจะมีคำเตือน "ไฟล์สถิติ" เกิดขึ้นที่นั่นด้วย

ขอบคุณ.

no answer