INSERT triggery zdvojnásobí počítadla při restore
import { Aside } from ‘@astrojs/starlight/components’;
Symptom
Sekce “Symptom”Po obnově záznamů ze zálohy mají počítadla (count cache) dvojnásobné hodnoty.
Root cause
Sekce “Root cause”INSERT triggery (např. update_count) se spustí i při bulk restore a přičtou k hodnotám, které už byly ve zálohách správné. Výsledek = 2×.
Fix
Sekce “Fix”Obal restore transakci vypnutím triggerů:
BEGIN;SET LOCAL session_replication_role = replica; -- vypne user triggery-- ... bulk INSERT ...COMMIT; -- LOCAL se resetne s transakcíJak se tomu vyvarovat v jiných systémech
Sekce “Jak se tomu vyvarovat v jiných systémech”- Detection: seznam INSERT/UPDATE triggerů, které mění denormalizovaná počítadla.
- Anti-pattern: restore přes běžnou aplikační cestu, která spouští stejné triggery jako runtime.
- Lepší přístup: import s
replicarolí, nebo přepočet počítadel po importu místo inkrementu.