Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit onderwerp wordt beschreven hoe u een back-up van uw Lakebase-database maakt met behulp van het Postgres-hulpprogramma pg_dump en hoe u een back-up herstelt met behulp van pg_restore.
Wanneer gebruikt u pg_dump &pg_restore
Gebruik pg_dump en pg_restore voor vereisten voor herstel na noodgevallen en bedrijfscontinuïteit, of wanneer u volledige back-ups buiten Lakebase moet opslaan. Deze methode biedt volledige databaseexports die onafhankelijk kunnen worden opgeslagen en kunnen worden hersteld naar elk postgres-compatibel systeem.
Voor een migratie die het doel actueel houdt totdat je overschakelt, gebruik dan logische replicatie. Om de manieren te vergelijken waarop data in en uit Lakebase wordt verplaatst, zie Gegevens verplaatsen in en uit Lakebase.
Voorwaarden
Voordat u begint, moet u ervoor zorgen dat:
-
pg_dumpenpg_restorezijn geïnstalleerd. U kunt dit controleren door uit te voerenpg_dump -V. - U gebruikt de nieuwste versies van
pg_dumpenpg_restore. - De clientversie komt overeen met de Postgres-versie van uw Lakebase-project.
- Een Lakebase-project met een Postgres-rol geconfigureerd
Opmerking
We raden u aan systeemeigen Postgres-wachtwoordverificatie te gebruiken bij het gebruik van pg_dump en pg_restore. Systeemeigen Postgres-wachtwoorden verlopen niet elk uur, zoals OAuth-tokens, waardoor ze beter geschikt zijn voor back-up- en herstelbewerkingen. Zie het overzicht van verificatie voor meer informatie over verificatiemethoden.
Pg_dump en pg_restore installeren
Als u de pg_dump hulpprogramma's pg_restore niet lokaal hebt geïnstalleerd, installeert u deze op uw voorkeursplatform.
Windows: Installeer PostgreSQL met behulp van het officiële installatieprogramma van postgresql.org. De pg_dump hulpprogramma's en pg_restore hulpprogramma's worden standaard geïnstalleerd en zijn te vinden in de map postgreSQL bin.
Macos: PostgreSQL installeren met Homebrew:
brew install postgresql
Linux (Ubuntu/Debian):
sudo apt-get install postgresql-client
Docker: Uitvoeren pg_dump met behulp van een Postgres Docker-container:
docker run --rm postgres:17 pg_dump --version
Een back-up maken met pg_dump
Een back-up van een database lokaal maken:
Navigeer naar de Lakebase-app door op de app-switcher rechtsboven in je werkruimte te klikken.
Selecteer uw project.
Klik op Verbinding maken om de databaseverbinding modaal te openen.
Selecteer een Postgres-rol in de vervolgkeuzelijst (we raden u aan een systeemeigen Postgres-rol met wachtwoordverificatie te gebruiken).
Kopieer de verbindingsreeks.
Uw verbindingsreeks ziet er ongeveer als volgt uit:
postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=requireMaak een back-up van uw Lakebase-database door de volgende
pg_dumpopdracht uit te voeren:pg_dump -Fc -v -d "<lakebase_database_connection_string>" -f <dump_file_name>Nadat u uw Lakebase-databaseverbindingsreeks en een dumpbestandsnaam hebt toegevoegd, ziet uw opdracht er als volgt uit:
pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak
pg_dump opdrachtargumenten
De pg_dump opdracht bevat deze argumenten:
-
-Fc: verzendt de uitvoer naar een archief met aangepaste indeling dat geschikt is voor invoer inpg_restore. -
-v: Voertpg_dumpuit in de verbose modus, zodat u kunt controleren wat er gebeurt tijdens de dumpbewerking. -
-d: Hiermee geeft u de verbindingsreeks voor uw Lakebase-database op. -
-f <dump_file_name>: de naam van het dumpbestand. Dit kan elke naam zijn die u kiest (bijvoorbeeldmydumpfile.bak).
Een back-up herstellen met pg_restore
Een database herstellen met behulp van het pg_restore hulpprogramma van een back-upbestand dat is gemaakt met behulp van pg_dump:
Maak een nieuw Lakebase-project.
Maak een database met dezelfde naam als de database waarvan u een back-up hebt gemaakt.
Navigeer naar de Lakebase-app door op de app-switcher rechtsboven in je werkruimte te klikken.
Selecteer uw project en klik op Verbinding maken om de databaseverbinding modaal te openen.
Selecteer een Postgres-rol in de vervolgkeuzelijst (we raden u aan een systeemeigen Postgres-rol met wachtwoordverificatie te gebruiken).
Kopieer de verbindingsreeks.
Uw verbindingsreeks ziet er ongeveer als volgt uit:
postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=requireHerstel uw gegevens naar de doeldatabase in Lakebase met
pg_restore:pg_restore -v -d "<lakebase_database_connection_string>" <dump_file_name>Nadat u uw Lakebase-databaseverbindingsreeks en de naam van het dumpbestand hebt toegevoegd, ziet uw opdracht er als volgt uit:
pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak
pg_restore opdrachtargumenten
De pg_restore opdracht bevat deze argumenten:
-
-v: Voertpg_restoreuit in gedetailleerde modus, zodat u kunt controleren wat er gebeurt tijdens de herstelbewerking. -
-d: hiermee geeft u de Lakebase-database op waarmee verbinding moet worden gemaakt. De waarde is een Lakebase-databaseverbindingsreeks. -
<dump_file_name>: De naam van het dumpbestand dat u metpg_dumphebt gemaakt.
Volledig voorbeeld
In het volgende voorbeeld ziet u hoe gegevens worden gedumpt uit een brondatabase met de naam databricks_postgres in één Lakebase-project en worden hersteld naar een database in een databricks_postgres ander Lakebase-project.
Voordat u deze procedure uitvoert:
- Er is een nieuw Lakebase-project gemaakt voor de doeldatabase (inclusief de standaarddatabase
databricks_postgres) - Verbindingsreeksen voor de bron- en doeldatabases zijn verzameld:
-
Bron:
postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require -
Bestemming:
postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
-
Bron:
Procedure voor back-up en herstel:
# Create a directory for the dump
mkdir mydump && cd mydump
# Create the backup
pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak
# Verify the backup file was created
ls
mydatabase.bak
# Restore the backup to the destination database
pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak
Dump alleen het schema
Een schema-only dump kopieert tabeldefinities, indexen en constraints zonder enige rijgegevens. Gebruik het wanneer je de structuur van een database nodig hebt voor een nieuw doelsysteem, maar niet de inhoud ervan.
De meest voorkomende reden is het voorbereiden van een doeldatabase voor logische replicatie. Logische replicatie kopieert data, niet schema: de tabellen in een publicatie moeten al bestaan op de abonnee met dezelfde namen en kolommen voordat replicatie begint, en elke doeltabel moet leeg zijn zodat de initiële kopie niet faalt op dubbele sleutels. Een schema-only dump en herladen is meestal sneller en minder foutgevoelig dan het handmatig opnieuw maken van de tabellen.
Dump alleen het schema uit de brondatabase. De
--schema-onlyoptie sluit rijgegevens uit,--no-ownerslaat eigendomsverklaringen over voor rollen die mogelijk niet op het doel bestaan,--no-privilegesslaat toekenningen over die mogelijk niet op het doelwit van toepassing zijn, en--no-publications--no-subscriptionshouden de replicatie-opzet van de bron buiten het doelwit:pg_dump --schema-only --no-owner --no-privileges --no-publications --no-subscriptions "<source_connection_string>" > schema_dump.sqlBekijk het dumpbestand en laat eventuele statements die het doelsysteem niet ondersteunt, zoals provider-specifieke parameters of extensies uit. Commentarieer een regel uit door
--aan het begin toe te voegen.Als je een grote dataset repliceert, overweeg dan ook om de
CREATE INDEXstatements te verwijderen voordat je het schema laadt. Het opbouwen van indexen tijdens de eerste replicatiekopie vertraagt deze. Sla de statements die je verwijdert op en voeg de indexen weer toe nadat de eerste kopie is voltooid.Laad het schema in de doeldatabase met
psql:psql "<target_connection_string>" < schema_dump.sqlBevestig dat de tabellen zijn aangemaakt:
psql "<target_connection_string>" -c "\dt"