# Backup bazy danych PostgreSQL

#### W Xopero ONE możesz tworzyć kopie zapasowe wielu różnych baz danych, w tym MySQL, Microsoft SQL, PostgreSQL oraz Oracle.

***

## Wymagania wstępne

Aby zapewnić spójność danych, **Xopero** zaleca używanie dedykowanego typu backupu, którym jest **backup na poziomie plików** ze **skryptem przed backupem** dla bazy danych **PostgreSQL**.

{% hint style="success" %}
Skrypt przed backupem może być również użyty do utworzenia zrzutu bazy danych przed wykonaniem **backupu na poziomie obrazu**.
{% endhint %}

Backup bazy danych rozpoczyna się od skryptu, który wysyła żądanie do serwera bazy danych o utworzenie [**zrzutu bazy danych**](#user-content-fn-1)[^1] w katalogu tymczasowym. Po zakończeniu tworzenia zrzutu, plik zrzutu jest objęty backupem przez **Xopero ONE**.

**Xopero ONE** używa narzędzia *pg\_dump* do wykonywania backupu bazy danych **PostgreSQL**.

***

## Konfiguracja backupu środowiska PostgreSQL

{% stepper %}
{% step %}
Zaloguj się do [**XMS**](#user-content-fn-2)[^2], otwórz kartę **Plany** > **Backup** i kliknij przycisk <img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/zwGY3DHS0Elg40Yl060i/image.png" alt="" data-size="original"> **Dodaj plan** na górnym pasku.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2Flsp43jY2XnEe10znzEqd%2Fimage.png?alt=media&#x26;token=0abb7f08-a37e-424f-b933-50f7a2168473" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Wybierz **Urządzenia** z listy platform.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FtlvEA7DUmRZMjoWNsI76%2Fimage.png?alt=media&#x26;token=0035109d-c3ef-4f40-b3d9-650ebc65f544" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
W następnej sekcji wybierz opcję **Pliki i foldery** i wybierz jedno lub więcej urządzeń, których ma dotyczyć plan (możesz również wybrać, aby plan obejmował wszystkie aktywowane urządzenia).

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FPvzppejnsJuG5dV4nCXE%2Fimage.png?alt=media&#x26;token=09c86ff2-a809-4e5a-91c0-6a305838aa41" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Zdefiniuj nazwę planu backupu.
{% endstep %}

{% step %}
Skonfiguruj Twój plan backupu zgodnie z wymaganiami (więcej informacji na temat konfiguracji planu backupu znajdziesz w artykułach [Backup na poziomie plików](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/stacje-robocze-i-serwery/backup-na-poziomie-plikow) oraz [Backup na poziomie obrazu](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/stacje-robocze-i-serwery/backup-na-poziomie-obrazu)).
{% endstep %}

{% step %}
Przejdź do sekcji **Ustawienia zaawansowane** i kliknij **Edytuj**, aby dostosować dodatkowe opcje.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FC5awLFK35oYcTicpDijr%2Fimage.png?alt=media&#x26;token=264d0637-e37c-4043-bf76-8492ff6f6712" alt="advanced settings"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Przejdź do sekcji skryptów backupu, a następnie do skryptu przed backupem.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2F0nwXfUmxyGh7tpqnyFwi%2Fimage.png?alt=media&#x26;token=faf481f7-87ba-40c0-bddb-8a150603e130" alt="Enabling pre-backup script"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Włącz skrypt przed backupem i wybierz skrypt bazy danych PostgreSQL z listy.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FBFl5JmuqJUgNzzRssT5G%2Fimage.png?alt=media&#x26;token=cb5431fd-3017-46c7-a18a-587738971753" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Wpisz nazwę użytkownika bazy danych w polu **Użytkownik bazy danych.**

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FovHz3NgG63fKk0zkvyjM%2Fimage.png?alt=media&#x26;token=341fe1fb-8e29-4c3d-b91d-e4499f433130" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Dobrą praktyką jest **utworzenie dedykowanego użytkownika** specjalnie do operacji backupu bazy danych.
{% endhint %}
{% endstep %}

{% step %}
Wybierz hasło użytkownika, otwierając **Managera haseł,** gdzie możesz dodać nowe hasło lub wybrać istniejące.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2F7leRcoeiDg1S4p69dyQ9%2Fpostgreback7.png?alt=media&#x26;token=ff5389f9-438d-46f9-9cd0-bf75ee456d31" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Ustaw argumenty skryptu, wprowadź je w polu **Argumenty skryptu** w następującej formie:

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2F7zup6VxIBdiwMdDIF7X9%2Fpostgreback9.png?alt=media&#x26;token=7f47e5e3-9c98-4999-8a5a-be338a509a25" alt=""><figcaption></figcaption></figure>

```
database output_dir "pg_dump_dir" port_number
```

* `database` - nazwa bazy danych. Plan backupu może obejmować tylko jedną lub wszystkie bazy danych. Jeśli chcesz chronić wszystkie bazy danych, użyj parametru `--all` zamiast nazwy bazy danych.
* `output_dir` - katalog, do którego ma trafić zrzut bazy danych, a tym samym folder, który ma zostać objęty backupem.
* `pg_dump_dir` - ścieżka do narzędzia **pg\_dump**. Ten parametr jest wymagany tylko dla bazy danych **PostgreSQL** hostowanej w systemie **Windows**.
* `port_number` - ten parametr jest wymagany, jeśli używasz niestandardowego portu (innego niż 5432).

{% hint style="danger" %}
Określenie portu jest opcjonalne. Jeśli nie podasz portu w argumentach, zostanie użyty port domyślny.
{% endhint %}
{% endstep %}

{% step %}
Włącz dwie dodatkowe opcje, używając pól wyboru:

1. **Czekaj na zakończenie skryptu** — aplikacja będzie czekać, aż zrzut będzie gotowy.
2. **Zakończ zadanie niepowodzeniem, jeśli skrypt się nie powiedzie** — jeśli skrypt zakończy się niepowodzeniem, system powiadomi o błędzie backupu.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FTxTEOhIg25QC5oBOuUv6%2Fimage.png?alt=media&#x26;token=667bad6e-3261-47b0-b078-79d109dc36d7" alt="Setting additional option"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Sprawdź dokładnie Twoje ustawienia i kliknij **Zapisz**, aby zamknąć sekcję **Ustawienia zaawansowane**.
{% endstep %}

{% step %}
Po zakończeniu konfiguracji kliknij przycisk **Zapisz**. Plan ochrony automatycznie rozpocznie ochronę urządzeń i baz danych zgodnie z harmonogramem.

{% hint style="success" %}
Możesz również kliknąć przycisk **Zapisz i uruchom**, aby natychmiast rozpocząć proces backupu, niezależnie od harmonogramu.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Przydatne linki i materiały

{% content-ref url="../przywracanie-z-backupu-na-poziomie-plikow" %}
[przywracanie-z-backupu-na-poziomie-plikow](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/stacje-robocze-i-serwery/przywracanie-z-backupu-na-poziomie-plikow)
{% endcontent-ref %}

{% content-ref url="../backup-na-poziomie-plikow" %}
[backup-na-poziomie-plikow](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/stacje-robocze-i-serwery/backup-na-poziomie-plikow)
{% endcontent-ref %}

{% content-ref url="../przywracanie-bazy-danych/przywracanie-bazy-danych-postgresql" %}
[przywracanie-bazy-danych-postgresql](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/stacje-robocze-i-serwery/przywracanie-bazy-danych/przywracanie-bazy-danych-postgresql)
{% endcontent-ref %}

[^1]: database dump

[^2]: Xopero ONE Management Service
