วิธีรีสตาร์ท Postgresql


109

ฉันติดตั้ง Postgresql 9.3 และ 9.4 บนเครื่อง Linux Mint แล้ว ฉันจะรีสตาร์ท postgresql 9.4 ได้อย่างไร วิธีการรีสตาร์ททั้งสองเวอร์ชันพร้อมกันก็ใช้ได้เช่นกัน


คุณค้นหาเว็บแล้วหรือยัง? codeproject.com/Articles/898303/…
kometen

ฉันขอแนะนำให้ย้ายข้อมูลของคุณไปที่ 9.4 และลบการติดตั้ง 9.3 ในภายหลัง
Jan Henke

1
@kometen บทความอ้างอิงไม่ได้มีวิธีในการเลือกเริ่มต้นและหยุดแต่ละอินสแตนซ์
EnzoR

@ JanHenke ฉันจะไม่แนะนำอะไรนอกขอบเขตของคำถาม อย่างไรก็ตาม v9.5 เป็นเวอร์ชันเสถียรในปัจจุบัน
EnzoR

@ Enzo เขาบอกว่าเขามีทั้งสองเวอร์ชันที่ทำงานควบคู่กัน ดังนั้นฉันจึงแนะนำให้ย้ายไปที่รุ่นใหม่กว่าของทั้งสองซึ่งจะช่วยแก้ปัญหาได้เช่นกันเนื่องจากจะเหลือ postgresql เพียงอันเดียว
Jan Henke

คำตอบ:


181

ลองใช้เป็นรูท (คุณอาจใช้sudoหรือsu):

/etc/init.d/postgresql restart

ไม่มีข้อโต้แย้งใด ๆ สคริปต์ยังให้คำแนะนำเกี่ยวกับวิธีการรีสตาร์ทเวอร์ชันเฉพาะ

[Uqbar@Feynman ~] /etc/init.d/postgresql
Usage: /etc/init.d/postgresql {start|stop|restart|reload|force-reload|status} [version ...]

ในทำนองเดียวกันในกรณีที่คุณมีคุณสามารถใช้serviceเครื่องมือ:

[Uqbar@Feynman ~] service postgresql
Usage: /etc/init.d/postgresql {start|stop|restart|reload|force reload|status} [version ...]

โปรดใส่ใจกับตัวเลือก [version ...]อาร์กิวเมนต์ต่อท้ายที่นั่นหมายถึงการอนุญาตให้คุณซึ่งเป็นผู้ใช้ดำเนินการกับเวอร์ชันที่เฉพาะเจาะจงในกรณีที่คุณใช้งานหลายเวอร์ชัน ดังนั้นคุณจึงสามารถรีสตาร์ทเวอร์ชันX ได้ในขณะที่ทำให้เวอร์ชันYและZไม่ถูกแตะต้องและทำงาน

สุดท้ายในกรณีที่คุณกำลังทำงานอยู่ systemdคุณสามารถใช้systemctlสิ่งนี้:

[support@Feynman ~] systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-11-14 12:33:35 CET; 7min ago
...

คุณสามารถแทนที่statusด้วยstop, startหรือrestartเช่นเดียวกับการดำเนินการอื่น ๆ โปรดดูเอกสารสำหรับรายละเอียดทั้งหมด ในการดำเนินการกับหลายเวอร์ชันพร้อมกันไวยากรณ์จะแตกต่างกันเล็กน้อย เช่นหยุด v12และโหลดซ้ำ v13คุณสามารถเรียกใช้:

systemctl stop postgresql-12.service
systemctl reload postgresql-13.service

ขอบคุณ @Jojo ที่ชี้ให้ฉันดูเรื่องนี้ สุดท้ายโปรดทราบว่าการrootอนุญาตอาจจำเป็นสำหรับงานที่ไม่ให้ข้อมูลเช่นเดียวกับในกรณีอื่น ๆ ที่เห็นก่อนหน้านี้


คุณช่วยยกตัวอย่างได้ไหม หมายเลขเวอร์ชันดูเหมือนจะไม่มีผลใด ๆ
Alex

คุณเคยลองเช่น "/etc/init.d/postgresql status 10" หรือไม่
EnzoR

systemctlใช้งานได้กับ Postgresql เวอร์ชันต่างๆ คุณสามารถระบุได้ด้วยsystemctl status postgresql@13-main.service. แทนที่ 13 ด้วยหมายเลขเวอร์ชันที่คุณต้องการระบุ
Jojo

เลือกได้ดี @Jojo
EnzoR

31

คุณยังสามารถรีสตาร์ท postgresql โดยใช้คำสั่งนี้ควรใช้ได้กับทั้งสองเวอร์ชัน:

sudo service postgresql start


สำหรับผมถ้าวิ่งอยู่แล้วดูเหมือนจะไม่ทำอะไร (การทำ "รีสตาร์ท" แทนการเริ่มต้นดูเหมือนว่าจะได้ผล)
omgponies

13

บน Windows:

1- เปิดหน้าต่างเรียกใช้โดย Winkey + R

2 ประเภท services.msc

บริการ 3-Search Postgres ตามเวอร์ชันที่ติดตั้ง

4 คลิกหยุดเริ่มหรือรีสตาร์ทตัวเลือกบริการ

บน Linux:

sudo systemctl restart postgresql

นอกจากนี้แทนที่จะ "เริ่มต้นใหม่" คุณสามารถแทนที่: สถานะหยุดหรือสถานะ



0

macOS:

  1. ที่ด้านบนซ้ายของแถบเมนู MacOS คุณจะมีไอคอน Postgres
  2. คลิกเพื่อเปิดเมนูแบบเลื่อนลง
  3. คลิกที่หยุด -> กว่าคลิกที่เริ่ม

บน macOS คุณมีแถบเมนูด้านบนซึ่งโดยทั่วไปจะเก็บนาฬิกานั้นไอคอนค้นหา ... และแอปขนาดเล็กที่ใช้งานอยู่บางแอปที่คุณสามารถเปิดขึ้นมา และที่นั่นคุณจะเห็นไอคอนรูปช้างสำหรับโปสการ์ด
sogu

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