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

PostgreSQL ทุกรุ่น เพิ่มแท็กเฉพาะรุ่นเพิ่มเติมเช่น postgresql-11 หากบริบทนั้นสำคัญ

1
การตรวจสอบข้อมูลโต้ตอบกับการจำลองแบบสตรีมได้อย่างไร
การตรวจสอบข้อมูลเป็นคุณลักษณะใหม่ที่นำเสนอใน 9.3 และ: มีพารามิเตอร์ GUC ใหม่ "ign_checksum_failure" ซึ่งจะบังคับให้ PostgreSQL ดำเนินการประมวลผลธุรกรรมต่อไปแม้ว่าจะตรวจพบความเสียหาย ในกรณีที่ความล้มเหลวในการตรวจสอบบนต้นแบบการจำลองข้อมูลที่เสียหายจะถูกทำซ้ำเป็นทาสหรือจะหยุดการจำลองแบบ มันขึ้นอยู่กับการตั้งค่าของignore_checksum_failure? นี้ README มีข้อมูลที่เกี่ยวข้องที่มีประโยชน์บาง แต่ไม่ได้โดยตรงตอบคำถาม

1
การทำธุรกรรม PostgreSQL กระทำเป็นเวลาหลายชั่วโมง
ฉันพบปัญหาโดยที่ฉันมีการเชื่อมต่อสองรายการจากผู้ใช้ไปยังเซิร์ฟเวอร์ PostgreSQL ของฉันซึ่งทำงานมาแล้วประมาณ 4 ชั่วโมงและอยู่ในสถานะที่ยอมรับได้ค่อนข้างนาน (อย่างน้อย 1 ชั่วโมงที่ฉันดูอยู่) . การเชื่อมต่อเหล่านี้ปิดกั้นข้อความค้นหาอื่น ๆ ไม่ให้ทำงาน แต่ตัวเองไม่ได้ถูกบล็อก นี่คือการเชื่อมต่อทั้งสองที่เป็นปัญหา postgres=# select * from pg_stat_activity where usename = 'xxxxx'; datid | datname | procpid | usesysid | usename | current_query | waiting | xact_start | query_start | backend_start | client_addr | client_port -------+---------+---------+----------+---------+---------------+---------+-------------------------------+-------------------------------+-------------------------------+---------------+------------- 20394 | xxxxxx …

1
สิทธิพิเศษที่จำเป็นสำหรับการใช้งานฟังก์ชั่นทริกเกอร์ใน PostgreSQL 8.4 มีอะไรบ้าง?
สิทธิพิเศษที่จำเป็นสำหรับการใช้งานฟังก์ชั่นทริกเกอร์ใน PostgreSQL 8.4 มีอะไรบ้าง? ดูเหมือนว่าสิทธิพิเศษที่กำหนดให้กับบทบาทนั้นไม่สำคัญสำหรับการเรียกใช้ฟังก์ชันทริกเกอร์ ฉันคิดว่าฉันได้เห็นบางวันว่าสิทธิ์ที่จำเป็นในการเรียกใช้ฟังก์ชันทริกเกอร์เป็นสิทธิ์ดำเนินการ แต่สำหรับเจ้าของตารางไม่ใช่บทบาทจริงที่ดำเนินการแอ็คชั่นซึ่งยิงทริกเกอร์ที่เรียกฟังก์ชันทริกเกอร์ ฉันไม่พบส่วนเอกสารที่อธิบายจุดนั้นมีความช่วยเหลืออะไรบ้าง?

1
ฉันจะรับผลรวมของฟังก์ชันหน้าต่างใน Postgres ได้อย่างไร
ฉันมีตารางที่มีสองคอลัมน์ของพีชคณิต / การรวมกันของอาร์เรย์จำนวนเต็มและคอลัมน์ที่สามที่มีค่าเช่น: CREATE TABLE foo ( perm integer[] NOT NULL, combo integer[] NOT NULL, value numeric NOT NULL DEFAULT 0 ); INSERT INTO foo VALUES ( '{3,1,2}', '{1,2,3}', '1.1400' ), ( '{3,1,2}', '{1,2,3}', '0' ), ( '{3,1,2}', '{1,2,3}', '1.2680' ), ( '{3,1,2}', '{1,2,3}', '0' ), ( '{3,1,2}', '{1,2,3}', '1.2680' …

1
ฉันจะขอบันทึกรายการธุรกรรม postgresql ได้อย่างไร
ฉันมีปัญหาดังต่อไปนี้: การแจกจ่าย Linux "แนวตั้ง" (Sophos UMT) มาพร้อมกับ PostgreSQL 9.2 เพื่อจัดเก็บการกำหนดค่า น่าเสียดายเนื่องจากการอัปเดตครั้งล่าสุดดูเหมือนว่าทรานแซกชันบันทึก (WAL) ของบางอินสแตนซ์จะเพิ่มขึ้นโดยไม่ต้องล้างออก สิ่งนี้ทำให้โฟลเดอร์ pg_xlog โตขึ้นเป็นลำดับขนาดใหญ่กว่าโฟลเดอร์ฐาน ตอนนี้ฉันอยู่ในสถานการณ์ที่ละเอียดอ่อน: เนื่องจากการเติบโตของไฟล์ WAL ที่มากเกินไปดิสก์ของหนึ่งในเครื่องเหล่านี้ (VM) จะเต็มก่อนวันจันทร์ ฉันได้เปิดเคสการสนับสนุนกับผู้จำหน่ายแล้ว แต่จนถึงตอนนี้พวกเขาไม่ได้มีประโยชน์มาก (พวกเขาแนะนำให้เราสร้าง VM ใหม่ด้วยดิสก์ขนาดใหญ่) ฐานข้อมูลนี้ไม่ถูกสำรองเนื่องจากซอฟต์แวร์ทำการสำรองข้อมูลในลักษณะที่แตกต่างกัน (มีขั้นตอนการสำรองข้อมูลของตัวเองและส่งไฟล์สำรองทางอีเมล) และฉันคิดว่านี่เป็นสาเหตุที่ WAF เติบโตขึ้นอย่างมาก ฉันกลัวว่าฉันไม่ได้เป็นผู้เชี่ยวชาญของ PostgreSQL ดังนั้นจึงเป็นไปได้มากที่ฉันจะถามคำถามที่งี่เง่าหรือชัดเจน แต่ขั้นตอนในการร้องขอไฟล์ WAL จะถูกล้างออกเป็นอย่างไร เป็นการดีที่ฉันกำลังมองหาขั้นตอนที่จะทำให้ฉันสามารถล้างไฟล์ WAL เหล่านี้ในระบบที่มีปัญหาเพื่อซื้อเวลาให้เพียงพอเพื่อให้ผู้ขายออกการแก้ไขที่ดีกว่า แก้ไข : ตามที่ร้องขอนี่คือผลลัพธ์ของSELECT version();แบบสอบถาม: PostgreSQL 9.2.4 on i686-pc-linux-gnu, compiled …
11 postgresql 

1
Postgres: count (*) vs count (id)
ผมเห็นในเอกสารความแตกต่างระหว่างและcount(*) count(pk)ผมเคยใช้count(pk)(ที่pkเป็นSERIAL PRIMARY KEY) count(*)ไม่ทราบว่าเกี่ยวกับการดำรงอยู่ของ คำถามของฉันเกี่ยวกับการเพิ่มประสิทธิภาพภายในของ Postgres มันฉลาดพอที่จะรับได้หรือไม่ว่าSERIAL PRIMARY KEYจะมีอยู่ในทุกแถวและไม่ผิดและนับจำนวนแถวหรือจะตรวจสอบคำกริยาซ้ำซ้อนสำหรับแต่ละแถวหรือไม่ ฉันยอมรับว่านี่อาจเป็นการเพิ่มประสิทธิภาพที่ไม่มีจุดหมายมากเกินไป แต่ฉันแค่อยากรู้ ผมเอามาดูที่การส่งออกของได้EXPLAINและEXPLAIN VERBOSEสำหรับcount(*), count(id)และcount(id > 50)เพื่อดูว่าEXPLAINกล่าวถึงการตรวจสอบภาคในการส่งออกของตน มันไม่ได้

2
อัลกอริทึมสำหรับการค้นหาคำนำหน้าที่ยาวที่สุด
ฉันมีสองตาราง สิ่งแรกคือตารางที่มีคำนำหน้า code name price 343 ek1 10 3435 nt 4 3432 ek2 2 ประการที่สองคือบันทึกการโทรพร้อมหมายเลขโทรศัพท์ number time 834353212 10 834321242 20 834312345 30 ฉันต้องการเขียนสคริปต์ที่ค้นหาคำนำหน้าที่ยาวที่สุดจากคำนำหน้าสำหรับแต่ละระเบียนและเขียนข้อมูลทั้งหมดนี้ไปยังตารางที่สามเช่นนี้ number code .... 834353212 3435 834321242 3432 834312345 343 สำหรับหมายเลข 834353212 เราจะต้องตัด '8' แล้วหารหัสที่ยาวที่สุดจากตารางคำนำหน้า 3435 เราจะต้องวางแรก '8' และคำนำหน้าจะต้องอยู่ในจุดเริ่มต้น ฉันแก้ไขงานนี้เมื่อนานมาแล้วด้วยวิธีที่ไม่ดีมาก มันเป็นสคริปต์ Perl ที่แย่มากซึ่งทำแบบสอบถามจำนวนมากสำหรับแต่ละเร็กคอร์ด สคริปต์นี้: ใช้หมายเลขจากตารางการโทรทำสตริงย่อยจากความยาว (หมายเลข) ถึง …

1
ข้อผิดพลาด: ฟังก์ชัน set_valued เรียกในบริบทที่ไม่สามารถยอมรับชุดได้ มันเกี่ยวกับอะไร?
ฉันใช้ Postgresql 9.1 กับ Ubuntu 12.04 ได้รับแรงบันดาลใจจากคำตอบของ Craig ต่อคำถามของฉันการเรียง setof หรือ setof recordฉันคิดว่าฉันจะใช้return queryงานได้setof recordดีและเป็นตัวสร้างซีรีส์ในฟังก์ชั่น plpgsql นี้: create or replace function compute_all_pair_by_craig(id_obj bigint) returns setof record as $$ begin return query select o.id, generate_series(0,o.value) from m_obj as o; end; $$ language plpgsql; ในระหว่างการดำเนินการฉันได้รับข้อผิดพลาด: ERROR: set_valued function called in context that …

1
PostgreSQL pg_stat_activity แสดง COMMIT
เมื่อเร็ว ๆ นี้เราได้เปลี่ยนเซิร์ฟเวอร์ฐานข้อมูลของเราด้วยเครื่องที่อัพเกรดด้วยซีพียูแกน 4 x Quad และ RAM ขนาด 32Gb นอกจากนี้เรายัง repurposed กล่องเก่าของเราเพื่อใช้เป็นทาสกับการจำลองแบบการสตรีม กล่องทั้งสองกำลังเรียกใช้ CentOS 6.3 และ PostgreSQL 9.2 Postgres เป็นสิ่งเดียวที่ทำงานในแต่ละกล่อง การกำหนดค่านี้อยู่ในสถานที่ประมาณหนึ่งเดือนหรือมากกว่านั้นเมื่อเราเริ่มพบปัญหาบางอย่างเมื่อปริมาณการใช้งานเริ่มเพิ่มขึ้น สิ่งที่เราเริ่มเห็นคือโหลด CPU สูงมากในบางครั้ง (ด้านบนแสดงค่าเฉลี่ยการโหลดของ 270) และเมื่อเราสามารถดูpg_stat_activityเราจะเห็นว่าการเชื่อมต่อส่วนใหญ่ของเราอยู่ในCOMMITสถานะ เมื่อเหลือคนเดียวสิ่งนี้จะเสร็จสิ้นในที่สุดและระบบจะตอบสนองต่อการเชื่อมต่อที่IDLEเพิ่มขึ้น เราได้ลองปิดการใช้งานการจำลองแบบเพื่อดูว่าอาจเป็นปัญหาหรือไม่ แต่ปัญหายังคงมีอยู่ เราได้ลองวินิจฉัยว่าเกิดอะไรขึ้นและหายไปเล็กน้อย ผลลัพธ์จากการวิ่งperfแสดงบางอย่างที่คล้ายกับด้านล่างและฉันไม่รู้ว่ามัน0x347ba9หมายถึงอะไร + 41.40% 48154 postmaster 0x347ba9 f 0x347ba9 ◆ + 9.55% 10956 postmaster 0x2dc820 f set_config_option ▒ + …
11 postgresql 

2
วิธีรันเวอร์ชันเฉพาะ (8.4, 9.1) ของคำสั่ง postgresql pg_ * (เช่น pg_dump)
ฉันติดตั้ง Postgresql เวอร์ชัน 8.4 และ 9.1 แล้ว สำหรับคำสั่ง Postgresql ที่ได้รับฉันจะระบุเวอร์ชันเฉพาะของคำสั่งที่จะรันได้อย่างไร (เช่นpsql, pg_dump, pg_ctlcluster, pg_restore, ... ) คำถามของฉันมีแรงจูงใจโดยต้องการทำ pg_dump เพื่อเตรียมการอัปเกรดจาก 8.4 เป็น 9.1 และฉันต้องการทราบว่าฉันใช้ pg_dump รุ่นใด ฉันทำงานบน Ubuntu 10.04 Natty

2
PostgreSQL สำหรับธุรกรรมปริมาณมากและคลังข้อมูล
ค่อนข้างใหม่สำหรับ PostgreSQL ฉันไม่เคยใช้งานขนาดใหญ่มาก่อน แต่ฉันมีประสบการณ์ที่ดีในโซลูชันระดับองค์กรและฉันต้องการลองใช้สิ่งที่ฉันเรียนรู้โดยใช้ PostgreSQL ฉันมีเว็บไซต์ที่มีขนาดใหญ่พอที่จะรองรับข้อมูลและปริมาณข้อมูลจำนวนมาก โครงสร้างพื้นฐานจะถูกสร้างโดยใช้บน amazon (AWS) โดยใช้อินสแตนซ์ของ EC2 และ EBS การออกแบบควรมีสองฐานข้อมูลฐานข้อมูลธุรกรรมหลักและคลังข้อมูลเพื่อจัดการการวิเคราะห์และการรายงาน ฐานข้อมูลธุรกรรมหลัก จะถูกใช้สำหรับเว็บไซต์สดเว็บไซต์นี้สร้างขึ้นบนหลายโหนดเพื่อขยายขนาดผู้ใช้พร้อมกัน ส่วนใหญ่เราต้องการฐานข้อมูลสำหรับกรณีนี้ที่จะรวดเร็วในการดำเนินการอ่านเราคาดว่า> ข้อมูล 100GB กับการเติบโต 30% ต่อปี ณ จุดนี้เราวางแผนที่จะใช้เซิร์ฟเวอร์ EC2 สองเครื่อง ( และเพิ่มในภายหลังตามที่เราต้องการ ) คำถามของฉันการตั้งค่าที่แนะนำสำหรับข้อกำหนดข้างต้นคืออะไร นอกจากนี้มีวิธีจัดการตารางและการแบ่งพาร์ติชันของไดรฟ์ข้อมูลหรือไม่? มีคำแนะนำสำหรับการใช้การตั้งค่า AWS หรือไม่ ฐานข้อมูลคลังข้อมูล ส่วนใหญ่จะใช้สำหรับการจับข้อมูลทั้งหมดจากฐานข้อมูลธุรกรรมหลักในมิติเวลา ดังนั้นแม้ลบบันทึกจากฐานข้อมูลหลักจะถูกจับใน DWH ดังนั้นข้อมูลจะมีขนาดใหญ่มากและการเติบโตจะยิ่งใหญ่ขึ้น นอกจากนี้เรายังจะใช้อินสแตนซ์คู่ EC2 ขึ้นไปหากต้องการ การตั้งค่าที่แนะนำในกรณีนี้คืออะไร? สิ่งนี้จะต้องใช้การเขียนที่รวดเร็วเนื่องจากการเขียนคงที่ (ETL) เราสามารถสร้าง OLAP คิวบ์ใน PostgreSQL ได้ไหม? …

2
โหลดบาลานเซอร์กับการรวมการเชื่อมต่อ - มีความแตกต่างหรือไม่?
ฉันกำลังทำงานในโครงการที่คาดว่าจะให้บริการผู้ใช้หลายล้านคนหลังจากเปิดตัวไม่นาน ฐานข้อมูลเป็น postgres และตอนนี้ฉันสมมติว่าต้องมีเซิร์ฟเวอร์อย่างน้อยสองตัว ผู้ดูแลระบบ sys (ซึ่งมีความเชี่ยวชาญในระบบที่ปรับขนาดได้อย่างชัดเจน) ได้แนะนำให้วาง load balancer ไว้ระหว่างเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ฐานข้อมูล คำถามของฉันเกี่ยวกับความแตกต่างของการทำโหลดบาลานซ์กับการรวมการเชื่อมต่อ เพื่อรักษาประสิทธิภาพฉันควรจะดูที่หนึ่งหรืออื่น ๆ หรือทั้งสองอย่าง?
11 postgresql 

3
คอลัมน์“ ชื่อ” เวทมนต์มาจากไหน?
ฉันได้รับสิ่งนี้โดยไม่ได้ตั้งใจ: db=> select name from site; ERROR: column "name" does not exist LINE 1: select name from site; ^ db=> select site.name from site; name --------------- (1,mysitename) (1 row) เคียวรีที่สองส่งคืน tuple ที่มีทั้งแถว ใช้ postgres 9.0.1 แก้ไข: คำจำกัดความของเว็บไซต์ตามคำขอ ฉันไม่สำคัญเลย, เรื่องแปลกประหลาดนี้ใช้ได้กับทุกโต๊ะ db=> \d site Table "public.site" Column | Type | Modifiers --------+---------+--------------------------------------------------- …

5
เครื่องมือในการโยกย้ายจาก SQLite ไปยัง PostgreSQL
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันต้องย้ายอย่างต่อเนื่องจาก SQLite ไปยัง PostgreSQL อย่างต่อเนื่องฉันหมายความว่าฉันจะนำเข้าฐานข้อมูล SQLite ไปยัง PostgreSQL ทุกวัน มันจะดีถ้าฉันสามารถเปลี่ยนแปลงตารางใน SQLite ตามที่ฉันต้องการได้โดยไม่ต้องทำการเปลี่ยนแปลงใด ๆ กับฐานข้อมูล PostgreSQL ด้วยตนเอง ฉันจะเรียกใช้การย้ายข้อมูลจาก Python แต่อาจเป็นเครื่องมือภายนอกที่สามารถควบคุมได้จากบรรทัดคำสั่ง เครื่องมือนี้ต้องพร้อมใช้งานสำหรับ Linux และมันก็ดีถ้ามันทำงานบน Windows ด้วย

1
BLOB หรือการอ้างอิงใน PostgreSQL
ฉันต้องการจัดเก็บไฟล์ข้อมูลไบนารีในฐานข้อมูล PostgreSQL ซึ่งทำงานบนเซิร์ฟเวอร์ Ubuntu ตอนแรกจะมีไฟล์ขนาดไม่กี่โหลประมาณ 250kb ต่อไฟล์ อย่างไรก็ตามจำนวนไฟล์จะเพิ่มขึ้นเมื่อเวลาผ่านไป บางครั้งฉันอาจจำเป็นต้องดึงข้อมูลจากไฟล์สำหรับการวิเคราะห์ดาวน์สตรีมอื่น ๆ ฉันได้ทำการวิจัยบางอย่างเกี่ยวกับคำถามอายุของการจัดเก็บข้อมูลไบนารีเป็น BLOB หรือการอ้างอิง ทั้งสองเห็นได้ชัดว่ามีข้อดีและข้อเสีย มีปัญหาเฉพาะที่เกี่ยวข้องกับ PostgreSQL ที่ฉันควรทราบหรือไม่? เป็นวิธีหนึ่งหรือวิธีที่ดีกว่าถ้าฉันต้องการดึงข้อมูลจากไฟล์ทั้งผ่านฟังก์ชั่น PostgreSQL หรือผ่านโปรแกรม Python ภายนอก? ถ้าฉันจะจัดเก็บไฟล์ข้อมูลโดยตรงในฐานข้อมูลมันจะดีกว่าหรือไม่ที่จะเก็บไว้ในตารางที่แยกต่างหากพร้อมกับคีย์ต่างประเทศที่อ้างอิงถึงตาราง "main" แทนที่จะเป็นตารางที่มีฟิลด์อื่นทั้งหมด ฉันได้อ่านคำถามและคำตอบที่นี่ ; ความคิดเห็นมีแสดงให้เห็นว่าการจัดเก็บไฟล์ไบนารีโดยอ้างอิง (ในระบบไฟล์) บน Linux จะดีกว่า คำถามของฉันเกี่ยวข้องกับ PostgreSQL โดยเฉพาะและเพื่อดึงข้อมูลจากไฟล์สำหรับการวิเคราะห์ที่หลากหลาย อัปเดต: คล้ายคำถาม
11 postgresql 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.