Score:0

คำถามเกี่ยวกับการรัน postgres เป็น Docker Container 1. เขตเวลา 2. global.stat

ธง cn

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

  โพสต์เกรส:
    ภาพ: postgres:13
    พอร์ต: ["5557:5432"]
    รีสตาร์ท: เว้นแต่จะหยุด
    ปริมาณ:
       - ./ดัชนี:/var/lib/postgresql/data
    สิ่งแวดล้อม:
       TZ: "อเมริกา/เคย์แมน"
       PGTZ: "อเมริกา/เคย์แมน"
       POSTGRES_PASSWORD: "โพสต์เกรส"

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

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

สั้น ๆ :

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

-rw-------@ 1 พนักงาน sscotti 3 ก.พ. 22 11:01 น. PG_VERSION
drwx------@ 6 พนักงาน sscotti 192 ก.พ. 22 11:54 ฐาน
drwx------@ 60 เจ้าหน้าที่ sscotti 1920 22 ก.พ. 16:00 น. ทั่วโลก
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 11:01 pg_commit_ts
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 11:01 pg_dynshmem
-rw-------@ 1 พนักงาน sscotti 4782 22 ก.พ. 11:02 น. pg_hba.conf
-rw-------@ 1 พนักงาน sscotti 1636 22 ก.พ. 11:01 pg_ident.conf
drwx------@ 5 พนักงาน sscotti 160 22 ก.พ. 17:46 น. pg_logical
drwx------@ 4 พนักงาน sscotti 128 ก.พ. 22 11:01 pg_multixact
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 11:01 pg_notify
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 11:01 pg_replslot
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 11:01 pg_serial
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 11:01 pg_snapshots
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 16:00 น. pg_stat
drwx------@ 5 พนักงาน sscotti 160 22 ก.พ. 17:50 น. pg_stat_tmp
drwx------@ 3 พนักงาน sscotti 96 22 ก.พ. 11:01 pg_subtrans
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 11:01 pg_tblspc
drwx------@ 2 พนักงาน sscotti 64 22 ก.พ. 11:01 pg_twophase
drwx------@ 4 พนักงาน sscotti 128 ก.พ. 22 11:01 pg_wal
drwx------@ 3 พนักงาน sscotti 96 22 ก.พ. 11:01 pg_xact
-rw-------@ 1 พนักงาน sscotti 88 22 ก.พ. 11:01 postgresql.auto.conf
-rw-------@ 1 พนักงาน sscotti 28073 22 ก.พ. 11:01 postgresql.conf
-rw-------@ 1 พนักงาน sscotti 36 ก.พ. 22 16:00 น. postmaster.opts
-rw------- 1 พนักงาน sscotti 94 22 ก.พ. 16:00 น. postmaster.pid

โฟลเดอร์ pg_stat ว่างเปล่าจริงๆ

และ pg_stat_temp มี:

-rw ------- 1 พนักงาน sscotti 1952 22 ก.พ. 17:54 db_0.stat
-rw------- 1 พนักงาน sscotti 20360 22 ก.พ. 17:54 db_13395.stat
-rw------- 1 พนักงาน sscotti 1151 22 ก.พ. 17:54 น. global.stat

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

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

ขอบคุณ.

โพสต์คำตอบ

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