Senario
Pangkalan data produksi anda (MySQL atau PostgreSQL) mengalami masa sandaran dan pemulihan yang perlahan, menjejaskan Perjanjian Tahap Perkhidmatan (SLA).
Gejala
Tugas sandaran mengambil masa lebih lama daripada yang dijangkakan; Objektif Masa Pemulihan (RTO) dilanggar; I/O menunggu tinggi semasa sandaran; proses pulih yang perlahan.
Diagnosis
- Analisis kaedah sandaran: Logik (mysqldump/pg_dump) vs fizikal (XtraBackup/pg_basebackup). Sandaran fizikal biasanya lebih cepat tetapi lebih besar.
- Periksa sumber perkakasan: Gunakan
iostat,vmstatuntuk memantau I/O cakera dan beban CPU. I/O tinggi semasa sandaran mungkin bertepatan dengan perlambatan pangkalan data. - Penanda aras masa pemulihan: Pulihkan sandaran dalam persekitaran ujian dan ambil masa. Bandingkan tahap mampatan (contohnya gzip vs lz4).
- Semak parameter konfigurasi:
innodb_io_capacitydaninnodb_flush_log_at_trx_commitMySQL mempengaruhi penulisan;wal_compressiondancheckpoint_completion_targetPostgreSQL mempengaruhi kelajuan sandaran.
Arahan
MySQL
- Masa mysqldump:
time mysqldump -u root -p database > dump.sql - Periksa status InnoDB:
mysql> SHOW ENGINE INNODB STATUS\Guntuk melihat jika utas latar belakang disekat oleh sandaran. - Analisis pertanyaan perlahan semasa sandaran dengan Percona Toolkit:
pt-query-digest /var/log/mysql/slow.log
PostgreSQL
- Masa pg_dump:
time pg_dump -U postgres database > dump.sql - Pantau pertanyaan aktif:
SELECT * FROM pg_stat_activity WHERE state = 'active';Cari pertanyaan berjalan lama yang dicetuskan oleh sandaran. - Periksa tetapan vakum:
SHOW autovacuum_vacuum_threshold;Vakum terlalu kerap boleh meningkatkan I/O.
Kawalan Risiko
- Sentiasa uji sandaran dan pemulihan pada persekitaran pementasan sebelum menggunakan perubahan ke produksi.
- Gunakan sandaran tambahan (contohnya mysqlbinlog atau pengarkiban WAL PostgreSQL) untuk mengurangkan kekerapan sandaran penuh.
- Pantau penggunaan sumber: tetapkan amaran apabila penggunaan I/O melebihi 80%.
- Tetapkan tamat masa kunci yang munasabah:
lock_wait_timeoutMySQL,statement_timeoutPostgreSQL. - Gunakan mampatan dengan berhati-hati: mampatan tinggi (contohnya gzip -9) menggunakan CPU dan boleh memperlahankan pangkalan data.
Pengembalian Semula
Jika prestasi sandaran merosot selepas perubahan, kembalikan parameter secara berperingkat atau tukar kembali ke kaedah sandaran sebelumnya. Sentiasa simpan konfigurasi strategi sandaran yang terakhir diketahui baik.
Pengesahan
- Sahkan integriti sandaran dengan checksum:
mysqldump ... | md5sumdan bandingkan dengan sandaran sebelumnya. - Pulihkan sandaran dalam persekitaran terpencil dan sahkan kiraan baris:
SELECT COUNT(*) FROM table; - Lakukan penulisan ujian untuk memastikan pangkalan data boleh ditulis.
Bila Menghantar Tiket OpsGlobal
- RTO secara konsisten melebihi ambang yang ditetapkan (contohnya 4 jam) dan tidak boleh diperbaiki dengan pelarasan dalaman.
- Kadar kegagalan sandaran >1% dengan punca tidak diketahui.
- Perkakasan disyaki sebagai masalah (contohnya masa tindak balas cakera >20ms) tetapi tiada keupayaan untuk menaik taraf.
- Memerlukan penilaian profesional strategi sandaran (contohnya pengarkiban awan hibrid).
Pasukan SRE OpsGlobal boleh menyediakan audit mendalam, integrasi alat, dan sokongan pemantauan 24/7.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Database dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Penerokaan mendalam tentang diagnosis dan pengoptimuman prestasi sandaran dan pemulihan untuk MySQL dan PostgreSQL, termasuk senario dunia sebenar, arahan, kawalan risiko, dan bila untuk menghantar tiket ke OpsGlobal.
Langkah Penyelesaian
Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.
Contoh Arahan
Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.
Risiko
Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.
Pelan Rollback
Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.
Senarai Serahan
Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.
Perlu bantuan isu teknikal serupa?
Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.