Megosztás a következőn keresztül:


Ajánlott eljárások pg_dump és pg_restore rugalmas Azure Database for PostgreSQL-kiszolgálóhoz

A következőkre vonatkozik: Azure Database for PostgreSQL – Rugalmas kiszolgáló

Ez a cikk áttekinti a pg_dump és pg_restore felgyorsításához szükséges lehetőségeket és ajánlott eljárásokat. A pg_restore végrehajtásához szükséges legjobb kiszolgálókonfigurációkat is ismerteti.

Ajánlott eljárások pg_dump

A pg_dump segédprogrammal rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázist nyerhet ki szkriptfájlba vagy archív fájlba. A pg_dump használatával a teljes memóriakép csökkentésére használható parancssori beállítások közül néhány a következő szakaszokban található.

Címtárformátum(-Fd)

Ez a beállítás egy címtárformátumú archívumot ad ki, amelyet beírhat pg_restore. Alapértelmezés szerint a kimenet tömörítve van.

Párhuzamos feladatok(-j)

A pg_dump egyidejűleg futtathat memóriakép-feladatokat a párhuzamos feladatok beállításával. Ez a beállítás csökkenti a teljes memóriakép-időt, de növeli az adatbázis-kiszolgáló terhelését. Azt javasoljuk, hogy a forráskiszolgáló metrikáinak, például a PROCESSZOR, a memória és az IOPS (bemeneti/kimeneti műveletek másodpercenkénti) használatának szigorú monitorozása után egy párhuzamos feladatértéket adjon meg.

Ha a párhuzamos feladatok beállításához állít be értéket, pg_dump a következőkre van szükség:

  • A kapcsolatok számának +1 párhuzamos feladattal kell egyenlőnek lennie, ezért ügyeljen arra, hogy ennek megfelelően állítsa be az max_connections értéket.
  • A párhuzamos feladatok számának kisebbnek vagy egyenlőnek kell lennie az adatbázis-kiszolgálóhoz lefoglalt virtuális processzorok számával.

Tömörítés(-Z0)

Ez a beállítás a használni kívánt tömörítési szintet határozza meg. A nulla azt jelenti, hogy nincs tömörítés. A pg_dump folyamat nulla tömörítése segíthet a teljesítménynövekedésben.

Táblablobok és porszívózás

A pg_dump folyamat megkezdése előtt gondolja át, hogy szükséges-e az asztal porszívózása. A táblákon való bloat jelentősen növeli pg_dump időket. A táblablobok azonosításához hajtsa végre a következő lekérdezést:

select schemaname,relname,n_dead_tup,n_live_tup,round(n_dead_tup::float/n_live_tup::float*100) dead_pct,autovacuum_count,last_vacuum,last_autovacuum,last_autoanalyze,last_analyze from pg_stat_all_tables where n_live_tup >0;

A dead_pct lekérdezés oszlopa az elhalt kumulák százalékos aránya az élő kukákhoz képest. Egy tábla magas dead_pct értéke azt jelezheti, hogy a tábla nincs megfelelően kiürítve. További információ: Autovacuum tuning in Azure Database for PostgreSQL – Flexible Server.

Minden egyes azonosított tábla esetében manuális vákuumelemzést végezhet az alábbiak futtatásával:

vacuum(analyze, verbose) <table_name> 

PITR-kiszolgáló használata

Online vagy élő kiszolgálón pg_dump hajthat végre. Konzisztens biztonsági mentéseket készít még akkor is, ha az adatbázist használják. Ez nem akadályozza meg más felhasználókat az adatbázis használatában. A pg_dump folyamat megkezdése előtt vegye figyelembe az adatbázis méretét és más üzleti vagy ügyféligényeket. A kis adatbázisok jó jelöltek lehetnek egy pg_dump végrehajtására az éles kiszolgálón.

Nagy adatbázisok esetén létrehozhat egy időponthoz kötött helyreállítási (PITR) kiszolgálót az éles kiszolgálóról, és végrehajthatja a pg_dump folyamatot a PITR-kiszolgálón. A pg_dump PITR-en való futtatása hideg futtatási folyamat lenne. Ennek a megközelítésnek a kompromisszuma az, hogy nem foglalkozna a processzor, a memória és az I/O extra kihasználtságával, amely egy pg_dump folyamattal jár, amely egy tényleges üzemi kiszolgálón fut. Futtathat pg_dump egy PITR-kiszolgálón, majd elvetheti a PITR-kiszolgálót a pg_dump folyamat befejezése után.

Szintaxis a pg_dump

Használja az alábbi szintaxist pg_dump:

pg_dump -h <hostname> -U <username> -d <databasename> -Fd -j <Num of parallel jobs> -Z0 -f sampledb_dir_format

Ajánlott eljárások a pg_restore

A pg_restore segédprogrammal visszaállíthat egy rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázist egy pg_dump által létrehozott archívumból. A teljes visszaállítási idő csökkentésére szolgáló néhány parancssori beállítás a következő szakaszokban található.

Párhuzamos visszaállítás

Több egyidejű feladat használatával csökkentheti a nagyméretű adatbázisok több virtuális magos célkiszolgálón való visszaállításához szükséges időt. A feladatok száma egyenlő vagy kisebb lehet a célkiszolgálóhoz lefoglalt virtuális processzorok számával.

Kiszolgálóparaméterek

Ha új kiszolgálóra vagy nem éles kiszolgálóra állítja vissza az adatokat, a következő kiszolgálóparamétereket optimalizálhatja a pg_restore futtatása előtt:

work_mem = 32 MB
max_wal_size = 65536 (64 GB)
checkpoint_timeout = 3600 #60min
maintenance_work_mem = 2097151 (2 GB)
autovacuum = kikapcsolva
wal_compression = bekapcsolva

A visszaállítás befejezése után győződjön meg arról, hogy ezek a paraméterek megfelelően frissülnek a számítási feladatokra vonatkozó követelmények szerint.

Feljegyzés

Csak akkor kövesse az előző ajánlásokat, ha elegendő memória és lemezterület áll rendelkezésre. Ha 2, 4 vagy 8 virtuális maggal rendelkező kis kiszolgálóval rendelkezik, állítsa be a paramétereket ennek megfelelően.

Egyéb szempontok

  • A magas rendelkezésre állás (HA) letiltása a pg_restore futtatása előtt.
  • Elemezze a visszaállítás befejezése után migrált összes táblát.

Szintaxis a pg_restore

Használja a következő szintaxist pg_restore:

pg_restore -h <hostname> -U <username> -d <db name> -Fd -j <NUM> -C <dump directory>

  • -Fd: A könyvtár formátuma.
  • -j: A feladatok száma.
  • -C: Indítsa el a kimenetet egy paranccsal, amely létrehozza magát az adatbázist, majd újracsatlakozik hozzá.

Íme egy példa a szintaxis megjelenésére:

pg_restore -h <hostname> -U <username> -j <Num of parallel jobs> -Fd -C -d <databasename> sampledb_dir_format

A virtuális gépek szempontjai

Hozzon létre egy virtuális gépet ugyanabban a régióban és rendelkezésre állási zónában, lehetőleg ott, ahol a cél- és forráskiszolgálók is találhatók. Vagy legalább a forráskiszolgálóhoz vagy a célkiszolgálóhoz közelebb hozza létre a virtuális gépet. Javasoljuk, hogy nagy teljesítményű helyi SSD-vel használja az Azure-beli virtuális gépeket.

Az SKU-kkal kapcsolatos további információkért lásd:

Következő lépések