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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: