# pgBackRest 2.60 ออกแล้ว restore จะหยุดทันทีเมื่อเจอ page checksum เสีย ต้องเช็กก่อนอัปเกรด

> pgBackRest 2.60 ออกเมื่อ 18 ต.ค. 2026 เปลี่ยนให้ restore และ expire หยุดเมื่อเจอ page checksum ไม่ถูกต้อง เพิ่ม GCS Workload Identity และแก้บั๊กลบไฟล์บน Azure

- ประเภท: ข่าว · หมวด: Data & Analytics
- เผยแพร่: 2026-10-19T11:03:00.000Z · อัปเดต: 2026-10-19T11:03:00.000Z
- โดย: กองบรรณาธิการ THAI DATA, THAI DATA IT BUSINESS ENTERPRISE
- ที่มา: https://thaidata.co.th/data/pgbackrest-2-60-page-checksum-error-restore/

## สรุปประเด็นสำคัญ

- ชุมชน pgBackRest ออก **pgBackRest 2.60** (v2.60.0) เมื่อ **18 ตุลาคม 2026** เครื่องมือสำรองและกู้คืนข้อมูล PostgreSQL แบบโอเพนซอร์สที่องค์กรจำนวนมากใช้กับฐานข้อมูลขนาดใหญ่
- พฤติกรรมเปลี่ยน: คำสั่ง **restore** จะหยุดเมื่อไฟล์ที่กู้คืนมี page checksum ไม่ถูกต้อง ทำให้คลัสเตอร์เปิดไม่ได้และต้องรันใหม่ ส่วน **expire** จะไม่ลบ backup ถ้า backup เก่าสุดที่เหลือมี checksum เสีย ตั้ง **checksum-page-error=n** เพื่อกลับไปแค่เตือน
- รองรับ **GCS Workload Identity Federation** ไม่ต้องใช้ service account key และเพิ่มการ prefetch การอ่านจาก object storage ค่าเริ่มต้นคิว **3** คำขอ อ่านข้ามช่องว่างได้ถึง **64KiB**
- แก้บั๊กบน **Azure** ที่การลบไฟล์แบบ batch อาจลบได้เพียงไฟล์เดียวต่อ batch ทั้งที่คำสั่งรายงานว่าสำเร็จ
- PostgreSQL 19 RC 1 ใช้กับ pgBackRest **2.59.2** ขึ้นไปได้ รวมถึงรุ่นนี้ และรุ่นนี้รองรับ OpenSSL 4

ชุมชนผู้พัฒนา pgBackRest ออก pgBackRest 2.60 (v2.60.0) เมื่อวันที่ 18 ตุลาคม 2026 รุ่นนี้เปลี่ยนพฤติกรรมสำคัญของคำสั่ง restore และ expire ให้หยุดทำงานเมื่อพบ page checksum ไม่ถูกต้อง แทนการผ่านไปเงียบ ๆ แบบเดิม ทีมฐานข้อมูลจึงควรอ่านหมายเหตุก่อนอัปเกรดระบบสำรองข้อมูล PostgreSQL

pgBackRest เป็นเครื่องมือสำรองและกู้คืนข้อมูล PostgreSQL แบบโอเพนซอร์ส รองรับ backup แบบเต็ม differential และ incremental ทำงานแบบขนาน เข้ารหัสได้ และเก็บ backup บน S3, Azure, GCS หรือ SFTP ได้ ติดตั้งได้จาก PostgreSQL Yum และ APT Repository

![หน้าข่าวบน postgresql.org ประกาศ pgBackRest 2.60.0 Released โพสต์วันที่ 18 ตุลาคม 2026 พร้อมรายการฟีเจอร์และหมายเหตุสำคัญ](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/pgbackrest-2-60-page-checksum-error-restore/pgbackrest-2-60-postgresql-org-news.webp?v=917523d8) _(ภาพ: PostgreSQL Global Development Group (ภาพหน้าจอ))_

## pgBackRest 2.60 เปลี่ยนการจัดการ page checksum อย่างไร

page checksum คือค่าตรวจสอบที่ PostgreSQL เขียนไว้ในแต่ละหน้าข้อมูลเมื่อเปิดใช้ data checksums ค่าที่ไม่ตรงหมายความว่าข้อมูลในหน้านั้นอาจเสียหาย รุ่นนี้เพิ่มตัวเลือก `checksum-page-error` และตั้งค่าเริ่มต้นของแต่ละคำสั่งไว้ดังนี้

| คำสั่ง | ค่าเริ่มต้นใน pgBackRest 2.60 | สิ่งที่เปลี่ยน |
| --- | --- | --- |
| backup | เตือนรายไฟล์ (เหมือนเดิม) | สรุปจำนวนคำเตือน checksum ทั้งหมดตอนจบ |
| restore | หยุดด้วย error | รุ่นก่อนไม่รายงาน checksum เสียเลย ตอนนี้หยุด คลัสเตอร์ไม่ครบและเปิดไม่ได้ ต้องรันใหม่ |
| expire | หยุดด้วย error | ไม่ลบถ้า backup เก่าสุดที่ยังเก็บไว้จะมี checksum เสีย ทำให้ archive ใน repository นั้นไม่ถูกลบด้วย |

ผู้ที่ต้องการพฤติกรรมแบบเดิมตั้ง `checksum-page-error=n` เพื่อให้แค่เตือน ผลที่ต้องคิดคือ ถ้าปล่อยค่าเริ่มต้นไว้ แล้ว backup เก่ามีหน้าข้อมูลเสียซ่อนอยู่ การกู้คืนในวันที่ระบบล่มจริงจะหยุดกลางทาง และ repository อาจโตขึ้นเรื่อย ๆ เพราะ expire ไม่ยอมลบ

## ตรวจก่อนว่าคลัสเตอร์เปิด data checksums อยู่หรือไม่

การเปลี่ยนแปลงนี้มีผลกับคลัสเตอร์ที่เปิด data checksums ซึ่งเอกสาร PostgreSQL 18 ระบุว่าตอนนี้หน้าข้อมูลมี checksum ป้องกันเป็นค่าเริ่มต้นแล้ว แต่ปิดได้ตอนสร้างคลัสเตอร์ด้วย initdb ฐานข้อมูลที่สร้างใหม่บนรุ่นล่าสุดจึงมีโอกาสได้รับผลมากกว่าคลัสเตอร์รุ่นเก่า

- ดูสถานะได้ด้วยคำสั่ง `SHOW data_checksums` ค่านี้ตั้งทั้งคลัสเตอร์ ไม่ได้แยกตามฐานข้อมูลหรือตาราง
- โปรแกรม `pg_checksums` ใช้เปิด ปิด หรือตรวจ checksum ได้ เมื่อคลัสเตอร์หยุดทำงานอยู่
- checksum ป้องกันเฉพาะหน้าข้อมูล ไม่รวมโครงสร้างภายในและไฟล์ชั่วคราว

ถ้าคลัสเตอร์เปิด checksum อยู่ การรัน `pg_checksums` บนสำเนาที่กู้คืนแล้วบนเครื่องทดสอบ ช่วยให้รู้ล่วงหน้าว่าข้อมูลมีหน้าที่เสียหายหรือไม่ ก่อนตัดสินใจเรื่องค่าของ `checksum-page-error`

![หน้า Release Notes ของ pgBackRest รุ่น v2.60.0 Page Checksum Errors and Object Store Prefetch ออกวันที่ 18 ตุลาคม 2026 พร้อม IMPORTANT NOTE เรื่อง restore และ expire](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/pgbackrest-2-60-page-checksum-error-restore/pgbackrest-2-60-release-notes.webp?v=16549ab7) _(ภาพ: pgBackRest (ภาพหน้าจอ))_

## ฟีเจอร์อื่นใน pgBackRest 2.60

- **GCS Workload Identity Federation** ตั้ง `repo-gcs-key-type=web-id` แล้วชี้ `repo-gcs-key` ไปที่ไฟล์ credential ของบัญชีภายนอก ระบบแลก token เป็น access token โดยไม่ต้องใช้ service account key และอ่านไฟล์ token ใหม่ทุกครั้ง จึงใช้กับ projected service account token ของ Kubernetes ที่หมุนเวียนได้ แต่ยังไม่รองรับ service account impersonation
- **Prefetch จาก object storage** คิวคำขออ่านล่วงหน้าขณะอ่านข้อมูล และอ่านข้ามช่องว่างเล็ก ๆ ระหว่างไฟล์แทนการเปิดคำขอใหม่ ตั้งได้ด้วย `repo-storage-prefetch` (ค่าเริ่มต้น 3) และ `repo-storage-read-over` (ค่าเริ่มต้น 64KiB) restore ใช้กับไฟล์ที่รวมเป็น bundle และ block incremental map
- **ลด keep-alive** ส่ง keep-alive ไปยังโปรเซสระยะไกลเฉพาะเมื่อไม่มีคำขอเลยนาน 30 วินาที
- **รองรับ OpenSSL 4** และ build บน illumos ได้

## บั๊กลบไฟล์บน Azure ที่ควรรู้

Release notes ระบุว่าเมื่อ Azure ตอบกลับคำขอลบแบบ batch ที่ล้มเหลวด้วยคำตอบเดียวสำหรับทั้ง batch รุ่นก่อนหน้าถือว่าคำขอย่อยที่ไม่มีคำตอบสำเร็จแล้ว ผลคือลบได้เพียงไฟล์เดียวต่อ batch แต่คำสั่งรายงานว่าสำเร็จ pgBackRest 2.60 แก้ให้ลองคำขอย่อยเหล่านั้นใหม่ องค์กรที่เก็บ backup บน Azure Blob Storage จึงอาจมีไฟล์ที่ควรถูกลบค้างอยู่ และควรตรวจขนาด repository หลังอัปเกรด

![หน้า GitHub Release v2.60.0 ของ pgbackrest/pgbackrest ติดป้าย Latest และ Immutable พร้อมหมายเหตุสำคัญและรายการ Features กับ Improvements](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/pgbackrest-2-60-page-checksum-error-restore/pgbackrest-2-60-github-release.webp?v=fcb34c7a) _(ภาพ: GitHub (ภาพหน้าจอ))_

## ทำไมเรื่องนี้สำคัญ

pgBackRest เป็นโปรเจกต์โอเพนซอร์สที่มีผู้สนับสนุนเป็นบริษัทในวงการ PostgreSQL ประกาศรุ่นนี้ขอบคุณ AWS, Supabase, pgEdge, Tiger Data, Percona, Eon, Xata, Dalibo และ Data Egret ที่ให้การสนับสนุน

backup ที่กู้คืนไม่ได้มีค่าเท่ากับไม่มี backup การให้ restore หยุดเมื่อเจอข้อมูลเสียช่วยให้รู้ปัญหาก่อนเปิดใช้ฐานข้อมูลที่ข้อมูลผิด แต่ก็ย้ายความเสี่ยงไปอยู่ที่วันกู้คืนจริง ถ้าไม่เคยซ้อมกู้คืนมาก่อน pgBackRest 2.60 ยังออกมาในช่วงเดียวกับ [PostgreSQL 19 RC 1](/data/postgresql-19-rc-1-ga-november-19/) ทีมที่วางแผนย้ายไปรุ่น 19 จึงควรทดสอบเครื่องมือสำรองข้อมูลไปพร้อมกัน

## ผลต่อองค์กรไทย

- **ซ้อม restore บนเครื่องทดสอบก่อนอัปเกรด** กู้คืน backup ล่าสุดและ backup เก่าสุดที่ยังเก็บไว้ด้วย pgBackRest 2.60 ถ้าหยุดเพราะ checksum เสีย จะได้รู้ก่อนเกิดเหตุจริง
- **ตัดสินใจเรื่อง checksum-page-error ให้ชัด** ระบบที่ต้องกู้คืนให้เร็วที่สุดอาจตั้งเป็นเตือน แต่ต้องมีขั้นตอนตรวจข้อมูลหลังกู้คืน ส่วนระบบที่ความถูกต้องสำคัญกว่าความเร็ว เช่น ข้อมูลบัญชีหรือข้อมูลลูกค้า ควรคงค่าหยุดไว้
- **ตั้งเตือนเมื่อ expire ไม่ทำงาน** repository ที่ไม่ถูกลบจะกินพื้นที่และค่า storage เพิ่มขึ้น ควรเฝ้าดู log ของ expire และขนาด repository
- **ทีมที่ใช้ GKE หรือ Kubernetes บน Google Cloud** ย้ายจาก service account key ไปใช้ Workload Identity ได้แล้ว ลดความเสี่ยงที่ key ระยะยาวรั่วออกไป
- **ผู้ใช้ Azure** อัปเกรดแล้วตรวจว่าไฟล์ backup และ archive ที่ควรหมดอายุไปแล้วถูกลบจริง

ติดตามข่าวฐานข้อมูลและ Data Platform เพิ่มเติมได้ที่[หมวด Data](/data/)

## คำถามที่พบบ่อย

### pgBackRest 2.60 เปลี่ยนอะไรที่ต้องระวัง?

pgBackRest 2.60 ทำให้คำสั่ง restore หยุดทำงานเมื่อพบไฟล์ที่ page checksum ไม่ถูกต้อง คลัสเตอร์ที่กู้คืนค้างไว้จะเปิดไม่ได้และต้องรัน restore ใหม่ และคำสั่ง expire จะไม่ลบ backup หรือ archive ถ้า backup เก่าสุดที่ยังเก็บไว้มี checksum เสีย

### ถ้าไม่อยากให้ pgBackRest 2.60 หยุดเมื่อเจอ checksum เสียต้องทำอย่างไร?

ตั้งค่า checksum-page-error=n เพื่อให้ pgBackRest 2.60 แค่เตือนแทนการหยุด ค่านี้ใช้กับคำสั่ง backup, restore และ expire โดยค่าเริ่มต้นของ backup ยังเป็นการเตือนรายไฟล์เหมือนเดิม และเพิ่มการสรุปจำนวนคำเตือนทั้งหมดตอนจบ

### pgBackRest รองรับ PostgreSQL 19 แล้วหรือยัง?

ประกาศของ pgBackRest ระบุว่า PostgreSQL 19 RC 1 ใช้ได้กับ pgBackRest 2.59.2 ขึ้นไป รวมถึงรุ่น 2.60.0 ที่ออกเมื่อ 18 ตุลาคม 2026 องค์กรที่ทดสอบ PostgreSQL 19 ก่อนออกรุ่นจริงจึงใช้ pgBackRest รุ่นปัจจุบันสำรองข้อมูลได้

### ผู้ใช้ pgBackRest บน Azure ควรทำอะไร?

ควรอัปเกรดเป็น pgBackRest 2.60 แล้วตรวจพื้นที่เก็บ backup เพราะรุ่นก่อนหน้ามีบั๊กที่เมื่อ Azure ตอบกลับคำขอลบแบบ batch ไม่ครบ ระบบจะลบได้เพียงไฟล์เดียวต่อ batch แต่รายงานว่าสำเร็จ ไฟล์ที่ควรถูกลบจึงอาจค้างอยู่และกินพื้นที่


## แหล่งอ้างอิง

- [pgBackRest 2.60.0 Released](https://www.postgresql.org/about/news/pgbackrest-2600-released-3416/) — PostgreSQL Global Development Group
- [pgBackRest - Releases](https://pgbackrest.org/release.html) — pgBackRest
- [PostgreSQL Documentation: 28.2. Data Checksums](https://www.postgresql.org/docs/current/checksums.html) — PostgreSQL Global Development Group
- [Release v2.60.0: Page Checksum Errors and Object Store Prefetch](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.60.0) — GitHub
