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

PostgreSQL เป็นระบบฐานข้อมูลเชิงสัมพันธ์เชิงวัตถุแบบโอเพนซอร์สที่ทรงพลัง มีการพัฒนาอย่างต่อเนื่องมากกว่า 15 ปีและสถาปัตยกรรมที่ได้รับการพิสูจน์แล้วซึ่งได้รับชื่อเสียงในด้านความน่าเชื่อถือความสมบูรณ์ของข้อมูลและความถูกต้อง มันทำงานบนระบบปฏิบัติการหลักทั้งหมดรวมถึง Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) และ Windows

3
I / O มากเกินไปที่สร้างขึ้นโดยกระบวนการตัวรวบรวมสถานะของ postgres
ฉันใช้ XenServer กับเครื่องเสมือนหลายเครื่องที่มีฐานข้อมูลท้องถิ่น postgres แม้ว่าแอปพลิเคชันทั้งหมดจะไม่ได้ใช้งานและฐานข้อมูลไม่ได้ใช้งาน แต่ vm แต่ละตัวจะก่อให้เกิดทราฟฟิกเครือข่ายการจัดเก็บข้อมูลคงที่ซึ่งลดประสิทธิภาพของอุปกรณ์เก็บข้อมูล iscsi หลังจากทำงานiotopฉันได้สังเกตเห็นว่ากระบวนการประมวลผลตัวรวบรวมสถานะ postgres กำลังเขียนลงดิสก์อย่างต่อเนื่องในอัตราประมาณ 2 MByte / s ฉันปิดการรวบรวมสถิติโดยการแก้ไข/etc/postgresql/8.4/main/postgresql.conf: #------------------------------------------------------------------------------ # RUNTIME STATISTICS #------------------------------------------------------------------------------ # - Query/Index Statistics Collector - track_activities = off track_counts = off ... ตามข้อเสนอแนะในhttp://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm สิ่งนี้ตัดการเขียนอย่างต่อเนื่อง แต่มีข้อเสียใด ๆ ที่ปิดการติดตามสถิติหรือไม่ หรือฉันควรวางไดเรกทอรี pg_stat_tmp บน ramdisk เพื่อหลีกเลี่ยงการรับส่งข้อมูลดิสก์ / เครือข่าย ระบบนี้เป็นเวอร์ชันเดเบียนที่ทันสมัย ​​6.0.7 (บีบ) …

4
PostgreSQL ปรับขนาด 64 คอร์หรือไม่
ในบทความ Computer World นี้ระบุว่า PostgreSQL สามารถขยายได้ถึงขีด จำกัด หลักที่ 64 สิ่งนี้หมายความว่าสำหรับตัวประมวลผลแบบมัลติคอร์หนึ่งคอร์ 64 คอร์หรือไม่? หรือโปรเซสเซอร์หลายตัวที่มีคอร์น้อยลง? เหตุผลที่ฉันถามคือเพราะฉันพยายามค้นหาจำนวนโปรเซสเซอร์ PostgreSQL อาจขยายขนาด แต่แน่นอนว่าอาจถูก จำกัด ประเภทของโปรเซสเซอร์ อย่างไรก็ตามฉันได้ค้นหาสถิติอื่น ๆ ในฐานข้อมูลอื่น (เช่น Microsoft SQL Server ที่นี่ซึ่งระบุว่าสามารถเพิ่มขนาดตัวประมวลผลเชิงตรรกะได้ถึง 320 ตัว) และพวกเขาไม่ได้ระบุจำนวนคอร์ นี่เป็นสถิติที่คลุมเครือหรือไม่ ความคิดใด ๆ ที่จะได้รับการชื่นชมมาก ขอบคุณ!

5
ไม่สามารถเข้าสู่ phpPgAdmin
ฉันกำลังพยายามตั้งค่า phpPgAdmin บนเครื่องทดสอบของฉันเพื่อให้สามารถเชื่อมต่อกับ PostgreSQL ได้โดยไม่ต้องใช้psqlCLI ฉันติดตั้ง PostgreSQL 9.1 ผ่านที่เก็บ RPM แล้วในขณะที่ฉันติดตั้ง phpPgAdmin 5.0.4 "ด้วยตนเอง" (โดยการแยกไฟล์เก็บถาวรออกจากเว็บไซต์ phpPgAdmin) สำหรับบันทึกระบบปฏิบัติการโฮสต์ของฉันคือ CentOS 6.2 ฉันทำการเปลี่ยนแปลงการกำหนดค่าต่อไปนี้แล้ว: PostgreSQL ข้างในpg_hba.confฉันเปลี่ยนทั้งหมดMETHODเป็น md5 ฉันให้รหัสผ่านบัญชี postgres ฉันเพิ่มบัญชีใหม่ชื่อ webuser ด้วยรหัสผ่าน (โปรดทราบว่าฉันไม่ได้ทำสิ่งใดกับบัญชีดังนั้นฉันจึงไม่สามารถพูดได้อย่างแน่นอนว่าฉันรู้ว่ามีสิทธิ์ใดบ้างและทั้งหมด) phpPgAdmin config.inc.php เปลี่ยนบรรทัด$conf['servers'][0]['host'] = '';เป็น$conf['servers'][0]['host'] = '127.0.0.1';(ฉันได้ลองใช้ localhost เป็นค่าที่นั่น) ตั้งค่าการ$conf['extra_login_security']false เมื่อใดก็ตามที่ฉันพยายามเข้าสู่ phpPgAdmin ฉันจะได้รับ "การเข้าสู่ระบบล้มเหลว" แม้ว่าฉันจะใช้ข้อมูลประจำตัวที่ประสบความสำเร็จ (คนที่ทำงานในpsql) ฉันได้ลองทำตามขั้นตอนบางอย่างที่ระบุไว้ในคำถาม 3 ในคำถามที่พบบ่อยแต่มันยังไม่ได้ผลเท่าที่ควร มันไม่น่าจะช่วยได้ว่านี่เป็นวันแรกที่ฉันทำงานกับ PostgreSQL …

1
จะใช้คำสั่งสถานะที่กำหนดเองสำหรับบริการในหุ่นเชิดได้อย่างไร?
ฉันใช้เดเบียนบีบกับ PostgreSQL 9.1 จาก backports Puppet มีเวอร์ชั่น 2.7.14 น่าเสียดายที่สคริปต์เริ่มต้นส่งคืนรหัสออกที่ผิดสำหรับสถานะ ดังนั้นฉันจึงเขียนstatusคำสั่งที่กำหนดเองเพื่อตรวจสอบว่า postgresql กำลังทำงานอยู่หรือไม่ service { 'postgresql': ensure => running, enable => true, hasstatus => false, hasrestart => true, status => "pg_lsclusters -h | awk 'BEGIN {rc=0} {if ($4 != \"online\") rc=3} END { exit rc }'", provider => debian, } คำสั่งของฉันทำงานเหมือนเครื่องราง …

2
ไม่สามารถเชื่อมต่อกับ Postgres บน Vagrant Box - การเชื่อมต่อถูกปฏิเสธ?
ก่อนอื่นฉันยังใหม่กับ Vagrant และ Postgres ฉันสร้างอินสแตนซ์ Vagrant ของฉันโดยใช้http://files.vagrantup.com/lucid32.boxโดยไม่มีปัญหา ฉันสามารถเรียกใช้vagrant upและvagrant sshไม่มีปัญหา ฉันทำตามคำแนะนำด้วยการเปลี่ยนแปลงเล็กน้อยฉันติดตั้งแพ็คเกจ "postgresql-8.4-postgis" แทน "postgresql postgresql-contrib" ฉันเริ่มเซิร์ฟเวอร์โดยใช้: postgres@lucid32:/home/vagrant$ /etc/init.d/postgresql-8.4 start ในขณะที่เชื่อมต่อกับอินสแตนซ์คนพเนจรฉันสามารถใช้psqlเพื่อเชื่อมต่อกับอินสแตนซ์โดยไม่มีปัญหา ใน Vagrantfile ของฉันฉันได้เพิ่ม: config.vm.forward_port 5432, 5432 แต่เมื่อฉันพยายามเรียกใช้ psql จาก localhost ฉันจะได้รับ: psql: could not connect to server: Connection refused Is the server running locally and accepting connections on Unix domain …

3
IO ช้ามากพร้อม PostgreSQL แบบง่าย 8.4.4 ข้อความค้นหาบน Centos 5.5
รูปแบบ IO ที่แปลกและช้ามากที่ฉันเห็นคือ (ผลลัพธ์จากiostat -dxk 1 /dev/xvdb1): Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util xvdb1 0.00 0.00 0.99 0.99 7.92 3.96 12.00 1.96 2206.00 502.00 99.41 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util xvdb1 0.00 0.00 0.00 0.00 0.00 0.00 …

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

4
แก้ไข Control-C ในโปรแกรมบรรทัดคำสั่ง mysql หรือไม่
ในmysqlบรรทัดคำสั่งการกดControl-Cจะยกเลิกโปรแกรมและนำคุณกลับสู่การทุบตี ในpsqlหนึ่งสำหรับ postgres มันจะฆ่าแบบสอบถามปัจจุบันและจะไม่หยุดโปรแกรม psql มีวิธีใดบ้างที่จะใช้ลักษณะการทำงานของ psql Control-Cในโปรแกรม mysql? ฉันพบตัวเองกดControl-Cนิสัยและต้องกลับเข้าสู่ mysql Control Cไม่ฆ่าทุบตีและออกจากระบบเมื่อคุณกด ซึ่งฉันคิดว่าเป็นสิ่งที่ดี Control-Cหมายถึง 'หยุดสิ่งที่คุณทำ'

1
จะมั่นใจได้อย่างไรว่าบริการกำลังทำงานโดยใช้เชฟ
ฉันอยู่ในสถานการณ์ที่เชฟอาจเริ่มให้บริการ (postgres) แต่ในภายหลังอาจหยุดสายนอก ฉันต้องการให้พ่อครัวคนต่อไปทำงานเพื่อให้บริการทำงาน ฉันได้ลองสิ่งนี้แล้ว: service "postgresql" do action :start end แต่มันไม่มีผลใด ๆ การพูดอย่าง(up to date)น่าจะเป็นเพราะเชฟรู้ว่ามันเริ่มแล้วและไม่สามารถบอกได้ว่ามันหยุดแล้ว (อาจเป็นเพราะservice ... statusพฤติกรรมการใช้บริการนี้ได้อย่างไร) ถ้าฉันเขียนสิ่งนี้: # anti-pattern warning! execute "force-start-postgresql" do command "service postgresql start || /etc/init.d/postgresql start" action :run end ฉันได้รับพฤติกรรมที่ต้องการ ยังaction :restartทำให้มันทำงาน อย่างไรก็ตามสิ่งเหล่านี้ดูเหมือนจะเป็นรูปแบบการต่อต้านเนื่องจากการพกพา (และอาจหยุดมันก่อนที่จะเริ่มอีกครั้งในกรณีหลัง) ดังนั้นฉันจะบอกเชฟให้บังคับใช้บริการได้อย่างไรแม้ว่ามันจะคิดว่ามันกำลังทำงานอยู่แล้ว นี่คือการใช้ Chef 11.6 โฮสต์โดย OpsCode และสูตร postgresql เริ่มต้น …

3
อธิบายด้วยคำแนะนำดัชนี
มีซอฟต์แวร์ (โอเพ่นซอร์สเด่นกว่า) มากกว่าที่จะวิเคราะห์ PostgreSQL EXPLAIN และแนะนำดัชนีที่จำเป็นที่จะช่วยเพิ่มความเร็วในการสืบค้นหรือไม่?
10 postgresql 

4
phpPg การส่งออกการถ่ายโอนข้อมูล SQL ว่างเปล่า?
ฉันกำลังพยายามส่งออกฐานข้อมูล PostgreSQL จาก phpPgAdmin และด้วยเหตุผลบางอย่างมันทิ้งไฟล์ SQL เปล่า ฐานข้อมูลไม่ว่างเปล่าอย่างแน่นอน เพื่อส่งออกฉันคลิกที่ฐานข้อมูลแล้วส่งออกจากนั้นเลือกโครงสร้างและข้อมูล ความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนี้? ขอบคุณ
10 postgresql 

1
ใช้ ZFS head node เป็นเซิร์ฟเวอร์ฐานข้อมูลหรือไม่
ฉันกำลังใช้ NAS แบบสองหัวที่ได้รับการสนับสนุนจาก ZFS สำหรับที่เก็บข้อมูลของคลัสเตอร์ที่มีความพร้อมใช้งานสูงโดยยึดตามสถาปัตยกรรมที่แนะนำของ Nexenta ดังที่เห็นที่นี่: ดิสก์ใน 1 JBOD จะเก็บไฟล์ฐานข้อมูลสำหรับฐานข้อมูล Postgres 4 TB เดียวและดิสก์ใน JBOD อื่นจะจัดเก็บไฟล์ไบนารีแฟล็กขนาดใหญ่ดิบขนาด 20 TB (ผลลัพธ์คลัสเตอร์สำหรับการจำลองการชนกันของวัตถุตัวเอกขนาดใหญ่) กล่าวอีกนัยหนึ่ง JBOD ที่สนับสนุนไฟล์ Postgres จะจัดการปริมาณงานแบบสุ่มส่วนใหญ่ในขณะที่ JBOD ที่สำรองข้อมูลผลลัพธ์การจำลองจะจัดการภาระงานแบบอนุกรมเป็นหลัก โหนดหัวทั้งสองมีหน่วยความจำ 256 GB และ 16 คอร์ คลัสเตอร์มีประมาณ 200 แกนแต่ละรักษาเซสชัน Postgres ดังนั้นฉันคาดว่าประมาณ 200 พร้อมกัน ฉันสงสัยว่ามันฉลาดในการตั้งค่าของฉันเพื่อให้โหนดหัว ZFS ทำงานพร้อมกันในฐานะเซิร์ฟเวอร์ฐานข้อมูล Postgres ที่ทำมิเรอร์สำหรับคลัสเตอร์ของฉันหรือไม่ ข้อเสียเปรียบเดียวที่ฉันเห็นคือ: ความยืดหยุ่นน้อยลงสำหรับการปรับขนาดโครงสร้างพื้นฐานของฉัน ระดับความซ้ำซ้อนลดลงเล็กน้อย ทรัพยากรหน่วยความจำและ CPU …

3
ฉันจะแก้ไขไฟล์. conf สำหรับ postgres AWS RDS ได้อย่างไร
ฉันต้องการแก้ไข pg_hba.conf ในอินสแตนซ์ RDS postgres ของฉันเพื่อให้ฉันสามารถใช้การรับรองความถูกต้องใบรับรอง ฉันพบผู้จัดการกลุ่มพารามิเตอร์ใน RDS ซึ่งทำให้ฉันสามารถแก้ไขพารามิเตอร์ได้ แต่มันอ้างอิงเส้นทางสำหรับ pg_hba.conf ดูเหมือนว่าฉันจะเปลี่ยน pg_hba.conf ไม่ได้

3
PostgreSQL ทำการคอมมิชชันช้า
เรากำลังประสบปัญหาบางอย่างกับการกำหนดค่า PostgreSQL หลังจากการวัดประสิทธิภาพบางอย่างฉันพบว่าการสืบค้นที่ง่ายมากใช้เวลาค่อนข้างนานเมื่อทำการตรวจสอบอย่างละเอียดยิ่งขึ้นดูเหมือนว่าคำสั่ง COMMIT ที่แท้จริงนั้นช้ามาก ฉันทดสอบง่ายมากโดยใช้ตารางต่อไปนี้: CREATE TABLE test ( id serial primary key, foo varchar(16), ); หลังจากเปิดการบันทึกในทุกงบฉันใช้แบบสอบถามต่อไปนี้ 10,000 ครั้ง: BEGIN; INSERT INTO test (a) VALUES ('bar'); COMMIT; BEGIN และ INSERT กำลังใช้เวลา <1 มิลลิวินาทีในการดำเนินการให้เสร็จสมบูรณ์ แต่ COMMIT ใช้เวลาเฉลี่ย 22 มิลลิวินาทีในการดำเนินการให้เสร็จสมบูรณ์ ใช้มาตรฐานเดียวกันบนพีซีของฉันเองซึ่งช้ากว่ามากทำให้ค่าเฉลี่ยเดียวกันสำหรับคำสั่ง BEGIN และ INSERT แต่ COMMIT เฉลี่ยอยู่ที่ประมาณ 0.4ms (เร็วกว่า 20 เท่า) …

3
Postmaster ใช้ CPU และ Disk Writes มากเกินไป
ใช้ PostgreSQL 9.1.2 ฉันเห็นการใช้งาน CPU มากเกินไปและมีการเขียนไปยังดิสก์จำนวนมากจากงานไปรษณีย์ สิ่งนี้เกิดขึ้นแม้ในขณะที่แอปพลิเคชันของฉันไม่ได้ทำอะไรเลย (เม็ดมีด 10 เม็ดต่อนาที) มีจำนวนการเชื่อมต่อที่เปิดอยู่อย่างไรก็ตาม ฉันพยายามระบุว่าอะไรในแอปพลิเคชันของฉันทำให้เกิดสิ่งนี้ ฉันค่อนข้างใหม่กับ postgresql และไม่ได้ไปไกลขนาดนี้ ฉันได้เปิดใช้งานตัวเลือกการบันทึกบางอย่างในไฟล์กำหนดค่าของฉันและดูการเชื่อมต่อในตาราง pg_stat_activity แต่ทั้งหมดไม่ได้ใช้งาน การเชื่อมต่อแต่ละครั้งใช้ CPU ประมาณ 50% และกำลังเขียน ~ 15M / s ไปยังดิสก์ (ไม่ต้องอ่านอะไรเลย) ฉันใช้พื้น postgresql.conf โดยทั่วไปแล้วมีการปรับแต่งเล็กน้อย ฉันขอขอบคุณคำแนะนำหรือคำแนะนำเกี่ยวกับสิ่งที่ฉันสามารถทำได้เพื่อติดตามเรื่องนี้ นี่คือตัวอย่างของสิ่งที่แสดงให้ฉันเห็น: Cpu(s): 18.9%us, 14.4%sy, 0.0%ni, 53.4%id, 11.8%wa, 0.0%hi, 1.5%si, 0.0%st Mem: 32865916k total, 7263720k used, 25602196k free, …

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