กลยุทธ์สำรองข้อมูลเว็บไซต์อิสระ: แบบเต็มและแบบเพิ่มพูน ความถี่ ตำแหน่งจัดเก็บ และการซ้อมกู้คืน

การสำรองข้อมูลเว็บไซต์อิสระยึดหลัก 3-2-1: 3 ชุดสำรอง 2 สื่อจัดเก็บ 1 ชุดนอกสถานที่ แนะนำความถี่: ฐานข้อมูลสำรองแบบเพิ่มพูนทุก 4 ชั่วโมง แบบเต็มวันละครั้ง ไฟล์สำรองแบบเพิ่มพูนด้วย rsync ทุกวัน แบบเต็มสัปดาห์ละครั้ง จัดเก็บ 3 ชั้น: เซิร์ฟเวอร์ภายใน...

独立站备份:3-2-1原则与恢复演练Backup strategy: 3-2-1 rule and restore drills 没恢复过的备份等于没有备份 —— 备份策略一半是怎么存,一半是怎么恢复A backup you never restored is no backup at all — half the job is recovery 副本Copy 位置Location 频率Cadence 1 本地1. Local 服务器磁盘另一分区Another partition on server 每4小时增量 · 每日全量4h incremental, daily full 2 异地2. Offsite 异地对象存储 S3/OSSObject storage S3/OSS 每日同步 · 保留30天Daily sync, keep 30 days 3 冷备3. Cold Glacier/归档 · 季度全量Glacier archive, quarterly 反直觉判断:备份只存在同一台服务器上,等于没有备份 —— 服务器被黑时备份会一起被加密Counter-intuitive: on-server backups are useless — ransomware encrypts them too 3-2-1原则:3份副本、2种介质、1份异地,缺一不可3 copies, 2 media, 1 offsite — non-negotiable 红线:每季度必须做一次恢复演练,没恢复过的备份不算数Red line: quarterly restore drill — untested backups are not backups 真实事故里,超过40%的备份恢复失败是因为备份文件损坏或密码丢失40%+ of restores fail due to corrupt archives or lost keys 保留策略:每日30天 · 每周12周 · 每月12个月 · 每年3年Retention: 30 daily · 12 weekly · 12 monthly · 3 yearly 数据库用mysqldump加binlog,文件用rsync增量,恢复时间目标见灾难恢复一文mysqldump + binlog for DB; rsync incremental for files
กลยุทธ์สำรองข้อมูล 3-2-1: จัดเก็บ 3 ชั้น ทั้งในเครื่อง ออบเจ็กต์สตอเรจต่างถิ่น และคลังเก็บแบบเย็น

กลยุทธ์สำรองข้อมูลเว็บไซต์อิสระ: แบบเต็มและแบบเพิ่มพูน ความถี่ ตำแหน่งจัดเก็บ และการซ้อมกู้คืน

สรุปก่อน: การสำรองข้อมูลเว็บไซต์อิสระยึดหลัก 3-2-1: 3 ชุดสำรอง 2 สื่อจัดเก็บ 1 ชุดนอกสถานที่ แนะนำความถี่: ฐานข้อมูลสำรองแบบเพิ่มพูนทุก 4 ชั่วโมง แบบเต็มวันละครั้ง ไฟล์สำรองแบบเพิ่มพูนด้วย rsync ทุกวัน แบบเต็มสัปดาห์ละครั้ง จัดเก็บ 3 ชั้น: พาร์ติชันอื่นในเซิร์ฟเวอร์ ออบเจ็กต์สตอเรจต่างถิ่น (S3/OSS) และ Glacier สำหรับคลังเก็บแบบเย็น นโยบายเก็บรักษา: รายวัน 30 วัน รายสัปดาห์ 12 สัปดาห์ รายเดือน 12 เดือน รายปี 3 ปี ข้อสรุปที่ขัดกับสัญชาตญาณคือ แบ็กอัปที่ไม่เคยทดสอบกู้คืนเท่ากับไม่มีแบ็กอัป ในเหตุการณ์จริงกว่า 40% ของการกู้คืนแบ็กอัปล้มเหลว เพราะไฟล์แบ็กอัปเสียหายหรือกุญแจหาย ต้องซ้อมกู้คืนทุกไตรมาส

หนึ่ง สำรองข้อมูลอะไร: ฐานข้อมูลและไฟล์ต้องแยกกันสำรอง

การสำรองข้อมูลเว็บไซต์อิสระต้องสำรองสองประเภท: ฐานข้อมูลและไฟล์ ฐานข้อมูลคือเนื้อหาใน wp_posts, wp_options, wp_users ของ WordPress ส่วนไฟล์คือรูปภาพ ธีม และโค้ดปลั๊กอินใน wp-content/uploads สองประเภทนี้มีความถี่ในการเปลี่ยนแปลงและวิธีสำรองข้อมูลต่างกันโดยสิ้นเชิง ถ้าสำรองรวมกันจะเกิดปัญหา

ฐานข้อมูลใช้ mysqldump หรือ wp-cli ส่งออก ทุกครั้งที่ส่งออกต้องใส่พารามิเตอร์ –single-transaction เพื่อไม่ให้ล็อกตารางกระทบระบบออนไลน์ ส่วนไฟล์ใช้ rsync ซิงก์แบบเพิ่มพูน ซิงก์เฉพาะส่วนที่เปลี่ยน ไม่ต้องคัดลอกแบบเต็มทุกครั้ง เพราะไดเรกทอรี wp-content ขนาด 10GB คัดลอกเต็มหนึ่งครั้งใช้เวลาสิบกว่านาที แต่ซิงก์แบบเพิ่มพูนใช้เวลาแค่ไม่กี่วินาที

สิ่งที่ต้องสำรอง ความถี่ในการเปลี่ยนแปลง เครื่องมือที่แนะนำ วิธี backup
ฐานข้อมูล MySQL อาจเปลี่ยนแปลงทุกชั่วโมง mysqldump หรือ xtrabackup binlog แบบเพิ่มพูนทุก 4 ชั่วโมง dump แบบเต็มวันละครั้ง
wp-content/uploads มีรูปภาพใหม่ทุกสัปดาห์ rsync ซิงก์แบบเพิ่มพูนทุกวัน
โค้ดธีมและปลั๊กอิน แก้ไขไม่กี่ครั้งต่อเดือน git หรือ rsync ควบคุมเวอร์ชัน สำรองเต็มเดือนละครั้ง
wp-config.php แทบไม่เปลี่ยนแปลง เก็บแยกในโปรแกรมจัดการรหัสผ่าน สำรองทันทีเมื่อมีการเปลี่ยนแปลง
การตั้งค่า nginx/เว็บไซต์ แก้ไขไม่กี่ครั้งต่อเดือน จัดการด้วย git สำรองทันทีเมื่อมีการเปลี่ยนแปลง

ตัวอย่างสถานการณ์: เว็บไซต์อุตสาหกรรมอุปกรณ์ที่ใช้ WordPress สำหรับตลาดต่างประเทศ มีผู้สนใจสอบถามเพิ่มวันละ 3 ถึง 5 ราย และมีรูปสินค้าใหม่ 2 ถึง 3 รูปต่อวัน ฐานข้อมูลใช้สคริปต์ส่งออกทุก 4 ชั่วโมง ส่วนไฟล์ใช้ rsync ซิงก์แบบเพิ่มพูนตอนตี 3 ทุกวันไปยังออบเจ็กต์สตอเรจต่างถิ่น ผ่านไปหนึ่งสัปดาห์ แบ็กอัปฐานข้อมูลกินพื้นที่ราว 500MB แบ็กอัปไฟล์แบบเพิ่มพูนกินพื้นที่ราว 200MB ค่าใช้จ่ายพื้นที่จัดเก็บรวมต่อเดือนไม่ถึง 20 หยวน การตั้งค่านี้เชื่อถือได้กว่าการติดตั้งปลั๊กอินสำรองข้อมูลแบบเสียเงินตัวไหนก็ตาม

สคริปต์สำรองข้อมูลเขียนอย่างไร ให้สอดคล้องกับแนวคิด เทคโนโลยีสแตกของ crater เรื่องการดำเนินงานอัตโนมัติ: ไม่พึ่งปลั๊กอินแบบ GUI ใช้ cron กับสคริปต์ ถ้าล้มเหลวให้ส่งการแจ้งเตือน

สอง ความถี่และนโยบายเก็บรักษา: ไม่ใช่ยิ่งสำรองบ่อยยิ่งดี

ข้อสรุปที่ขัดกับสัญชาตญาณ: การสำรองข้อมูลไม่ได้ยิ่งบ่อยยิ่งดี สำรองบ่อยเกินไปจะกินพื้นที่จัดเก็บและ IO มหาศาล แถมตอนกู้คืนยังยุ่งกว่าเดิม เพราะคุณจะเจอกองไฟล์สำรองที่หน้าตาใกล้เคียงกันไปหมด จนแยกไม่ออกว่าอันไหนสะอาด ความถี่ที่เหมาะสมควรกำหนดตามความเร็วของการเปลี่ยนแปลงทางธุรกิจ: ฐานข้อมูลสำรองทุก 4 ชั่วโมง เพราะลูกค้าอาจส่งคำถามเข้ามาได้ตลอด ส่วนไฟล์สำรองวันละครั้ง เพราะการอัปโหลดรูปไม่บ่อย

นโยบายการเก็บรักษาใช้โมเดลปู่-พ่อ-ลูกสามชั้น: ไฟล์สำรองรายวันเก็บ 30 วัน รายสัปดาห์เก็บ 12 สัปดาห์ รายเดือนเก็บ 12 เดือน รายปีเก็บ 3 ปี วิธีนี้ทำให้คุณกู้คืนบทความที่เผลอลบเมื่อวานได้ และกู้คืนเวอร์ชันสะอาดก่อนถูกแฮ็กเมื่อครึ่งปีก่อนได้ด้วย

ประเภทการสำรองข้อมูล ความถี่ ระยะเวลาจัดเก็บ ตำแหน่งที่จัดเก็บ ใช้ทำอะไร
full backup ฐานข้อมูล ตี 3 ทุกวัน 30 วัน object storage นอกสถานที่ กู้คืนกรณีลบพลาดในชีวิตประจำวัน
binlog แบบเพิ่มทีละส่วนของฐานข้อมูล ทุก 4 ชั่วโมง 7 วัน เครื่องท้องถิ่น+ต่างพื้นที่ กู้คืนแม่นถึงระดับนาที
ไฟล์แบบเต็มจำนวน เช้ามืดวันอาทิตย์ 12 สัปดาห์ object storage นอกสถานที่ ย้อนกลับระดับสัปดาห์
ไฟล์แบบเพิ่มทีละส่วนด้วย rsync เช้ามืดทุกวัน 30 วัน object storage นอกสถานที่ ย้อนกลับระดับวัน
จัดเก็บรายเดือน วันที่ 1 ของทุกเดือน 12 เดือน สำรองเย็นแบบ Glacier รายเดือนเพื่อการปฏิบัติตามข้อกำหนดและระยะยาว
จัดเก็บรายปี มกราคมของทุกปี 3 ปี สำรองเย็นแบบ Glacier การตรวจสอบประจำปีและข้อมูลย้อนหลัง

ตัวอย่างสถานการณ์: เว็บไซต์ที่ทำตลาดต่างประเทศแห่งหนึ่งพบว่าฐานข้อมูลถูกฝังเนื้อหาอันตรายเมื่อบ่ายวันที่ 15 มีนาคม เมื่อมี binlog backup แบบ incremental ก็กู้คืนฐานข้อมูลกลับไปยังเที่ยงวันวันที่ 15 มีนาคม ซึ่งเป็นสถานะก่อนการโจมตี เสียข้อมูลใบสอบถามแค่ครึ่งวัน แต่ถ้ามีแค่ full backup รายวัน จะกู้คืนได้แค่ตี 3 ของวันที่ 15 มีนาคม เสียใบสอบถามไปทั้งวัน นี่คือความต่างระหว่าง incremental ทุก 4 ชั่วโมงกับ full backup รายวัน

สาม ตำแหน่งจัดเก็บ: หลักการ 3-2-1 ต่างพื้นที่คือข้อบังคับ

หลักการสำรองข้อมูล 3-2-1 หมายความว่า: ข้อมูลสำคัญเก็บไว้ 3 ชุด เก็บบนสื่อ 2 ประเภทที่ต่างกัน โดย 1 ชุดวางไว้ต่างพื้นที่ นี่ไม่ใช่ทฤษฎี แต่สรุปมาจากเหตุการณ์ ransomware นับครั้งไม่ถ้วน ในอุบัติเหตุจริง ผู้โจมตีเข้ารหัสเซิร์ฟเวอร์แล้วยังเข้ารหัสไฟล์สำรองในเครื่องด้วย เพราะไฟล์สำรองอยู่เครื่องเดียวกับเว็บไซต์

เลือกสามชั้นการจัดเก็บอย่างไร: ชั้นแรกไฟล์สำรองในเครื่อง วางไว้พาร์ติชันดิสก์อีกตัวของเซิร์ฟเวอร์ กู้คืนเร็วที่สุดแต่ทนความเสี่ยงได้แย่ที่สุด ชั้นที่สอง object storage ต่างพื้นที่ ใช้ AWS S3 หรือ Alibaba Cloud OSS สำรองข้าม availability zone ไม่กลัวเซิร์ฟเวอร์เครื่องเดียวล่ม ชั้นที่สามคลังสำรองเย็น ใช้ S3 Glacier หรือ OSS Archive ถูกแต่กู้คืนช้า ใช้สำหรับการปฏิบัติตามข้อกำหนดรายปีและการเก็บระยะยาว

ชั้นการจัดเก็บ ตำแหน่ง ความเร็วในการกู้คืน ต้นทุน การใช้งานหลัก
ไฟล์สำรองบนดิสก์ในเครื่อง พาร์ติชันอื่นของเซิร์ฟเวอร์ ระดับวินาที 0 หยวน กู้คืนเร็วในชีวิตประจำวัน
object storage นอกสถานที่ S3/OSS ข้ามโซน ระดับนาที ประมาณ 0.02 หยวน/GB/เดือน ไฟล์สำรองหลัก ซิงก์ทุกวัน
คลังสำรองเย็น Glacier/OSS Archive ระดับชั่วโมงถึงวัน ประมาณ 0.005 หยวน/GB/เดือน การปฏิบัติตามข้อกำหนดรายปีและระยะยาว
สื่อออฟไลน์ ฮาร์ดดิสก์/เทปในเครื่อง หยิบแผ่นด้วยมือ ต้นทุนฮาร์ดดิสก์ครั้งเดียว ตัวสำรองกรณี ransomware ขั้นรุนแรง

เตือนสวนทางความเชื่อ:ไฟล์สำรองข้อมูลอย่าวางไว้ในโฟลเดอร์เว็บ หลายคนวางไฟล์สำรองไว้ที่ wp-content/backup/ คิดว่ามีสำเนาเพิ่มอีกชุด แต่จริงๆ แล้วแฮกเกอร์สแกนเจอเส้นทางนี้ก็ดาวน์โหลดได้เลย ชื่อฐานข้อมูลและชื่อตารางรั่วหมด วิธีที่ถูกคือวางไฟล์สำรองไว้นอก web root หรืออัปโหลดไป object storage อัตโนมัติหลังสำรองเสร็จแล้วลบสำเนาในเครื่องทิ้ง ขั้นตอนการเก็บกวาดหลังถูกแฮกดูที่หลังเว็บไซต์ถูกแฮก。

และ CDN เร่งความเร็วทั่วโลก ข้อควรระวังในการใช้งาน:CDN cache ไม่ใช่ backup มันแค่คัดลอกเนื้อหา static ของคุณไปไว้ที่ edge node ถ้า origin ล่ม cache บน CDN ก็หมดอายุเช่นกัน อย่าเอา CDN cache มาเป็นแผนกู้คืนระบบ

สี่、ซ้อมกู้คืน:ไตรมาสละครั้ง เพื่อพิสูจน์ว่า backup ใช้ได้จริง

ขั้นตอนที่ถูกละเลยมากที่สุดในแผนสำรองข้อมูลคือการซ้อมกู้คืน หลายองค์กรรันสคริปต์สำรองข้อมูลมาหนึ่งปีแต่ไม่เคยกู้คืนสักครั้ง พอเกิดเหตุจริงถึงพบว่าไฟล์สำรองเสีย หารหัสผ่านแตกไฟล์ไม่เจอ หรือขั้นตอนกู้คืนทำตามไม่ได้เลย ในเหตุการณ์จริงกว่า 40% ของการกู้คืน backup ล้มเหลว สาเหตุมาจากสามประเภทนี้

ทำ recovery drill อย่างไร: ทุกไตรมาสเลือกช่วง maintenance window หนึ่งช่วง ดึง backup ล่าสุดจาก object storage ต่างพื้นที่ กู้คืนไปยังสภาพแวดล้อมทดสอบใหม่เอี่ยม แล้วรันกระบวนการทั้งหมดให้ครบ ทั้งกู้คืนไฟล์ นำเข้าฐานข้อมูล ตั้งค่า nginx เข้าถึงเว็บไซต์ และตรวจสอบการส่งฟอร์มสอบถาม จับเวลาทั้งกระบวนการ บันทึก RTO (เป้าหมายเวลากู้คืน) และ RPO (ปริมาณข้อมูลที่สูญหาย) ที่เกิดขึ้นจริง ส่วนจะกำหนด RTO/RPO อย่างไรดูได้ที่การกู้คืนระบบหลังภัยพิบัติของเว็บไซต์อิสระและนิยาม RTO/RPO。

ขั้นตอนการซ้อม การดำเนินการ เกณฑ์ผ่าน จุดที่มักล้มเหลว
1 ดึงข้อมูลสำรอง ดาวน์โหลด full + incremental ล่าสุดจาก S3 ดาวน์โหลดเสร็จภายใน 5 นาที credential ของ object storage หมดอายุ
2 ตรวจสอบการแตกไฟล์ tar -tzf เพื่อดูรายการไฟล์ จำนวนไฟล์ครบถ้วน ไม่เสียหาย แพ็กเกจ gzip เสีย ไม่มีการตรวจสอบ
3 กู้คืนไฟล์ แตกไฟล์ไปยังโฟลเดอร์เว็บของสภาพแวดล้อมทดสอบ สิทธิ์ถูกต้อง 755/644 สิทธิ์หาย เว็บจอขาว
4 นำเข้าฐานข้อมูล mysql < backup.sql จำนวนตารางตรงกับบน production charset ผิด ภาษาจีนเป็นตัวขยะ
5 ตั้งค่า nginx คัดลอก config แล้วเปลี่ยนพอร์ต เข้าถึงโดเมนได้ กฎ rewrite หาย
6 ตรวจสอบฟังก์ชัน ลองส่งฟอร์มสอบถามหนึ่งรอบ อีเมลได้รับ CRM บันทึกเข้าฐานข้อมูล รหัสผ่าน SMTP ฮาร์ดโค้ดไว้ใน config

ตัวอย่างสถานการณ์:ทีมหนึ่งไม่ซ้อมกู้คืนมาครึ่งปี พอฮาร์ดดิสก์เซิร์ฟเวอร์เสียถึงดึง backup ต่างพื้นที่มาใช้ ปรากฏว่าแตกไฟล์ไปได้ครึ่งทางก็ error กลายเป็นว่าสคริปต์สำรองข้อมูลเมื่อสามเดือนก่อนตั้งค่า gzip ผิด ทำให้ backup สองเดือนหลังจากนั้นเสียหายทั้งหมด สุดท้ายกู้คืนได้แค่จาก backup เก่าที่สมบูรณ์กว่า ทำให้ข้อมูลสองเดือนหายไป อุบัติเหตุแบบนี้แค่ซ้อมกู้คืนไตรมาสละครั้งก็เจอล่วงหน้าได้

การตั้งค่ามอนิเตอร์ backup ดูที่การมอนิเตอร์และแจ้งเตือนเว็บไซต์:งานสำรองข้อมูลล้มเหลวต้องแจ้งเตือนผ่าน WeCom ขนาดไฟล์สำรองลดฮวบต้องแจ้งเตือน อายุ backup เกิน 24 ชั่วโมงต้องแจ้งเตือน รายการบำรุงรักษาประจำวันดูที่งาน 6 อย่างที่ต้องทำทุกเดือนในช่วงดูแลเว็บไซต์。

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

เว็บไซต์อิสระใช้ปลั๊กอินอะไรสำรองข้อมูล UpdraftPlus พอไหม?
UpdraftPlus เวอร์ชันฟรีก็เพียงพอแล้ว รองรับการแยกสำรองฐานข้อมูลและไฟล์ออกจากกัน ซิงค์ตรงไปยัง S3, Dropbox, Google Drive ได้ แต่การใช้ปลั๊กอินมีข้อจำกัดสองอย่าง หนึ่งคือตอนสำรองข้อมูลจะกินโปรเซสของเว็บ ช่วงทราฟฟิกสูงจะทำให้เว็บช้า สองคือถ้าไฟล์สำรองเก็บไว้ในไดเรกทอรีเว็บ สแกนเนอร์จะดาวน์โหลดไปได้ วิธีที่เสถียรกว่าคือใช้สคริปต์ mysqldump กับ rsync ระดับเซิร์ฟเวอร์ ตั้ง cron ให้รันตามเวลา พอสำรองเสร็จให้อัปโหลดไปยัง object storage ต่างพื้นที่อัตโนมัติและลบสำเนาในเครื่องทิ้ง สองวิธีนี้ทำคู่กันได้ ปลั๊กอินใช้กู้คืนเร็ว สคริปต์ใช้เป็นตัวสำรองหลัก
ควรตั้งความถี่สำรองข้อมูลเท่าไหร่ ต้องสำรองทุกชั่วโมงไหม
ไม่จำเป็น เว็บ B2B ความถี่ในการเปลี่ยนแปลงของอีเมลสอบถามและเนื้อหาไม่ได้สูงขนาดนั้น แนะนำให้สำรองฐานข้อมูลแบบ incremental binlog ทุก 4 ชั่วโมง ร่วมกับ full dump ทุกวัน ส่วนไฟล์ใช้ rsync แบบ incremental ทุกวัน ร่วมกับ full ทุกสัปดาห์ วิธีนี้การกู้คืนปกติจะเสียข้อมูลมากสุด 4 ชั่วโมง กรณีร้ายแรงใช้ binlog เจาะจงได้ถึงระดับนาที ถ้าเป็นเว็บอีคอมเมิร์ซที่ออเดอร์เปลี่ยนทุกนาที จึงค่อยพิจารณาสำรองทุกชั่วโมง สำรองบ่อยเกินไปจะกินพื้นที่และ IO มหาศาล พอกู้คืนจริงกลับไม่รู้ว่าจะเลือกไฟล์ไหน
หลักการสำรองข้อมูล 3-2-1 ลงมือทำจริงอย่างไร
สำเนาสามชุด: ชุดแรกอยู่บนพาร์ติชันดิสก์อีกตัวในเซิร์ฟเวอร์เดียวกัน กู้คืนเร็วที่สุด ชุดที่สองอยู่บน object storage ต่างพื้นที่ เช่น S3 หรือ Alibaba Cloud OSS ข้าม availability zone ชุดที่สามอยู่ในการเก็บถาวรแบบ cold backup เช่น Glacier เก็บไว้ระยะยาว สื่อสองแบบ: ดิสก์ในเครื่องกับ cloud storage นับเป็นสองแบบ ต่างพื้นที่หนึ่งชุด: cloud storage ต้องไม่อยู่ห้องเซิร์ฟเวอร์เดียวกันหรือผู้ให้บริการคลาวด์รายเดียวกันกับต้นทาง ควรข้าม availability zone ให้ได้ ต้องมีครบทั้งสามชั้น ขาดชั้นใดไม่ได้ ในเหตุการณ์ ransomware เว็บที่มีแค่ backup ในเครื่องมักล่มหมด เพราะไฟล์ backup ถูกเข้ารหัสไปด้วย
ทำ recovery drill อย่างไร ทำบ่อยแค่ไหน
ไตรมาสละครั้ง ขั้นตอนคือ ดึงสำเนา full ล่าสุดจาก object storage ต่างพื้นที่ มา restore ในสภาพแวดล้อมทดสอบใหม่ทั้งหมด ทำตามขั้นตอนครบ แตกไฟล์ นำเข้าฐานข้อมูล ตั้งค่า nginx เข้าเว็บ ส่งอีเมลสอบถามทดสอบหนึ่งฉบับ ยืนยันว่า CRM ได้รับ จับเวลาทั้งกระบวนการ บันทึกเวลากู้คืนจริงและปริมาณข้อมูลที่สูญเสีย ในเหตุการณ์จริงกว่า 40% ของการกู้คืนสำรองข้อมูลล้มเหลว เพราะไฟล์สำรองเสียหายหรือกุญแจหาย ต้องกู้คืนจริงสักครั้งถึงจะเจอปัญหาเหล่านี้
ไฟล์สำรองควรเข้ารหัสไหม เก็บกุญแจอย่างไร
ต้องเข้ารหัสเสมอ โดยเฉพาะ backup ฐานข้อมูล เพราะข้างในมี inquiry ข้อมูลลูกค้า และรหัสผ่านฐานข้อมูลที่อยู่ใน wp-config.php ใช้ gpg หรือ openssl เข้ารหัสไฟล์ backup เก็บรหัสผ่านไว้ใน password manager ห้ามเขียนไว้ในสคริปต์ backup ผลของการทำกุญแจหายก็เหมือนไม่มี backup คือแตกไฟล์ backup ไม่ได้ แนะนำให้ใช้กุญแจสองดอก ดอกหนึ่งใช้ประจำ อีกดอกใช้สำหรับ archive โดยพิมพ์กุญแจ archive ใส่กระดาษหนึ่งชุดแล้วล็อกไว้ในลิ้นชัก ฝั่ง object storage ให้เปิด server-side encryption อีกชั้น เป็นการป้องกันสองชั้น
ถ้าสคริปต์ backup ล้มเหลว จะรู้ได้ยังไง แจ้งเตือนยังไง
ตัวงาน backup เองต้องถูก monitor กฎแจ้งเตือนสามข้อ ข้อแรก งาน backup ออกด้วย exit code ที่ไม่ใช่ 0 ให้แจ้งเตือนทันที ข้อสอง ขนาดไฟล์ backup ลดลงเกิน 30% จากวันก่อน ให้แจ้งเตือน อาจเกิดจากเชื่อมต่อฐานข้อมูลไม่สำเร็จจนได้ backup เปล่า ข้อสาม อายุ backup ล่าสุดเกิน 24 ชั่วโมง ให้แจ้งเตือน แปลว่าสคริปต์ไม่ได้รัน ช่องทางแจ้งเตือนใช้ WeCom หรืออีเมล อย่าเขียนแค่ log ในเครื่อง เพราะถ้าเซิร์ฟเวอร์ล่มก็มองไม่เห็น log ในเครื่อง วิธีสร้างระบบ monitor ดูที่การมอนิเตอร์และแจ้งเตือนเว็บไซต์ บทความนี้

ทิ้งท้าย

เรื่อง backup สิ่งที่ห้ามที่สุดคือ “ติดปลั๊กอินแล้วคิดว่าจบ” ปลั๊กอินรันทุกวัน ไฟล์ backup ถูกสร้างทุกวัน แต่ไม่เคย restore สักครั้ง พอเกิดเรื่องจริงถึงรู้ว่า backup เสีย รหัสผ่านหาย ขั้นตอนทำไม่ผ่าน กลยุทธ์ backup ครึ่งหนึ่งคือเก็บยังไง อีกครึ่งคือ restore ยังไง ซึ่งอย่างหลังสำคัญกว่าสิบเท่า

ลงมือสามขั้น ขั้นแรก วาง backup สามชั้นตามหลัก 3-2-1 ให้ครบ ชั้นละหนึ่งชุด ได้แก่ ในเครื่อง object storage ต่างพื้นที่ และ cold archive ขั้นที่สอง กำหนดความถี่และนโยบายการเก็บ ฐานข้อมูลเพิ่มแบบ incremental ทุก 4 ชั่วโมงบวก full ทุกวัน ไฟล์เพิ่มแบบ incremental ทุกวัน เก็บ 30 วันถึง 3 ปี ขั้นที่สาม ทุกไตรมาสซ้อม restore หนึ่งครั้ง เดินขั้นตอน restore ให้ครบใน test environment แล้วบันทึก RTO และ RPO ที่ได้จริง ทำสามขั้นนี้เสร็จ ถึงจะกล้าบอกว่ามี backup

ประโยคที่จำได้ง่าย ๆ backup ที่ไม่เคย restore เท่ากับไม่มี backup สคริปต์ backup รันมาหนึ่งปีไม่เท่ากับการซ้อม restore ครบหนึ่งครั้ง ในอุบัติเหตุจริง 40% ของ backup เปิดไม่ได้ในวินาทีสำคัญ

crater
crater ผู้เชี่ยวชาญ环形山

ทางการขององค์กร · 环形山 Crater

环形山 (Crater) เป็นบริษัทให้บริการขยายตลาดต่างประเทศที่เชี่ยวชาญการพัฒนาเว็บไซต์ WordPress แบบ Independent Site + Google SEO + GEO เพื่อการเติบโตแบบครบวงจร ให้บริการในกลุ่มธุรกิจ Smart Hardware, Industrial Equipment, SaaS, New Energy และอื่นๆ

ความสามารถของผลิตภัณฑ์ไวท์เปเปอร์ระเบียบวิธีรายงานอุตสาหกรรม
965แชร์
78บทความในคลังความรู้