Tempah Konsultasi Hantar Tiket

Penalaan Prestasi Sandaran dan Pemulihan MySQL dan PostgreSQL

Pelajari cara mendiagnosis dan mengoptimumkan prestasi sandaran dan pemulihan pangkalan data MySQL dan PostgreSQL dalam persekitaran pengeluaran, termasuk arahan praktikal dan kawalan risiko.

Penalaan Prestasi Sandaran dan Pemulihan MySQL dan PostgreSQL
Database 6min 27 paparan 2026-07-25
MySQLPostgreSQLSandaranPemulihanPrestasiSRE

Senario

Sandaran pangkalan data pengeluaran perlahan atau pemulihan mengambil masa yang lama, menjejaskan SLA. Contoh: sandaran mysqldump untuk pangkalan data MySQL 1TB mengambil masa lebih 8 jam, atau pg_dump untuk PostgreSQL tersekat di tengah jalan.

Gejala

  • CPU rendah tetapi I/O menunggu tinggi semasa sandaran (iostat menunjukkan %util hampir 100%)
  • Pertumbuhan WAL (PostgreSQL) atau redo log (MySQL) yang berlebihan semasa pemulihan
  • Proses sandaran menggunakan terlalu banyak memori sehingga OOM
  • Data tidak konsisten atau kerosakan indeks selepas pemulihan

Diagnosis

MySQL

SHOW ENGINE INNODB STATUS\G
-- Periksa History list length dan Log sequence number
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads';
-- Buffer pool reads tinggi menunjukkan cache miss

Gunakan pt-query-digest untuk menganalisis log pertanyaan perlahan bagi pertanyaan panas semasa sandaran.

PostgreSQL

SELECT * FROM pg_stat_progress_vacuum;
-- Periksa kemajuan vacuum, yang mungkin menyekat sandaran
SELECT * FROM pg_stat_replication WHERE state = 'streaming';
-- Periksa ketinggalan replikasi

Gunakan pg_stat_statements untuk mencari pertanyaan frekuensi tinggi.

Arahan

Sandaran MySQL Dioptimumkan

  • Gunakan mysqldump --single-transaction --innodb-optimize-keys --compress untuk mengurangkan kunci dan overhead rangkaian.
  • Sandaran selari: mydumper atau mysqlpump (8.0+) dengan --parallel-workers=4.
  • Sandaran fizikal: xtrabackup --parallel=4 --compress --compress-threads=4.

Pemulihan dipercepat:

mysql -e 'SET GLOBAL innodb_flush_log_at_trx_commit=2;'
# Hanya semasa pemulihan; lihat kawalan risiko di bawah

Sandaran PostgreSQL Dioptimumkan

  • pg_dump -j 4 --format=directory --compress=9 untuk sandaran dimampatkan selari.
  • Gunakan pgbackrest atau barman untuk sandaran fizikal:
pgbackrest --stanza=my_stanza --type=full --process-max=4 backup

Pemulihan melangkau WAL:

pg_restore -j 4 --disable-triggers --exit-on-error --dbname=mydb mydump.dmp

Kawalan Risiko

  • Hadkan I/O semasa sandaran: Gunakan ionice -c 2 -n 7 untuk menurunkan keutamaan.
  • Pemulihan MySQL: Menetapkan innodb_flush_log_at_trx_commit=2 boleh kehilangan sehingga 1 saat data sekiranya ranap; hanya untuk pemulihan tidak kritikal.
  • Pemulihan PostgreSQL: Gunakan --single-transaction atau --no-owner untuk mengelakkan isu kebenaran.
  • Sentiasa ambil snapshot atau simpan fail sandaran asal sebelum pemulihan.

Gulung Balik

  • Proses sandaran tersekat: Gunakan kill -9 (MySQL) atau pg_terminate_backend (PostgreSQL), kemudian bersihkan objek yang tinggal.
  • Kegagalan pemulihan: Gulung balik ke snapshot atau jalankan semula dengan sandaran yang berjaya sebelumnya.

Pengesahan

  • Keutuhan sandaran: mysqlcheck -A (MySQL) atau pg_amcheck (PostgreSQL).
  • Ujian pemulihan: Lakukan pemulihan dalam persekitaran terpencil, jalankan SELECT count(*) dan pertanyaan perniagaan.
  • Penanda aras prestasi: Bandingkan QPS sebelum dan selepas sandaran pada pengeluaran.

Bila Hantar Tiket OpsGlobal

  • Isu prestasi berterusan selepas penalaan.
  • Sandaran menggunakan >50% sumber sistem yang menjejaskan perniagaan.
  • Kerosakan data atau kehilangan separa selepas pemulihan.
  • Perlu bantuan merangka strategi sandaran automatik atau pelan pemulihan bencana.

Senario Penggunaan

Sesuai untuk pasukan yang menyelesaikan isu Database dan memerlukan aliran kerja yang jelas.

Latar Belakang Masalah

Pelajari cara mendiagnosis dan mengoptimumkan prestasi sandaran dan pemulihan pangkalan data MySQL dan PostgreSQL dalam persekitaran pengeluaran, termasuk arahan praktikal dan kawalan risiko.

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.

Tiket Hubungi WhatsApp Konsultasi