Installing PostgreSQL 17 on Ubuntu 24.04

Published on April 26, 2025
Installing PostgreSQL 17 on Ubuntu 24.04

PostgreSQL คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพนซอร์ส (Open-source Relational Database Management System – RDBMS) ที่ทรงพลังและมีความสามารถสูง พัฒนาต่อเนื่องมากว่า 30 ปี
คุณสมบัติเด่นของ PostgreSQL:
-รองรับ SQL มาตรฐาน (Standard SQL:2008)
-รองรับข้อมูลแบบ JSON, XML, และข้อมูลเชิงพื้นที่ (GIS)
-รองรับฟังก์ชันขั้นสูง เช่น triggers, stored procedures, window functions, CTEs
-ขยายความสามารถได้ เช่น สร้าง data type เอง, เขียนฟังก์ชันด้วยภาษาอื่น (เช่น Python, PL/pgSQL)
-เสถียร ปลอดภัย และเหมาะกับงานระดับองค์กร
-มีระบบ replication, backup, และ clustering

PostgreSQL มี extensions ช่วยเพิ่มฟังก์ชันการทำงานให้กับฐานข้อมูล ซึ่งทำให้ PostgreSQL มีความยืดหยุ่นและสามารถตอบสนองความต้องการที่หลากหลายได้มากขึ้น ต่อไปนี้คือ extensions ที่ได้รับความนิยม:

1. PostGIS
ฟังก์ชัน: เพิ่มความสามารถในการจัดการข้อมูลเชิงพื้นที่ (Spatial data) เช่น การเก็บข้อมูลแผนที่ พิกัด และการคำนวณระยะห่าง
การใช้งาน: ใช้สำหรับงาน GIS (Geographic Information Systems), การวิเคราะห์แผนที่ หรือแอปพลิเคชันที่ต้องการการคำนวณข้อมูลตำแหน่ง

2. pg_partman
ฟังก์ชัน: ช่วยในการจัดการ partitioning ของตาราง (แบ่งตารางขนาดใหญ่ให้เล็กลงเพื่อเพิ่มประสิทธิภาพ)
การใช้งาน: ใช้เมื่อคุณต้องการแบ่งตารางที่มีข้อมูลจำนวนมากออกเป็นส่วนย่อย (partitions) เพื่อเพิ่มความเร็วในการ query

3. pg_stat_statements
ฟังก์ชัน: เก็บสถิติการใช้ SQL queries ที่มีการรันบ่อย ๆ ช่วยให้คุณสามารถวิเคราะห์ประสิทธิภาพและทำการปรับแต่งฐานข้อมูล
การใช้งาน: ใช้ในการวิเคราะห์ประสิทธิภาพของคำสั่ง SQL ในการทำงาน

4. hstore
ฟังก์ชัน: เพิ่มฟังก์ชันการจัดการข้อมูลในรูปแบบ key-value pairs
การใช้งาน: ใช้ในกรณีที่ต้องการจัดเก็บข้อมูลที่ไม่เป็นระเบียบ (non-relational data) โดยไม่ต้องใช้ฐานข้อมูล NoSQL

5. pg_trgm
ฟังก์ชัน: ช่วยเพิ่มประสิทธิภาพในการค้นหาข้อความโดยใช้ trigram (การแบ่งข้อความออกเป็นชุดของสามตัวอักษร)
การใช้งาน: ใช้ในการค้นหาข้อความที่ไม่ตรงกัน เช่น การค้นหาคำที่คล้ายกันหรือมีตัวสะกดผิด

6. pg_bigm
ฟังก์ชัน: เพิ่มการสนับสนุนการค้นหาคำในรูปแบบ “bigram” (การแบ่งข้อความออกเป็นชุดของสองตัวอักษร)
การใช้งาน: ใช้สำหรับการค้นหาข้อความที่มีความคล้ายคลึงกัน เช่น การค้นหาข้อความที่สะกดผิด หรือค้นหาคำในฟิลด์ขนาดใหญ่

7. Citus
ฟังก์ชัน: เปลี่ยน PostgreSQL ให้สามารถทำงานในรูปแบบ distributed database (ฐานข้อมูลแบบกระจาย)
การใช้งาน: ใช้เมื่อฐานข้อมูลมีข้อมูลจำนวนมากและต้องการขยายขนาดฐานข้อมูลแบบกระจายเพื่อรองรับการประมวลผลที่รวดเร็ว

8. uuid-ossp
ฟังก์ชัน: สร้าง UUIDs (Universally Unique Identifiers) ภายใน PostgreSQL
การใช้งาน: ใช้เมื่อคุณต้องการสร้างค่า unique identifier ที่ไม่ซ้ำกันสำหรับการอ้างอิงข้อมูลในระบบต่าง ๆ

9. pgcrypto
ฟังก์ชัน: เพิ่มฟังก์ชันการเข้ารหัสข้อมูล เช่น การเข้ารหัสและถอดรหัสข้อมูล
การใช้งาน: ใช้สำหรับการเข้ารหัสข้อมูลที่เก็บในฐานข้อมูลเพื่อความปลอดภัย เช่น การเข้ารหัสรหัสผ่านหรือข้อมูลสำคัญ

10. pg_repack
ฟังก์ชัน: ช่วยในการจัดการกับตารางและดัชนีที่มีการพังหรือเต็ม (bloat) โดยการแยกข้อมูลออกมาและจัดเรียงใหม่
การใช้งาน: ใช้เมื่อฐานข้อมูลเริ่มมีขนาดใหญ่และทำให้การ query ช้าลง

โดยรวมแล้วต้องบอกว่า PostgreSQL นั้นเป็นทั้งระบบฐานข้อมูลแบบดั้งเดิมและร่วมสมัยที่ ทำงานได้กับข้อมูลแทบจะทุกตัวแล้วในปัจจุบัน

อธิบายมาตั้งนาน แล้วเข้าเรื่องของเรากันดีกว่า วันนี้เราจะไปติดตั้ง PostgreSQL 17 ซึ่งเป็น version ล่าสุดบน Ubuntu 24.04 (Noble Numbat) ซึ่งเป็นตัวล่าสุดเหมือนกัน ก็ใหม่สุดๆ กันไปเลยนะ

1. เช็คก่อนเลยว่า Ubuntu ที่ใช้อยู่เป็น 24.04 เพื่อความชัวร์ ด้วยคำสั่ง

lsb_release -a

 

เราก็จะได้ผลลัพธ์ดังรูปที่ 1

2. พิมพ์

sudo apt update


เพื่อเป็นการอัพเดท repository index file ใหม่

3. ทำการเพิ่ม repository สำหรับ PostgreSQL 17

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

step 3

4. ทำการ import key ของ repository

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

step 4

5. ทำการ update index file ใน repository ตัวใหม่ที่เราเพิ่งเพิ่มเข้าไปใน step 3

sudo apt update

step 5

6. ทำการติดตั้ง PostgreSQL 17

sudo apt install postgresql-17

ให้เราตอบ Y เพื่อยืนยันการติดตั้ง

Step 6

7. พิมพ์คำสั่งเพื่อ start service PostgreSQL และ enable เพื่อให้ทำงานอัตโนมัติหากเครื่องมีการรีบูต

sudo systemctl start postgresql
sudo systemctl enable postgresql

Step 7

8. พิมพ์คำสั่ง เพื่อทำการแก้ไขไฟล์ให้ postgreSQL ทำงานในทุก IP

sudo nano /etc/postgresql/17/main/postgresql.conf

9. ให้เลื่อนมายัง ตรงที่เขียนว่า #listen_addresses = ‘localhost’ และแก้เป็น
listen_addresses = ‘*’

หลังจากแก้ไขไฟล์แล้ว ให้ทำการ บันทึกด้วยคำสั่ง ^X และกด Y เพื่อบันทึกการเปลี่ยนแปลง

Step 8-9

10. พิมพ์คำสั่งเหล่านี้เพื่อเปลี่ยน authentication เป็นชนิด MD5 เพราะมันจำเป็นสำหรับการ authen ผ่าน remote ซึ่งส่วนใหญ่เราต้องใช้อยู่แล้ว เพราะในการ remote มาจัดการ

sudo sed -i '/^host/s/ident/md5/' /etc/postgresql/17/main/pg_hba.conf
sudo sed -i '/^local/s/peer/trust/' /etc/postgresql/17/main/pg_hba.conf
echo "host all all 0.0.0.0/0 md5" | sudo tee -a /etc/postgresql/17/main/pg_hba.conf

Step 10

11. ทำการ restart service postgresql เพื่อให้อ่านค่า config ใหม่ที่เราแก้ไปข้างต้น

sudo systemctl restart postgresql

12. พิมพ์คำสั่งเพื่อเข้าไปยัง postgresql

sudo -u postgres psql

ซึ่งหมายถึง เรากำลังเชื่อมต่อด้วย username ที่ชื่อว่า postgres ซึ่งเทียบเท่ากับ sa ใน SQL Server นั่นเอง

13. หลังจากนั้นทำการเปลี่ยนรหัสของ user : postgres ด้วยคำสั่ง

ALTER USER postgres PASSWORD 'SuperStrongPasswordHere';

14. หลังจากนั้นก็ออกด้วยคำสั่ง

\q

Step 11-14

ก็เป็นอันเรียบร้อยสำหรับการติดตั้ง PostgreSQL 17 บน Ubuntu 24.04 สำหรับผู้ที่ต้องการดูเป็นแบบ Video นั้นรับชมได้ที่ https://www.youtube.com/watch?v=ZKqwBzJB3uw

 

databases and their applications in 2025

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

Read more »

Virtual Tape Library and its benefits

สำหรับ Tape Backup นั้นหลายๆ คนคงจะรู้จัก และใช้งานกันมานานพอสมควร แม้กระทั่งทุกวันนี้หลายๆ องค์กรก็ยังใช้งาน Tape อยู่...

Read more »

ทดสอบ IOPS ด้วย KDiskMark

หากพูดถึง CrystalDiskMark ก็ต้องบอกว่าเป็นที่รู้จักกันในโลกของ Windows กันมา พอสมควรแล้ว เพราะถูกใช้กันอย่างกว้างขวางในการทดสอบ IOPS บน Disk/SSD...

Read more »

GraphQL คืออะไร และ มันอาจจะเป็นสิ่งที่มาเปลี่ยน REST API

GraphQL คืออะไร ก่อนอื่นต้องบอกก่อน วิธีการสื่อสารระหว่าง client & server นั้นเราใช้วิธีการที่เรียกว่า REST API...

Read more »

Self-Service Backup as a Service for Nakivo

สำหรับองค์กรขนาดใหญ่ที่มีจำนวน VM หลักร้อยหรือหลักพัน การจัดการ จะกลายเป็นเรื่องยุ่งยากทันที หากทุกอย่างต้องมานั่งรอแอดมินหรือผู้ดูแลระบบเป็นคนจัดการให้ และ เช่นเดียวกับระบบสำรองข้อมูล การจัดให้มีระบบ Self-Service...

Read more »

ZFS Live RAIDZ Pool Expansion

แน่นอนว่าการใช้งาน disk / storage ในช่วงที่ผ่านมานั้น มีการเพิ่มขึ้นทุกระดับองค์กร แต่บางครั้งการ จัดการ หรือ การแบ่ง...

Read more »