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

 

ใครๆ ก็มี Object Storage S3 ใช้งายภายในองค์กรได้แล้ว

Object Storage คืออะไร? Object Storage คือระบบจัดเก็บข้อมูลที่เก็บไฟล์ในรูปแบบ "อ็อบเจ็กต์" แทนที่จะเป็นไฟล์ในโฟลเดอร์แบบเดิม โดยแต่ละอ็อบเจ็กต์จะมี: -ข้อมูล...

Read more »

ข้อเสียของการใช้งาน SMB/CIFS ใน Backup Repository

ก่อนอื่นต้องบอกว่า คำถามดังกล่าวนั้น เราได้รับจากลูกค้า อยู่เนืองๆ ก็เลยเป็นที่มาของการเขียนบทความในวันนี้ เพราะหลายๆ คนยังติดกับการใช้งาน SMB/CIFS โดยเฉพาะผู้ที่ใช้งานอยู่ในระบบ Windows...

Read more »

รู้จักกับ Object Storage เช่น S3 และประโยชน์ของมัน

ปัจจุบันเราจะเห็นได้ว่า การใช้งาน Object Storage นั้นเพิ่มขึ้นอย่างมาก และ ได้รับความนิยมอย่างมากทั่วโลก ในงานหลายๆ ด้าน ซึ่งมันทำมาเพื่อแก้ปัญหาหลายๆ...

Read more »

Veeam Immutability

ransomware นั้นได้กลายเป็นเรื่องที่สร้างความปวดหัวให้กับองค์กรต่างๆ ทั่วโลกแบบรายวันกันเลยทีเดียว และ หนึ่งในเทคโนโลยีที่จะช่วยให้เรารอดพ้นจากภัยดังกล่าวได้นั้นคือ Immutability และ มันก็ได้กลายเป็นสิ่งพื้นฐานที่ทุกคนเข้าถึงได้ไปแล้วในปัจจุบัน หาใช่เทคโนโลยีชั้นสูงราคาแพงอีกต่อไป Veeam...

Read more »

วิธีการตั้งค่า SR-IOV สำหรับ NIC บน Proxmox VE

ในระบบ Virtualization สมัยใหม่ การเพิ่มประสิทธิภาพการเชื่อมต่อเครือข่ายและการเข้าถึงฮาร์ดแวร์โดยตรงเป็นสิ่งสำคัญ โดยเฉพาะในงานที่ต้องการ Bandwidth สูง หรือ Latency ต่ำ...

Read more »

Installing PostgreSQL 17 on Ubuntu 24.04

PostgreSQL คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพนซอร์ส (Open-source Relational Database Management System – RDBMS) ที่ทรงพลังและมีความสามารถสูง...

Read more »