Popis protokolování před zápisem
Při provedení změn v databázi, například INSERTS nebo DELETES, se tyto změny nejprve zapíšou do protokolu a pak se zapíšou jenom do datových souborů na disku. Tato operace se nazývá protokol s hlavičkou zápisu, protože změny se zapisují do protokolu před jejich potvrzením do datových souborů. Pokud se jedná o problém, například ztrátu výkonu, protokol vždy uchovává nejnovější data a dá se použít k zajištění konzistentního stavu databáze.
Druhou výhodou je to, že zápisem změn do protokolu nejprve lze změny tabulek a indexů zapisovat v dávkách, nikoli jednotlivě. Tento proces snižuje počet zápisů na disk potřebných k udržování tabulek a indexů v aktualizovaném stavu. Zápisy do protokolu jsou rychlé, protože se provádějí postupně. Pomalejší zápisy do tabulek a indexů je možné bezpečně provádět v dávkách, protože všechna data je možné obnovit z protokolu. U úloh, které obvykle zahrnují mnoho malých aktualizací, se zlepší výkon.
Poznámka:
Pro místní implementace PostgreSQL je soubor protokolu uložený v adresáři pg_wal . Azure Database for PostgreSQL neposkytuje přístup k systému souborů, takže si nemusíte dělat starosti s fyzickým úložištěm souboru protokolu.
Existuje několik parametrů serveru, které umožňují řídit, jak protokolování s předstihem pro zápis funguje a jak ho optimalizuje pro vaši úlohu:
- commit_delay – zpoždění mezi potvrzením transakce a vyprázdněním protokolu na disk.
- wal_buffers – počet vyrovnávacích pamětí diskové stránky ve sdílené paměti pro protokolování s předstihem při zápisu (WAL).
- max_wal_size – maximální velikost, aby se wal před aktivací automatického kontrolního bodu zvětšil.
- wal_writer_delay – časový interval mezi vyprázdněními WAL prováděným zapisovačem WAL.
- wal_compression – zda jsou komprimované full-page zápisy do souboru WAL.
- wal_level – určuje, kolik informací je zapsáno do WAL. Povolené hodnoty jsou REPLIKA nebo LOGICKÉ.
Obnovení k určitému bodu v čase
Primárním účelem hlavičkového protokolu zápisu (WAL) je zajistit konzistenci a stálost databáze, pokud dojde k chybovému ukončení. Místní verze PostgreSQL umožňuje použití protokolu jako archivu, což umožňuje obnovení k určitému bodu v čase pomocí nastavení konfigurace archive_mode a archive_command.
Azure Database for PostgreSQL je spravovaná služba, která neumožňuje přístup k základnímu systému souborů. Zahrnuje však automatické úplné zálohování serveru včetně všech databází. Tato záloha umožňuje znovu vytvořit data k určitému bodu v čase. Zálohování se naplánuje automaticky a provádí se jednou denně. Pokud potřebujete provést obnovení, můžete obnovit až do počtu dnů, které jste zadali pro uchovávání záloh, až do maximálního počtu 35 dnů. Určení doby uchovávání záloh pro:
- Na webu Azure Portal přejděte na flexibilní server Azure Database for PostgreSQL.
- V části Přehled vyberte konfiguraci.
- V části Zálohování vyhledejte dobu uchovávání záloh (ve dnech). Posuvník umožňuje vybrat počet dní, po které chcete zachovat zálohy.
- Chcete-li zachovat změny, vyberte Uložit .