คำถามติดแท็ก postgresql-9.2

PostgreSQL เวอร์ชัน 9.2.2

3
ทำไมผู้ใช้ใหม่ได้รับอนุญาตให้สร้างตาราง?
ฉันสงสัยว่าทำไมผู้ใช้ที่เพิ่งสร้างใหม่ได้รับอนุญาตให้สร้างตารางหลังจากเชื่อมต่อกับฐานข้อมูล ฉันมีฐานข้อมูลเดียวproject2_core: postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ---------------+--------------+-----------+-------------+-------------+------------------------------- postgres | postgres | SQL_ASCII | C | C | project2_core | atm_project2 | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | project2=CTc/project2 template0 | postgres | SQL_ASCII | C | C …

5
DELETE ช้ามากใน PostgreSQL หรือไม่?
ฉันมีฐานข้อมูลบน PostgreSQL 9.2 ที่มีคีมาหลักที่มีประมาณ 70 ตารางและจำนวนตัวแปรของสกีมาต่อไคลเอนต์ที่มีโครงสร้างเหมือนกันจำนวน 30 ตาราง สกีมาไคลเอนต์มีคีย์ต่างประเทศอ้างอิงถึงสกีมาหลักและไม่ใช่วิธีอื่น ๆ ฉันเพิ่งเริ่มเติมฐานข้อมูลด้วยข้อมูลจริงบางอย่างที่นำมาจากเวอร์ชันก่อนหน้า ฐานข้อมูลมาถึงประมาณ 1.5 GB (คาดว่าจะเพิ่มขึ้นเป็น 10s GB ภายในไม่กี่สัปดาห์) เมื่อฉันต้องทำการลบจำนวนมากในตารางกลางในสคีมาหลัก คีย์ต่างประเทศที่เกี่ยวข้องทั้งหมดจะถูกทำเครื่องหมายว่า DELETE CASCADE ไม่แปลกใจเลยว่าจะใช้เวลานาน แต่หลังจากผ่านไป 12 ชั่วโมงก็เห็นได้ชัดว่าฉันเริ่มต้นได้ดีกว่าปล่อย DB และเรียกใช้การย้ายข้อมูลอีกครั้ง แต่ถ้าฉันต้องทำซ้ำการดำเนินการนี้ในภายหลังเมื่อฐานข้อมูลมีชีวิตอยู่และมีขนาดใหญ่ขึ้น? มีวิธีอื่นให้เลือกเร็วกว่านี้ไหม? มันจะเร็วกว่านี้ไหมถ้าฉันเขียนสคริปต์ที่จะเรียกดูตารางที่ขึ้นต่อกันเริ่มต้นที่ตารางที่ไกลที่สุดจากตารางกลางการลบตารางแถวที่อยู่ต่อกันทีละตาราง? รายละเอียดที่สำคัญคือมีทริกเกอร์ในบางตาราง

1
VACUUM ส่งคืนพื้นที่ดิสก์ไปยังระบบปฏิบัติการ
VACUUMมักจะไม่คืนพื้นที่ว่างในดิสก์ไปยังระบบปฏิบัติการยกเว้นในบางกรณีพิเศษ จากเอกสาร: รูปแบบมาตรฐานของการVACUUMลบเวอร์ชันของแถวที่ตายแล้วในตารางและดัชนีและทำเครื่องหมายพื้นที่ที่มีอยู่สำหรับการใช้ซ้ำในอนาคต อย่างไรก็ตามมันจะไม่คืนพื้นที่ไปยังระบบปฏิบัติการยกเว้นในกรณีพิเศษที่หนึ่งหรือหลายหน้าท้ายตารางกลายเป็นอิสระทั้งหมดและสามารถล็อคตารางแบบเอกสิทธิ์ได้อย่างง่ายดาย ในทางตรงกันข้ามVACUUM FULLบีบอัดตารางอย่างแข็งขันด้วยการเขียนไฟล์ตารางเวอร์ชันใหม่ที่สมบูรณ์โดยไม่มีพื้นที่ว่าง สิ่งนี้จะลดขนาดของตาราง แต่จะใช้เวลานาน นอกจากนี้ยังต้องการพื้นที่ดิสก์เพิ่มเติมสำหรับสำเนาใหม่ของตารางจนกว่าการดำเนินการจะเสร็จสมบูรณ์ คำถามคือจะทำอย่างไรเมื่อฐานข้อมูลนี้one or more pages at the end of a table become entirely freeสำเร็จ? สิ่งนี้สามารถทำได้ผ่านVACUUM FULLแต่ฉันมีพื้นที่ไม่เพียงพอที่จะใช้มัน มีความเป็นไปได้อื่นอีกไหม?

4
เหตุใด Postgres จึงสร้างค่า PK ที่ใช้ไปแล้ว
ฉันใช้ Django และทุกครั้งที่ฉันได้รับข้อผิดพลาด: IntegrityError: ค่าคีย์ที่ซ้ำกันละเมิดข้อ จำกัด ที่ไม่ซ้ำกัน "myapp_mymodel_pkey" ราย ละเอียด: Key (id) = (1) มีอยู่แล้ว จริง ๆ แล้วฐานข้อมูล Postgres ของฉันมีวัตถุmyapp_mymodel ที่มีคีย์หลักเป็น 1 เหตุใด Postgres จะพยายามใช้คีย์หลักนั้นอีกครั้ง หรือนี่เป็นไปได้มากว่าแอปพลิเคชันของฉัน (หรือ ORM ของ Django) เป็นสาเหตุให้เกิดปัญหานี้ ปัญหานี้เกิดขึ้น 3 ครั้งติดต่อกันตอนนี้ สิ่งที่ฉันได้พบก็คือว่าเมื่อมันไม่เกิดขึ้นมันเกิดขึ้นหนึ่งครั้งหรือมากกว่าในแถวในตารางที่ระบุนั้นไม่ได้อีกครั้ง ดูเหมือนว่าจะเกิดขึ้นสำหรับทุกตารางก่อนที่จะหยุดอย่างสมบูรณ์สำหรับวันที่เกิดขึ้นเป็นเวลาอย่างน้อยหนึ่งนาทีหรือดังนั้นต่อตารางเมื่อมันเกิดขึ้นและจะเกิดขึ้นเป็นระยะ ๆ เท่านั้น (ไม่ตารางทั้งหมดทันที) ความจริงที่ว่าข้อผิดพลาดนี้เป็นระยะ ๆ (เกิดขึ้นเพียง 3 ครั้งหรือมากกว่านั้นใน 2 สัปดาห์ - ไม่มีการโหลดอื่น ๆ บนฐานข้อมูลเพียงฉันทดสอบใบสมัครของฉัน) …

2
วิธีติดตามความคืบหน้าของการถ่ายโอนข้อมูล postrgresql ขนาดใหญ่
มีวิธีดูความคืบหน้าของการpg_dumpดำเนินการกับฐานข้อมูลขนาดใหญ่ (เช่น> 1GB) หรือไม่ การเพิ่ม-vตัวเลือกเพียงแค่ทิ้งข้อความบนหน้าจอ แต่ไม่ได้ให้ข้อมูลการติดตามที่มีความหมายกับฉันมากนัก

4
ไม่สามารถปิด postmaster เก่าเมื่ออัปเกรดเป็น Postgres 9.2
ฉันกำลังอัปเกรดเป็น Postgres 9.2.2 (จาก 9.1.4) เมื่อฉันพยายามอัพเกรด DBs โดยใช้: pg_upgrade -b /usr/local/Cellar/postgresql/9.1.4/bin -B /usr/local/Cellar/postgresql/9.2.2/bin -d /usr/local/var/postgres91 -D /usr/local/var/postgres ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: Performing Consistency Checks ----------------------------- Checking current, bin, and data directories ok There seems to be a postmaster servicing the old cluster. Please shutdown that postmaster and try again. Failure, exiting ฉันพยายามหยุดเซิร์ฟเวอร์ แต่ไม่สามารถให้คำสั่งอัปเกรดทำงานได้ …

2
วิธีดูคิวรีของเซสชันอื่นใน pg_stat_activity โดยไม่ต้องเป็นผู้ใช้ขั้นสูง
ฉันมีฐานข้อมูล Postgresql 9.2 ผู้ใช้สองคนถูกสร้างบนฐานข้อมูลนี้ เมื่อฉันทำแบบสอบถามต่อไปนี้เป็น superuser ฉันสามารถเห็นทุกสิ่ง select * from pg_stat_activity อย่างไรก็ตามเป็นไปได้หรือไม่ที่จะได้ผลลัพธ์เดียวกันโดยไม่ต้องเชื่อมต่อเป็น superuser ฉันควรอนุญาต / สร้างสิทธิ์ / บทบาทใดเพื่อให้ได้ผลลัพธ์ที่ผู้ใช้ระดับสูงเห็นได้

1
เหตุใด SELECT * จึงเร็วกว่าการเลือกคอลัมน์ทั้งหมด (ตามลำดับคอลัมน์) ตามชื่อ
บนโต๊ะที่มีคอลัมน์ a, b, c, d, e, f, g, h, i, j, k ฉันได้รับ: select * from misty order by a limit 25; Time: 302.068 ms และ: select c,b,j,k,a,d,i,g,f,e,h from misty order by a limit 25; Time: 1258.451 ms มีวิธีในการเลือกคอลัมน์อย่างรวดเร็วหรือไม่? ปรับปรุง: ไม่มีดัชนีในตารางสร้างขึ้นใหม่ นี่คือการอธิบายการวิเคราะห์ดูเหมือนจะไม่เป็นประโยชน์: explain analyze select * from misty order by …

2
ทริกเกอร์ FOR FOR EACH STATEMENT จะเรียกใช้งานบ่อยแค่ไหนหากการดำเนินการเกิดจากข้อ จำกัด FK ที่มี CASCADE UPDATE
ผมเข้าใจว่าทริกเกอร์บนเสื้อตารางที่กำหนดไว้กับจะทำงานเมื่อตอนที่ผมดำเนินการFOR EACH STATEMENTUPDATE t ... ทีนี้เมื่อtถูกกำหนดด้วยFOREIGN KEY ... REFERENCES a ... ON UPDATE CASCADEและฉันอัพเดทแถว N แถวaนั่นจะทำให้ทริกเกอร์ถูกเรียกครั้งเดียวหรือครั้ง N หรือไม่? สิ่งที่แตกต่างกันคือการเปลี่ยนแปลงในตารางที่เรียงซ้อนกันโดยข้อ จำกัด FK เป็นแบบเดี่ยวUPDATEมากกว่าหรือมากกว่าแบบอนุกรมUPDATEหรือไม่?

1
การรับหลาย ๆ คำสั่งด้วย“ แสดงระดับการแยกธุรกรรม” ใน pg_activity
ฉันใช้เซิร์ฟเวอร์ PostgreSQL สำหรับการใช้งานจริงของฉัน เมื่อฉันเริ่มต้นแบบสอบถาม select * from pg_stat_activity บนเซิร์ฟเวอร์ของฉันฉันได้รับ 98% ของข้อความค้นหาเช่น SHOW TRANSACTION ISOLATION LEVEL และเซิร์ฟเวอร์ของฉันยอมรับการเชื่อมต่อเพียง 100 ครั้งดังนั้นฉันจึงไม่สามารถดำเนินการต่อไปได้ ทำไมสิ่งนี้จึงเกิดขึ้น ฉันจะบล็อกข้อความค้นหาเหล่านี้ทั้งหมดได้อย่างไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.