Postgres 18.7: Gói Debian và Red Hat bảo vệ người dùng khỏi cài đặt sai phiên bản
Bài viết của Jeremy Schneider là phần tiếp nối nhanh cho bài blog hôm trước, sau khi bản phát hành Postgres mới mang đến vài bất ngờ mà ông chưa kịp theo dõi. Ông khuyên đọc blog của Devrim và mục "5-minutes-of-postgres" của Lukas để nắm tóm tắt nhanh.
Ràng buộc phiên bản trên Debian
Trong bài trước, ông đã nêu việc gói RPM nay thêm header yêu cầu một phiên bản minor cụ thể, và lưu ý chưa kiểm tra hệ sinh thái Debian. Sáng nay ông xác nhận gói Debian cũng có cơ chế bảo vệ tương tự.
Điều này quan trọng vì nhiều người sẽ không nâng cấp Postgres ngay hôm nay dù được khuyến nghị. Tuần sau, khi họ cài một extension mới, trình quản lý gói của hệ điều hành sẽ cố kéo phiên bản mới nhất. Devrim và Christoph, hai người đóng gói Postgres chính, đã đảm bảo hệ thống đóng gói bảo vệ người dùng khỏi một lần cài đặt hỏng.
Trên Debian, nếu giữ nguyên postgresql-18 bằng apt-mark hold rồi cài postgresql-18-cron, quá trình cài sẽ thất bại với thông báo gói phụ thuộc yêu cầu postgresql-18 lớn hơn 18.7 trong khi máy đang có 18.6. Khi bỏ hold và cài lại, hệ thống sẽ nâng cấp postgresql-18 lên 18.7 cùng các gói liên quan rồi mới cài extension. Metadata của gói cho thấy ràng buộc Depends: postgresql-18 (>> 18.7).
Ràng buộc trên Red Hat
Trên Rocky, khi thử cài extension không kèm phiên bản trong lúc chặn nâng cấp Postgres bằng tùy chọn exclude, việc cài cũng thất bại: gói pg_cron_18 yêu cầu postgresql18-libs phiên bản ít nhất 18.7 nhưng gói này bị bộ lọc loại ra. Khi cho phép nâng cấp, lệnh cài sẽ đồng thời nâng postgresql18, postgresql18-libs và postgresql18-server lên 18.7 rồi cài pg_cron_18. Yêu cầu RPM tương ứng là postgresql18-libs(x86-64) >= 18.7 cùng postgresql18-server.
Ảnh hưởng với người chạy Postgres trên Kubernetes
Phần lớn người chạy Postgres trên Kubernetes hiện nay tự xây container image với extension được build sẵn, thường dùng trực tiếp các gói Debian. Cơ chế bảo vệ nêu trên cũng bảo vệ nhóm này: nếu container build thành công thì bạn đã có tổ hợp phiên bản đúng.
CloudNativePG cung cấp extension container cho Postgres 18 trở lên. Nếu dùng catalog extension của CNPG thì bạn được bảo đảm vì chúng hoạt động như rolling release; hôm qua nhóm đã cập nhật catalog với phiên bản mới nhất của cả Postgres lõi lẫn mọi extension. Tuy nhiên, nếu tự chọn và ghim digest/phiên bản extension độc lập với digest/phiên bản máy chủ Postgres, bạn phải tự chịu trách nhiệm không trộn extension mới với máy chủ cũ.
Nguồn: Planet PostgreSQL
Trích nguồn từ: Planet PostgreSQL
Tags:
Bài viết liên quan
Postgres 18.7 phá vỡ tương thích ABI lần nữa
Bản cập nhật nhỏ Postgres 18.7 buộc phải thay đổi ABI để vá CVE-2026-6460, khiến các extension C phải biên dịch lại và nâng cấp đồng bộ với database.
Đọc thêmPostgreSQL ra mắt loạt bản vá tháng 11/2026: cập nhật máy chủ và tiện ích mở rộng cùng lúc
PostgreSQL 18.7, 17.12, 16.16, 15.20 và 14.25 được phát hành với bản vá CVE-2026-6460, buộc phải cập nhật máy chủ và toàn bộ tiện ích mở rộng trong cùng một giao dịch trên các kho RPM của PGDG.
Đọc thêm
Tìm kiếm vector PostgreSQL với pgvector và hybrid search trong Next.js
Hướng dẫn xây dựng tìm kiếm kết hợp từ khóa và vector trong PostgreSQL bằng pgvector, kết nối với Next.js Route Handler, áp dụng RLS theo tenant và đo độ chính xác của chỉ mục HNSW khi có bộ lọc.
Đọc thêm
B-tree trong PostgreSQL: trang chỉ mục có thứ tự và thưa dần sau VACUUM
Bài viết của Radim Marek mổ xẻ cấu trúc trang B-tree trong PostgreSQL: khác với heap page, trang chỉ mục được sắp xếp, liên kết với trang anh em và VACUUM không thể thu hồi không gian bên trong trang lá.
Đọc thêmCùng truy vấn, cùng index nhưng hiệu năng khác nhau khi chuyển PostgreSQL lên Azure
Câu chuyện khách hàng chuyển PostgreSQL lên Azure gặp truy vấn chậm gấp hàng chục lần dù vẫn dùng index scan, nguyên nhân nằm ở cách dữ liệu được sắp xếp trên đĩa chứ không phải index hay storage.
Đọc thêm
json và jsonb trong PostgreSQL: đo kích thước và tốc độ thực tế
So sánh json và jsonb trên PostgreSQL 17 và 18 với sáu dạng tài liệu, cho thấy jsonb có thể nhỏ hơn 23% hoặc lớn hơn 41%, kèm tốc độ đọc và chỉ mục GIN.
Đọc thêmPostgreSQL có thực sự đang thắng? Bằng chứng vượt xa các bảng xếp hạng
Bài viết của Dave Stokes tổng hợp khảo sát người dùng, các thương vụ mua bán công ty PostgreSQL, sản phẩm của đối thủ và lựa chọn của AI agent để lập luận PostgreSQL đang dẫn đầu mảng cơ sở dữ liệu vận hành.
Đọc thêmPostgreSQL, NUMA và điện toán đám mây: những lưu ý khi chạy trong VM và container
Bài cuối trong loạt 4 phần về PostgreSQL và NUMA, tập trung vào thách thức khi chạy PostgreSQL trên máy ảo và container trong môi trường đám mây, kèm các khuyến nghị thực hành.
Đọc thêm
Nâng cấp PostgreSQL tại chỗ không downtime trên cụm phân tán
Ahsan Hadi hướng dẫn nâng cấp tại chỗ từng node PostgreSQL từ 17.10 lên 18.6 trên cụm Spock đa master, giữ ứng dụng luôn có endpoint ghi trong khi mỗi node tạm ngừng vài phút.
Đọc thêm
UUIDv4 và UUIDv7 trên Postgres: cái giá của khóa chính ngẫu nhiên
So sánh ba loại khóa chính trên Postgres 18 cho thấy UUIDv4 chèn chậm hơn khóa có thứ tự và ghi WAL nhiều hơn đáng kể ở mức 100 triệu dòng.
Đọc thêm