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

PostgreSQL เวอร์ชั่น 9.1


5
ให้สิทธิ์การเข้าถึงตารางทั้งหมดสำหรับผู้ใช้
ฉันใหม่สำหรับ Postgres และพยายามย้ายฐานข้อมูล MySQL ของเราไป ใน MySQL ฉันสามารถให้สิทธิ์SELECT, UPDATE, INSERTและDELETEสิทธิพิเศษในการใช้สิทธิพิเศษต่ำและเปิดใช้ทุนเหล่านั้นเพื่อนำไปใช้กับตารางทั้งหมดในฐานข้อมูลที่ระบุ ฉันต้องหายไปบางอย่างใน Postgres เพราะดูเหมือนว่าฉันต้องให้สิทธิ์เหล่านั้นสำหรับแต่ละตารางทีละครั้ง ด้วยฐานข้อมูลจำนวนมากและหลายร้อยตารางต่อฐานข้อมูลที่ดูเหมือนว่าเป็นงานที่น่ากลัวเพียงเพื่อออกจากพื้นดิน นอกจากนี้เมื่อฐานข้อมูลทำงานอยู่การเพิ่มตารางเกิดขึ้นบ่อยครั้งพอที่ฉันไม่ต้องการให้สิทธิ์ในแต่ละครั้งเว้นแต่จะจำเป็นจริงๆ สิ่งนี้สำเร็จได้ดีที่สุดอย่างไร

4
การเพิ่มประสิทธิภาพการสืบค้นในช่วงเวลาที่ประทับ (สองคอลัมน์)
ฉันใช้ PostgreSQL 9.1 บน Ubuntu 12.04 ฉันต้องเลือกระเบียนภายในช่วงเวลาหนึ่ง: ตารางของฉันtime_limitsมีสองtimestampฟิลด์และหนึ่งintegerคุณสมบัติ มีคอลัมน์เพิ่มเติมในตารางจริงของฉันที่ไม่เกี่ยวข้องกับแบบสอบถามนี้ create table ( start_date_time timestamp, end_date_time timestamp, id_phi integer, primary key(start_date_time, end_date_time,id_phi); ตารางนี้มีเร็กคอร์ด 2M โดยประมาณ ข้อความค้นหาต่อไปนี้ใช้เวลามหาศาล select * from time_limits as t where t.id_phi=0 and t.start_date_time <= timestamp'2010-08-08 00:00:00' and t.end_date_time >= timestamp'2010-08-08 00:05:00'; ดังนั้นฉันจึงพยายามเพิ่มดัชนีอื่น - ค่าผกผันของ PK: create index idx_inversed …

3
ฉันจะแทรกแถวซึ่งมีรหัสต่างประเทศได้อย่างไร
ใช้ PostgreSQL v9.1 ฉันมีตารางต่อไปนี้: CREATE TABLE foo ( id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY, type VARCHAR(60) NOT NULL UNIQUE ); CREATE TABLE bar ( id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY, description VARCHAR(40) NOT NULL UNIQUE, foo_id BIGINT NOT NULL REFERENCES foo ON DELETE RESTRICT ); สมมติว่าตารางแรกfooมีข้อมูลประชากรเช่นนี้: INSERT INTO …

3
ลบข้อกำหนดรหัสผ่านสำหรับผู้ใช้ postgres
ฉันเข้าใจว่าเมื่อติดตั้งแล้ว PostgreSQL ไม่มีรหัสผ่านสำหรับผู้ใช้รูท db (postgres): postgres=# select usename, passwd is null from pg_shadow; usename | ?column? ----------+---------- postgres | t (1 row) ... และควรตั้งด้วย: alter role postgres password '<<very-secret>>'; (แล้วอัปเดตpg_hba.confไฟล์ตาม) คำถามของฉันคือสิ่งที่เป็น SQL postgresเพื่อใช้ในการกลับไปสู่สถานการณ์ก่อนหน้านี้เมื่อรหัสผ่านไม่ถูกต้องสำหรับผู้ใช้ โดยทั่วไปฉันจะลบข้อกำหนดรหัสผ่านสำหรับบทบาทใด ๆ ได้อย่างไร ฉันไม่ได้ถามวิธีเปลี่ยนรหัสผ่าน แต่ต้องการลบข้อกำหนดรหัสผ่าน ( passwdคอลัมน์ว่างในตารางpg_shadow)

5
วิธีแสดงรายการมุมมองทั้งหมดใน SQL ใน PostgreSQL
ฉันจะแสดงรายการมุมมองทั้งหมดสำหรับฐานข้อมูลโดยใช้คำสั่ง SQL ใน PostgreSQL ได้อย่างไร ฉันต้องการบางสิ่งที่คล้ายกับเอาต์พุตของ\dvคำสั่งpsql แต่ควรเป็นเพียงแค่รายการของชื่อมุมมอง เช่น, SELECT ...; my_view_1 my_view_2 my_view_3 ฉันใช้ PostgreSQL v9.1.4 บน Ubuntu Linux

2
การกำหนดค่า PostgreSQL สำหรับประสิทธิภาพการอ่าน
ระบบของเราเขียนข้อมูลจำนวนมาก (ระบบ Big Data) ประสิทธิภาพการเขียนดีพอสำหรับความต้องการของเรา แต่ประสิทธิภาพการอ่านช้าเกินไป โครงสร้างคีย์หลัก (ข้อ จำกัด ) มีความคล้ายคลึงกับตารางทั้งหมดของเรา: timestamp(Timestamp) ; index(smallint) ; key(integer). ตารางสามารถมีได้หลายล้านแถวแม้กระทั่งหลายพันล้านแถวและการร้องขอการอ่านมักจะเป็นช่วงเวลาที่ระบุ (การประทับเวลา / ดัชนี) และแท็ก เป็นเรื่องปกติที่มีข้อความค้นหาที่ส่งกลับประมาณ 200k บรรทัด ขณะนี้เราสามารถอ่านประมาณ 15k บรรทัดต่อวินาที แต่เราต้องเร็วขึ้น 10 เท่า เป็นไปได้และถ้าเป็นเช่นนั้นได้อย่างไร หมายเหตุ: PostgreSQL นั้นมาพร้อมกับซอฟต์แวร์ของเราดังนั้นฮาร์ดแวร์จึงแตกต่างจากไคลเอนต์หนึ่งไปอีกไคลเอนต์หนึ่ง มันเป็น VM ที่ใช้สำหรับการทดสอบ โฮสต์ของ VM คือ Windows Server 2008 R2 x64 พร้อม RAM 24.0 GB ข้อมูลจำเพาะเซิร์ฟเวอร์ …

1
จะดูการตั้งค่าปัจจุบันของ Autovacuum ใน Postgres ได้อย่างไร?
ฉันพบตัวอย่างหนึ่งล้านตัวอย่างของวิธีตั้งค่าการตั้งค่าของ Autovacuum แต่ดูเหมือนจะไม่พบวิธีแสดงรายการการกำหนดค่าปัจจุบัน Postgres 9.1 เป็นรุ่นที่ฉันสนใจมากที่สุด

3
ลืมรหัสผ่าน PostgreSQL Windows
เช้านี้ฉันพยายามเชื่อมต่อฐานข้อมูล PostgreSQL บนเดสก์ท็อป Windows 7 Professional ของฉัน ค่าเริ่มต้นคือ 'postgres' แต่แน่นอนว่าฉันลืมรหัสผ่านที่ฉันใช้เมื่อติดตั้งครั้งแรก ฉัน googled และพบโพสต์ที่เกี่ยวข้องกับการรีเซ็ตรหัสผ่านของคุณ ฉันทำตามขั้นตอนต่าง ๆ แต่ผลลัพธ์ที่ได้นั้นแตกต่างจากที่กล่าวไว้ในโพสต์ ฉันใช้- net user postgres postgres เพื่อรีเซ็ตรหัสผ่านสำหรับฐานข้อมูลของฉัน แต่แทนที่จะเป็นข้อความแจ้งความสำเร็จที่ฉันได้รับ: "ข้อผิดพลาดระบบ 5 เกิดขึ้นการเข้าถึงถูกปฏิเสธ" ระบบผิดพลาด. ฉันจะหลีกเลี่ยงข้อผิดพลาดนี้และรีเซ็ตรหัสผ่านได้อย่างไร

3
อัปเกรดจาก postgres 9.1 เป็น 9.3 บนเซิร์ฟเวอร์ Ubuntu
ฉันมีเซิร์ฟเวอร์ที่ใช้งานจริงของฉัน (Ubuntu 13.10) ที่ทำงานกับ postgresql 9.1 ฉันต้องการใช้คุณสมบัติไม่กี่ข้อที่ 9.3 ดังนั้นจึงต้องการอัพเกรด มีคนช่วยฉันอัปเกรดจาก 9.1 เป็น 9.3 เพื่อให้มีการหยุดทำงานไม่เกิน 30 นาที หรือไม่ก็? ความกังวลหลักคือการป้องกันการสูญเสียข้อมูลหรือความซ้ำซ้อนไฟล์

3
ฉันจะแสดงรายการตารางทั้งหมดใน schemas ทั้งหมดที่เป็นของผู้ใช้ปัจจุบันใน Postgresql ได้อย่างไร
ฉันสามารถแสดงรายการตารางทั้งหมดในแบบแผนทั้งหมดที่ใช้ > \dt *.* แต่นั่นยังแสดงรายการตารางระบบที่มีจำนวนมากกว่าตารางของฉันที่ฉันสนใจ ฉันต้องการตารางทั้งหมด (และอาจเป็นไปได้) ที่สร้างขึ้นโดยฉันในสคีมาสาธารณะและสคีมาใด ๆ ที่ฉันกำหนดไว้ ฉันหวังที่จะหาวิธีการทำเช่นนี้โดยไม่ต้องเพิ่ม schema ที่เส้นทางการค้นหาอย่างชัดเจนในขณะที่ฉันสร้างพวกเขาตามที่อธิบายไว้ที่นี่: /programming//a/12902069 แก้ไข: จากคำตอบที่ยอมรับฉันได้สร้างมุมมองต่อไปนี้: create view my_tables as select table_catalog, table_schema, table_name, table_type from information_schema.tables where table_schema not in ('pg_catalog', 'information_schema'); และตอนนี้คำสั่งต่อไปนี้ให้สิ่งที่ฉันต้องการ: select * from my_tables;

5
PostgreSQL: วิธีการสำรองข้อมูลเพียงหนึ่ง Schema จากฐานข้อมูลและเรียกคืนบนเซิร์ฟเวอร์อื่น
ฉันมีฐานข้อมูลชื่อ "A" ซึ่งมีสองสกีมา "B" และ "C" ต้องการสำรองและกู้คืน Schema "B" บนเซิร์ฟเวอร์อื่นหรือไม่ ไม่แน่ใจว่าจะทำอย่างไรเมื่อฉันยังใหม่กับ Postgres ฉันต้องสร้าง DB ใหม่ในเซิร์ฟเวอร์ใหม่เป็นชื่อ "A" แล้วเรียกคืน Schema "B" ในนั้น กรุณาช่วยด้วยคำสั่ง --- ข้อมูลจากความคิดเห็นต่อคำตอบของปีเตอร์: ฉันต้องการสำรองและกู้คืนข้อมูล Schema "B" + ประการที่สองฉันลืมที่จะพูดถึงว่า Postgresql 9.1 ทำงานบน Ubuntu 12.04

3
การย้ายข้อมูล postgresql ไปยังไดรฟ์อื่น
ฉันใช้ AWS เป็นสภาพแวดล้อมคลาวด์ของฉัน ฉันติดตั้ง PostgreSQL บนไดรฟ์เดียวกันกับไดรฟ์ข้อมูลอินสแตนซ์รูทของฉัน ฉันได้แนบและติดตั้งไดรฟ์ที่สองกับอินสแตนซ์ของฉัน ตอนนี้ฉันต้องการย้ายข้อมูล PostgreSQL ทั้งหมดไปยังไดรฟ์อื่น ฉันยังอยู่ในโหมดการพัฒนาดังนั้นฉันสามารถลบข้อมูลเก่าได้ถ้ามันทำให้การถ่ายโอนง่ายขึ้น ณ จุดนี้ วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? PostgreSQL tablespace เป็นสิ่งที่ฉันควรดูหรือไม่

2
ปิดใช้งานข้อ จำกัด และการตรวจสอบตารางทั้งหมดขณะที่กู้คืนดัมพ์
ฉันได้รับดัมพ์ของฐานข้อมูล PostgreSQL ของฉันด้วย: pg_dump -U user-name -d db-name -f dumpfile ซึ่งฉันแล้วดำเนินการคืนค่าในฐานข้อมูลอื่นด้วย: psql X -U postgres -d db-name-b -f dumpfile ปัญหาของฉันคือฐานข้อมูลมีข้อ จำกัด การอ้างอิงการตรวจสอบและทริกเกอร์และข้อผิดพลาดบางอย่าง (การตรวจสอบโดยเฉพาะอย่างยิ่งดูเหมือนจะเกิดขึ้น) ในระหว่างการกู้คืนเนื่องจากข้อมูลไม่ถูกโหลดตามลำดับที่จะทำให้การตรวจสอบเหล่านั้นได้รับเกียรติ ยกตัวอย่างเช่นการแทรกแถวในตารางอาจจะเกี่ยวข้องกับการCHECKที่เรียกplpgsqlฟังก์ชั่นที่ตรวจสอบไม่ว่าจะเป็นสภาพที่ถือในตารางที่ไม่เกี่ยวข้องอื่น ๆ หากตารางหลังนั้นไม่โหลดpsqlก่อนก่อนจะเกิดข้อผิดพลาด ต่อไปนี้เป็น SSCCE ที่สร้างฐานข้อมูลดังกล่าวซึ่งเมื่อทิ้งด้วยpg_dumpไม่สามารถกู้คืนได้: CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE …

1
โซลูชันฐานข้อมูลเก็บถาวร
ในการต่อเนื่องกับคำถามที่โพสต์โดยฉันบนมันเป็นความคิดที่ดีที่จะย้ายตารางปริมาณสูงและเข้าถึงอย่างสูงไปยังฐานข้อมูลแยกต่างหากหรือไม่ กำลังมองหาเทคนิค / โซลูชันที่แตกต่างกันสำหรับการเก็บฐานข้อมูลใน PostgreSQL วิธีแก้ปัญหาเล็กน้อยที่ฉันนึกได้คือ: การแบ่งตาราง คั่นพื้นที่ตารางและ / หรือสคีมา การย้ายระเบียน / ตารางที่เก็บถาวรไปยังฮาร์ดดิสก์อื่น คำแนะนำ / คำแนะนำ / คำแนะนำอื่น ๆ ยินดีต้อนรับและชื่นชมจริงๆ หมายเหตุ:เรากำลังเรียกใช้ PostgreSQL v9.1.3 บน CentOS5.2

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