Jest to polecenie pg_dump, które można uruchomić w darmowym dostawcy usług hostingowych OnWorks przy użyciu jednej z wielu naszych bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS
PROGRAM:
IMIĘ
pg_dump - rozpakuj bazę danych PostgreSQL do pliku skryptu lub innego pliku archiwum
STRESZCZENIE
pg_dump [opcja połączenia...] [opcja...] [nazwa_bazy]
OPIS
pg_dump to narzędzie do tworzenia kopii zapasowych bazy danych PostgreSQL. Tworzy spójne kopie zapasowe
nawet jeśli baza danych jest używana jednocześnie. pg_dump nie blokuje innych użytkowników
dostępu do bazy danych (czytników lub pisarzy).
pg_dump zrzuca tylko jedną bazę danych. Tworzenie kopii zapasowych obiektów globalnych, które są wspólne dla wszystkich
baz danych w klastrze, takich jak role i obszary tabel pg_dumpall(1).
Zrzuty mogą być wyprowadzane w formatach skryptów lub plików archiwalnych. Zrzuty skryptów to zwykłe pliki tekstowe
zawierający polecenia SQL wymagane do odtworzenia bazy danych do stanu, w jakim się znajdowała
czas, w którym został uratowany. Aby przywrócić z takiego skryptu, podaj go do Psql(1). Pliki skryptów mogą
być używany do rekonstrukcji bazy danych nawet na innych komputerach i innych architekturach; z
pewne modyfikacje, nawet w innych produktach bazodanowych SQL.
Należy używać alternatywnych formatów plików archiwów pg_restore(1) do odbudowy
Baza danych. Pozwalają pg_restore na selektywne wybieranie tego, co jest przywracane, a nawet na zmianę kolejności
elementy przed renowacją. Formaty plików archiwów są przeznaczone do przenoszenia
w poprzek architektur.
W przypadku użycia z jednym z formatów plików archiwum i w połączeniu z pg_restore, pg_dump
zapewnia elastyczny mechanizm archiwizacji i przenoszenia. pg_dump może służyć do tworzenia kopii zapasowych plików
całą bazę danych, wówczas pg_restore może zostać użyte do zbadania archiwum i/lub wybrania którego
części bazy danych mają zostać przywrócone. Najbardziej elastycznymi formatami plików wyjściowych są
format „niestandardowy” (-Fc) i format „katalogu” (-Fd). Pozwalają na selekcję i
zmianę kolejności wszystkich zarchiwizowanych elementów, obsługują przywracanie równoległe i są kompresowane przez
domyślny. Format „katalogu” jest jedynym formatem obsługującym zrzuty równoległe.
Podczas uruchamiania pg_dump należy sprawdzić dane wyjściowe pod kątem ostrzeżeń (wydrukowanych na standard
błąd), zwłaszcza w świetle ograniczeń wymienionych poniżej.
OPCJE
Następujące opcje wiersza polecenia sterują zawartością i formatem danych wyjściowych.
nazwa_bazy
Określa nazwę bazy danych do zrzutu. Jeśli nie jest to określone,
zmienna środowiskowa BAZA DANYCH Jest używane. Jeśli to nie jest ustawione, określona nazwa użytkownika
do połączenia jest używany.
-a
--tylko dane
Zrzuć tylko dane, a nie schemat (definicje danych). Dane tabeli, duże obiekty i
wartości sekwencji są zrzucane.
Ta opcja jest podobna do określania, ale z powodów historycznych nie jest identyczna
--sekcja=dane.
-b
--kropelki
Dołącz duże obiekty do zrzutu. Jest to zachowanie domyślne, z wyjątkiem sytuacji, gdy --schemat,
--Tabelalub --tylko schemat jest określony, więc -b przełącznik jest przydatny tylko do dodawania dużych
sprzeciwia się selektywnym składowiskom.
-c
--czysty
Wygeneruj polecenia, aby wyczyścić (usunąć) obiekty bazy danych przed wypisaniem poleceń dla
ich tworzenie. (Chyba że --jeśli-istnieje jest również określony, przywracanie może je wygenerować
nieszkodliwe komunikaty o błędach, jeśli w docelowej bazie danych nie było żadnych obiektów.)
Ta opcja ma znaczenie tylko dla formatu zwykłego tekstu. W przypadku formatów archiwów ty
można określić opcję podczas rozmowy pg_restore.
-C
--Stwórz
Rozpocznij dane wyjściowe od polecenia, aby utworzyć samą bazę danych i ponownie połączyć się z
utworzona baza danych. (W przypadku skryptu tego formularza nie ma znaczenia, która baza danych w pliku
instalacja docelowa, z którą łączysz się przed uruchomieniem skryptu.) If --czysty Jest również
określony, skrypt usuwa i odtwarza docelową bazę danych przed ponownym połączeniem
to.
Ta opcja ma znaczenie tylko dla formatu zwykłego tekstu. W przypadku formatów archiwów ty
można określić opcję podczas rozmowy pg_restore.
-E kodowanie
--kodowanie=kodowanie
Utwórz zrzut w określonym kodowaniu zestawu znaków. Domyślnie zrzut jest
utworzone w kodowaniu bazy danych. (Innym sposobem uzyskania tego samego wyniku jest ustawienie
PGCLIENTENKODOWANIE zmienną środowiskową do żądanego kodowania zrzutu.)
-f filet
--plik=filet
Wyślij dane wyjściowe do określonego pliku. Ten parametr można pominąć w przypadku danych wyjściowych opartych na plikach
formatach, w którym to przypadku używane jest standardowe wyjście. Musi być podany dla katalogu
jednak format wyjściowy, w którym określa katalog docelowy zamiast pliku. W
w tym przypadku katalog jest tworzony przez pg_dump i nie może istnieć wcześniej.
-F format
--format=format
Wybiera format wyjścia. format może być jednym z następujących:
p
zwykły
Wygeneruj plik skryptu SQL w postaci zwykłego tekstu (domyślnie).
c
zwyczaj
Wygeneruj archiwum w niestandardowym formacie odpowiednim do wprowadzenia do pg_restore. Razem z
format wyjściowy katalogu, jest to najbardziej elastyczny format wyjściowy
umożliwia ręczny wybór i zmianę kolejności zarchiwizowanych elementów podczas przywracania. Ten
format jest również domyślnie skompresowany.
d
katalog
Wygeneruj archiwum w formacie katalogu odpowiednim do wejścia do pg_restore. to będzie
utwórz katalog z jednym plikiem dla każdej zrzucanej tabeli i obiektu blob oraz a
tzw. plik spisu treści opisujący zrzucone obiekty w formacie a
format do odczytu maszynowego, który pg_restore może odczytać. Archiwum w formacie katalogu może
być manipulowane za pomocą standardowych narzędzi uniksowych; na przykład pliki w nieskompresowanym formacie
archiwum można skompresować za pomocą narzędzia gzip. Ten format jest domyślnie skompresowany
a także obsługuje zrzuty równoległe.
t
smoła
Wyjście smoła-format archiwum odpowiedni do wejścia do pg_restore. Format tar to
zgodny z formatem katalogu: rozpakowanie archiwum w formacie tar tworzy plik
prawidłowe archiwum w formacie katalogu. Jednak format tar nie jest obsługiwany
kompresja. Również podczas korzystania z formatu tar względna kolejność elementów danych tabeli
nie można zmienić podczas przywracania.
-j nprace
--praca=nprace
Uruchom zrzut równolegle przez zrzut nprace stoły jednocześnie. Ta opcja zmniejsza
czasu zrzutu, ale także zwiększa obciążenie serwera bazy danych. Możesz
używaj tej opcji tylko z formatem wyjściowym katalogu, ponieważ jest to jedyne wyjście
format, w którym wiele procesów może jednocześnie zapisywać swoje dane.
pg_dump otworzy się nprace + 1 połączeń z bazą danych, więc upewnij się, że twój
ustawienie max_connections jest wystarczająco wysokie, aby pomieścić wszystkie połączenia.
Żądanie wyłącznych blokad obiektów bazy danych podczas wykonywania zrzutu równoległego może
spowodować niepowodzenie zrzutu. Powodem jest to, że żądania procesu głównego pg_dump są udostępniane
blokuje obiekty, które procesy robocze zrzucą później, aby to zrobić
upewnij się, że nikt ich nie usunie i nie sprawi, że znikną podczas działania zrzutu.
Jeśli następnie inny klient poprosi o wyłączną blokadę na stole, ta blokada nie będzie
przyznana, ale zostanie umieszczona w kolejce oczekującej na udostępnienie blokady procesu głównego
wydany. W związku z tym żaden inny dostęp do tabeli również nie zostanie przyznany
ustawi się w kolejce po żądaniu blokady na wyłączność. Obejmuje to proces roboczy
zrzucić ze stołu. Bez żadnych środków ostrożności byłby to klasyczny impas.
Aby wykryć ten konflikt, proces roboczy pg_dump żąda użycia innej udostępnionej blokady
opcję NOWIT. Jeśli procesowi roboczemu nie zostanie przyznana ta wspólna blokada, ktoś
else musiał w międzyczasie poprosić o blokadę na wyłączność i nie ma na to sposobu
kontynuuj zrzut, więc pg_dump nie ma innego wyjścia, jak tylko przerwać zrzut.
Aby zapewnić spójną kopię zapasową, serwer bazy danych musi obsługiwać zsynchronizowane migawki,
funkcja wprowadzona w PostgreSQL 9.2. Dzięki tej funkcji klienci baz danych
mogą zapewnić, że widzą ten sam zestaw danych, mimo że używają różnych połączeń.
pg_dump -j korzysta z wielu połączeń z bazami danych; raz łączy się z bazą danych
proces główny i jeszcze raz dla każdego zadania roboczego. Bez synchronizacji
migawki, różne zadania robocze nie miałyby gwarancji, że zobaczą to samo
danych w każdym połączeniu, co może prowadzić do niespójnej kopii zapasowej.
Jeśli chcesz uruchomić zrzut równoległy serwera wcześniejszego niż 9.2, musisz upewnić się, że plik
zawartość bazy danych nie zmienia się od czasu, gdy master łączy się z
bazy danych, dopóki ostatnie zadanie procesu roboczego nie połączy się z bazą danych. Najłatwiejszy sposób
zrobić to, aby zatrzymać wszelkie procesy modyfikujące dane (DDL i DML) uzyskujące dostęp do bazy danych
przed rozpoczęciem tworzenia kopii zapasowej. Należy również określić --no-synchronized-migawki
parametr podczas pracy pg_dump -j przeciwko serwerowi PostgreSQL w wersji wcześniejszej niż 9.2.
-n schemat
--schemat=schemat
Zrzucaj tylko pasujące schematy schemat; powoduje to wybranie zarówno samego schematu, jak i wszystkich jego elementów
zawarte obiekty. Gdy ta opcja nie jest określona, wszystkie schematy niesystemowe w pliku
docelowa baza danych zostanie zrzucona. Wiele schematów można wybrać, pisząc wiele
-n przełączniki. Również schemat parametr jest interpretowany jako wzorzec wg
te same reguły używane przez \d polecenia psql (patrz Wzorce), więc może być również wiele schematów
wybrane przez wpisanie symboli wieloznacznych we wzorcu. Używając symboli wieloznacznych, bądź
uważaj, aby zacytować wzór, jeśli to konieczne, aby zapobiec rozszerzeniu powłoki
symbole wieloznaczne; patrz PRZYKŁADY.
Note
Kiedy -n jest określony, pg_dump nie podejmuje żadnych prób zrzutu żadnych innych obiektów bazy danych
od których mogą zależeć wybrane schematy. Dlatego nie ma gwarancji
że wyniki zrzutu określonego schematu mogą zostać pomyślnie przywrócone
się do czystej bazy danych.
Note
Obiekty inne niż schematy, takie jak obiekty blob, nie są zrzucane, kiedy -n jest specyficzne. Możesz dodać
blob z powrotem do zrzutu z plikiem --kropelki przełącznik.
-N schemat
--exclude-schemat=schemat
Nie zrzucaj żadnych schematów pasujących do schemat wzór. Wzór jest interpretowany
na takich samych zasadach jak dla -n. -N można podać więcej niż raz, aby wykluczyć
schematy pasujące do dowolnego z kilku wzorców.
Gdy oboje -n oraz -N są podane, zachowanie polega na zrzuceniu tylko pasujących schematów w
co najmniej jeden -n przełączyć, ale nie -N przełączniki. Jeśli -N pojawia się bez -n, potem schematy
dopasowywanie -N są wykluczone z tego, co poza tym jest normalnym wysypiskiem.
-o
--oidy
Zrzuć identyfikatory obiektów (OID) jako część danych dla każdej tabeli. Użyj tej opcji, jeśli
Twoja aplikacja odwołuje się w jakiś sposób do kolumn OID (np. w kluczu obcym
ograniczenie). W przeciwnym razie nie należy używać tej opcji.
-O
--brak-właściciela
Nie wysyłaj poleceń, aby ustawić własność obiektów w celu dopasowania do oryginalnej bazy danych. Przez
domyślnie problemy z pg_dump ZMIANA WŁAŚCICIEL or SET SESJA UPOWAŻNIENIE instrukcje do ustawienia
własność tworzonych obiektów bazy danych. Te instrukcje zakończą się niepowodzeniem, gdy skrypt jest
uruchom, chyba że zostanie uruchomiony przez superużytkownika (lub tego samego użytkownika, który jest właścicielem wszystkich obiektów
w skrypcie). Aby stworzyć skrypt, który może zostać przywrócony przez dowolnego użytkownika, ale da to
własność użytkownika wszystkich obiektów, określ -O.
Ta opcja ma znaczenie tylko dla formatu zwykłego tekstu. W przypadku formatów archiwów ty
można określić opcję podczas rozmowy pg_restore.
-R
--nie-podłącz ponownie
Ta opcja jest przestarzała, ale nadal akceptowana ze względu na kompatybilność wsteczną.
-s
--tylko schemat
Zrzuć tylko definicje obiektów (schemat), a nie dane.
Ta opcja jest odwrotnością --tylko dane. Jest podobny do, ale dla historycznego
przyczyny nie tożsame z wyszczególnieniem --section=dane wstępne --section=post-dane.
(Nie mylić tego z tzw --schemat opcja, która używa słowa „schemat” w a
inne znaczenie.)
Aby wykluczyć dane tabeli tylko dla podzbioru tabel w bazie danych, zobacz
--wyklucz dane z tabeli.
-S nazwa użytkownika
--superużytkownik=nazwa użytkownika
Określ nazwę superużytkownika, która ma być używana podczas wyłączania wyzwalaczy. Tylko to jest istotne
if --wyłącz-wyzwalacze Jest używane. (Zwykle lepiej to pominąć i zamiast tego
uruchom wynikowy skrypt jako superużytkownik.)
-t stół
--tabela=stół
Zrzucaj tylko pasujące tabele (lub widoki, sekwencje lub obce tabele). stół. Wielokrotność
tabele można wybrać, pisząc wiele -t przełączniki. Również stół parametr to
interpretowane jako wzorzec zgodnie z tymi samymi regułami, co polecenia psql \d (patrz
Patterns), więc wiele tabel można również wybrać, wpisując znaki wieloznaczne
wzór. Używając symboli wieloznacznych, należy uważać, aby w razie potrzeby zacytować wzorzec
uniemożliwić powłoce rozwijanie symboli wieloznacznych; patrz PRZYKŁADY.
-n oraz -N przełączniki nie mają wpływu, kiedy -t jest używany, ponieważ tabele wybrane przez -t
zostaną zrzucone niezależnie od tych przełączników, a obiekty niebędące tabelami nie zostaną zrzucone.
Note
Kiedy -t jest określony, pg_dump nie podejmuje żadnych prób zrzutu żadnych innych obiektów bazy danych
od których mogą zależeć wybrane tabele. Dlatego nie ma gwarancji
dzięki któremu można pomyślnie przywrócić wyniki zrzutu określonej tabeli
się do czystej bazy danych.
Note
Zachowanie się -t switch nie jest w pełni kompatybilny w górę z wersjami starszymi niż 8.2
Wersje PostgreSQL. Wcześniej napisanie -t tab powodowało zrzucenie wszystkich tabel o nazwie tab, ale
teraz po prostu zrzuca ten, który jest widoczny w domyślnej ścieżce wyszukiwania. Aby uzyskać
stare zachowanie możesz napisać -t '*.tab'. Ponadto musisz napisać coś takiego jak -t
sch.tab, aby wybrać tabelę w określonym schemacie, zamiast starej lokalizacji
-n sch -t karta.
-T stół
--wyklucz-tabelę=stół
Nie zrzucaj żadnych tabel pasujących do stół wzór. Wzór jest interpretowany
na takich samych zasadach jak dla -t. -T można podać więcej niż raz, aby wykluczyć
tabele pasujące do dowolnego z kilku wzorców.
Gdy oboje -t oraz -T są podane, zachowanie polega na zrzuceniu tylko tych tabel, które pasują do
co najmniej jeden -t przełączyć, ale nie -T przełączniki. Jeśli -T pojawia się bez -t, a następnie pasujące tabele
-T są wykluczone z tego, co poza tym jest normalnym wysypiskiem.
-v
--gadatliwy
Określa tryb szczegółowy. Spowoduje to, że pg_dump wyświetli szczegółowe komentarze do obiektów i
czasy rozpoczęcia/zakończenia do pliku zrzutu i komunikaty postępu do standardowego błędu.
-V
--wersja
Wydrukuj wersję pg_dump i wyjdź.
-x
--brak-przywilejów
--no-akl
Zapobiegaj zrzucaniu uprawnień dostępu (komendy przyznania/odwołania).
-Z 0 9 ..
--kompresuj=0 9 ..
Określ poziom kompresji do użycia. Zero oznacza brak kompresji. Dla zwyczaju
format archiwum, określa to kompresję poszczególnych segmentów danych tabeli, a format
domyślna jest kompresja na umiarkowanym poziomie. W przypadku zwykłego tekstu wyjściowego ustawienie wartości niezerowej
poziom kompresji powoduje, że cały plik wyjściowy jest kompresowany, tak jakby to było
zostały przesłane przez gzip; ale domyślnym ustawieniem jest brak kompresji. Format archiwum tar
obecnie w ogóle nie obsługuje kompresji.
--aktualizacja binarna
Ta opcja jest przeznaczona do użycia przez narzędzia do aktualizacji w miejscu. Jego wykorzystanie do innych celów jest
nie jest zalecane ani obsługiwane. Zachowanie opcji może ulec zmianie w przyszłych wersjach
bez uprzedzenia.
--wstawki-kolumn
--wstawki-atrybutów
Zrzuć dane jako INSERT polecenia z wyraźnymi nazwami kolumn (INSERT INTO stół (kolumna,
...) WARTOŚCI ...). Spowoduje to, że renowacja będzie bardzo powolna; jest przydatny głównie do robienia
zrzuty, które można załadować do baz danych innych niż PostgreSQL. Jednak od tej opcji
generuje osobne polecenie dla każdego wiersza, błąd w przeładowaniu wiersza powoduje tylko
ten wiersz zostanie utracony, a nie cała zawartość tabeli.
--wyłącz-dolar-cytowanie
Ta opcja wyłącza używanie kwotowań dolarów dla treści funkcji i zmusza je do tego
być cytowane przy użyciu standardowej składni łańcuchów SQL.
--wyłącz-wyzwalacze
Ta opcja jest istotna tylko podczas tworzenia zrzutu zawierającego tylko dane. Instruuje pg_dump, aby
zawierać polecenia, aby tymczasowo wyłączyć wyzwalacze w tabelach docelowych, podczas gdy data
jest ponownie ładowany. Użyj tego, jeśli masz włączone testy integralności referencyjnej lub inne wyzwalacze
tabele, których nie chcesz wywoływać podczas przeładowywania danych.
Obecnie polecenia wydawane dla --wyłącz-wyzwalacze należy wykonać jako superużytkownik. Więc,
powinieneś również podać nazwę superużytkownika za pomocą -S, lub najlepiej uważaj, aby rozpocząć
wynikowy skrypt jako superużytkownik.
Ta opcja ma znaczenie tylko dla formatu zwykłego tekstu. W przypadku formatów archiwów ty
można określić opcję podczas rozmowy pg_restore.
--enable-wiersz zabezpieczenia
Ta opcja ma znaczenie tylko w przypadku zrzucania zawartości tabeli zawierającej wiersz
bezpieczeństwo. Domyślnie pg_dump ustawi row_security na off, aby upewnić się, że wszystkie dane są
zrzucane ze stołu. Jeśli użytkownik nie ma wystarczających uprawnień, aby ominąć wiersz
security, wtedy zgłaszany jest błąd. Ten parametr nakazuje ustawienie pg_dump
row_security na on zamiast tego, umożliwiając użytkownikowi zrzucenie części zawartości pliku
tabeli, do której mają dostęp.
--exclude-table-data=stół
Nie zrzucaj danych dla żadnych tabel pasujących do stół wzór. Wzór jest interpretowany
na takich samych zasadach jak dla -t. --wyklucz dane z tabeli można dać więcej niż
raz, aby wykluczyć tabele pasujące do dowolnego z kilku wzorców. Ta opcja jest przydatna, gdy
potrzebujesz definicji konkretnej tabeli, nawet jeśli nie potrzebujesz danych
to.
Aby wykluczyć dane ze wszystkich tabel w bazie danych, zobacz --tylko schemat.
--jeśli-istnieje
Używaj poleceń warunkowych (tj. dodaj klauzulę JEŚLI ISTNIEJE) podczas czyszczenia bazy danych
obiekty. Ta opcja jest nieprawidłowa, chyba że --czysty jest również określony.
--wkładki
Zrzuć dane jako INSERT polecenia (zamiast KOPIA). Spowoduje to, że renowacja będzie bardzo powolna;
jest przydatny głównie do tworzenia zrzutów, które można załadować do baz danych innych niż PostgreSQL.
Ponieważ jednak ta opcja generuje osobne polecenie dla każdego wiersza, błąd w
ponowne załadowanie wiersza powoduje utratę tylko tego wiersza, a nie całej zawartości tabeli.
Pamiętaj, że przywracanie może zakończyć się niepowodzeniem, jeśli zmienisz kolejność kolumn. The
--wstawki-kolumn opcja jest bezpieczna przed zmianami kolejności kolumn, choć jest jeszcze wolniejsza.
--lock-wait-timeout=Timeout
Nie czekaj w nieskończoność, aby uzyskać wspólne blokady tabeli na początku zrzutu.
Zamiast tego nie powiedzie się, jeśli nie można zablokować tabeli w określonym czasie Timeout. Przerwa może
być określone w dowolnym z formatów akceptowanych przez SET limit_czasu instrukcji. (Dozwolone wartości
różnią się w zależności od wersji serwera, z którego wykonujesz zrzut, ale jest to liczba całkowita
milisekundy są akceptowane przez wszystkie wersje od 7.3. Ta opcja jest ignorowana, gdy
dumping z serwera wcześniejszego niż 7.3.)
--brak-etykiet-bezpiecznych
Nie wyrzucaj etykiet bezpieczeństwa.
--no-synchronized-migawki
Ta opcja umożliwia bieganie pg_dump -j z serwerem starszym niż 9.2, zobacz dokumentację
ukończenia -j parametr, aby uzyskać więcej informacji.
--bez obszarów tabel
Nie wysyłaj poleceń, aby wybrać obszary tabel. Dzięki tej opcji wszystkie obiekty będą
utworzony w dowolnej przestrzeni tabel, która jest domyślna podczas przywracania.
Ta opcja ma znaczenie tylko dla formatu zwykłego tekstu. W przypadku formatów archiwów ty
można określić opcję podczas rozmowy pg_restore.
--no-unlogged-tabela-dane
Nie zrzucaj zawartości niezalogowanych tabel. Ta opcja nie ma wpływu na to, czy lub
nie definicje tabeli (schemat) są zrzucane; tłumi tylko zrzucanie tabeli
dane. Dane w niezarejestrowanych tabelach są zawsze wykluczane podczas zrzutu z serwera rezerwowego.
--cytuj-wszystkie-identyfikatory
Wymuś cytowanie wszystkich identyfikatorów. Może to być przydatne podczas zrzucania bazy danych dla
migracji do przyszłej wersji, która mogła wprowadzić dodatkowe słowa kluczowe.
--sekcja=nazwa sekcji
Zrzuć tylko nazwaną sekcję. Nazwa sekcji może być wstępne dane, danelub wysłać dane.
Tę opcję można określić więcej niż raz, aby wybrać wiele sekcji. Domyślny
jest zrzucenie wszystkich sekcji.
Sekcja danych zawiera rzeczywiste dane tabeli, zawartość dużych obiektów i sekwencję
wartości. Elementy po danych obejmują definicje indeksów, wyzwalaczy, reguł i
ograniczenia inne niż zweryfikowane ograniczenia kontrolne. Pozycje sprzed danych obejmują wszystkie inne
elementy definicji danych.
--serializacja-odroczenie
Użyj możliwej do serializacji transakcji dla zrzutu, aby upewnić się, że używana jest migawka
zgodne z późniejszymi stanami bazy danych; ale zrób to, czekając na punkt w
strumień transakcji, w którym nie mogą występować żadne anomalie, tak aby nie było ryzyka
zrzut nie powiedzie się lub spowoduje wycofanie innych transakcji z a
serialization_failure. Zobacz rozdział 13, Kontrola współbieżności, w dokumentacji dla
więcej informacji na temat izolacji transakcji i kontroli współbieżności.
Ta opcja nie jest korzystna w przypadku zrzutu, który jest przeznaczony wyłącznie do odtwarzania po awarii.
Może to być przydatne dla zrzutu używanego do ładowania kopii bazy danych do raportowania lub
inny podział obciążenia tylko do odczytu, podczas gdy oryginalna baza danych jest nadal aktualizowana.
Bez tego zrzut może odzwierciedlać stan, który nie jest zgodny z żadnym serialem
wykonanie ostatecznie zatwierdzonych transakcji. Na przykład, jeśli przetwarzanie wsadowe
stosowane są techniki, partia może być wyświetlana jako zamknięta na wysypisku bez wszystkich pozycji
które pojawiają się w partii.
Ta opcja nie ma znaczenia, jeśli nie ma aktywnych transakcji odczytu i zapisu
po uruchomieniu pg_dump. Jeśli transakcje odczytu i zapisu są aktywne, początek zrzutu
może być opóźniony o czas nieokreślony. Po uruchomieniu wydajność z lub
bez przełącznika jest to samo.
--migawka=nazwa migawki
Użyj określonej zsynchronizowanej migawki podczas tworzenia zrzutu bazy danych (patrz
Tabela 9.71, „Funkcje synchronizacji migawki”, aby uzyskać więcej informacji).
Ta opcja jest przydatna, gdy trzeba zsynchronizować zrzut z replikacją logiczną
slot (patrz Rozdział 46, Dekodowanie logiczne, w dokumentacji) lub z równoczesnym
sesja.
W przypadku zrzutu równoległego używana jest nazwa migawki zdefiniowana przez tę opcję
zamiast robienia nowego zdjęcia.
--użyj-zestawu-autoryzacji sesji
Wyjście w standardzie SQL SET SESJA UPOWAŻNIENIE polecenia zamiast ZMIANA WŁAŚCICIEL Polecenia
w celu ustalenia własności obiektu. To sprawia, że zrzut jest bardziej zgodny ze standardami, ale
w zależności od historii obiektów w zrzucie, może nie zostać prawidłowo przywrócony. Również,
zrzut za pomocą SET SESJA UPOWAŻNIENIE z pewnością będzie wymagać uprawnień administratora
przywrócić poprawnie, mając na uwadze, że ZMIANA WŁAŚCICIEL wymaga mniejszych uprawnień.
-?
--help
Pokaż pomoc dotyczącą argumentów wiersza poleceń pg_dump i wyjdź.
Następujące opcje wiersza polecenia sterują parametrami połączenia z bazą danych.
-d nazwa_bazy
--nazwa_bazy danych=nazwa_bazy
Określa nazwę bazy danych, z którą chcesz się połączyć. Jest to równoznaczne z określeniem
nazwa_bazy jako pierwszy argument nie będący opcją w wierszu poleceń.
Jeśli ten parametr zawiera znak = lub zaczyna się od prawidłowego prefiksu URI (postgresql://
lub postgres://), jest traktowane jako powiązać strunowy. Patrz Sekcja 31.1, „Baza danych
Funkcje kontroli połączenia” w dokumentacji, aby uzyskać więcej informacji.
-h gospodarz
--gospodarz=gospodarz
Określa nazwę hosta komputera, na którym działa serwer. Jeśli wartość
zaczyna się od ukośnika, jest używany jako katalog dla gniazda domeny uniksowej. ten
domyślna jest pobierana z PDUCH zmienna środowiskowa, jeśli jest ustawiona, w przeciwnym razie domena uniksowa
podjęto próbę połączenia z gniazdem.
-p Port
--port=Port
Określa port TCP lub lokalne rozszerzenie pliku gniazda domeny Unix, na którym serwer
nasłuchuje połączeń. Domyślnie do PGPORT zmienna środowiskowa, jeśli jest ustawiona, lub
wkompilowana wartość domyślna.
-U nazwa użytkownika
--nazwa_użytkownika=nazwa użytkownika
Nazwa użytkownika do połączenia jako.
-w
--bez hasła
Nigdy nie pytaj o hasło. Jeśli serwer wymaga uwierzytelnienia hasłem i
hasło nie jest dostępne za pomocą innych środków, takich jak plik .pgpass, połączenie
próba się nie powiedzie. Ta opcja może być przydatna w zadaniach wsadowych i skryptach, w których nie ma użytkownika
jest obecny, aby wprowadzić hasło.
-W
--hasło
Zmuś pg_dump do monitowania o hasło przed połączeniem z bazą danych.
Ta opcja nigdy nie jest niezbędna, ponieważ pg_dump automatycznie poprosi o podanie hasła
jeśli serwer żąda uwierzytelnienia hasłem. Jednak pg_dump zmarnuje plik
próba połączenia, aby dowiedzieć się, że serwer chce hasła. W niektórych przypadkach jest
warto pisać -W aby uniknąć dodatkowej próby połączenia.
--rola=nazwa roli
Określa nazwę roli, która ma być używana do tworzenia zrzutu. Ta opcja powoduje, że pg_dump
wydanie a SET ROLA nazwa roli polecenie po połączeniu z bazą danych. Przydaje się, kiedy
uwierzytelniony użytkownik (określony przez -U) nie ma uprawnień wymaganych przez pg_dump, ale może
przełączyć się na rolę z wymaganymi uprawnieniami. Niektóre instalacje mają politykę przeciwko
logując się bezpośrednio jako superużytkownik, a skorzystanie z tej opcji umożliwia wykonywanie zrzutów
bez naruszania polityki.
ŚRODOWISKO
BAZA DANYCH
PDUCH
PGOPCJE
PGPORT
PGUSER
Domyślne parametry połączenia.
To narzędzie, podobnie jak większość innych narzędzi PostgreSQL, również wykorzystuje zmienne środowiskowe
obsługiwane przez libpq (zobacz Sekcja 31.14, „Zmienne środowiskowe” w dokumentacji).
DIAGNOSTYKA
pg_dump wykonuje się wewnętrznie SELECT sprawozdania. Jeśli masz problemy z uruchomieniem pg_dump, make
upewnij się, że potrafisz wybrać informacje z bazy danych za pomocą np. Psql(1).
Ponadto wszelkie domyślne ustawienia połączeń i zmienne środowiskowe używane przez bibliotekę libpq
zastosowanie ma biblioteka front-end.
Aktywność bazy danych pg_dump jest zwykle zbierana przez moduł zbierający statystyki. Jeśli
jest to niepożądane, można ustawić parametr liczba_ścieżek fałszować przez PGOPCJE albo
polecenie ZMIEŃ UŻYTKOWNIKA.
UWAGI
Jeśli twój klaster bazy danych ma jakieś lokalne dodatki do bazy danych template1, bądź ostrożny
przywróć dane wyjściowe pg_dump do naprawdę pustej bazy danych; w przeciwnym razie prawdopodobnie dostaniesz
błędy spowodowane zduplikowanymi definicjami dodanych obiektów. Aby utworzyć pustą bazę danych
bez żadnych lokalnych dodatków skopiuj z template0 nie template1, na przykład:
UTWÓRZ BAZY DANYCH foo Z SZABLONEM template0;
Po wybraniu zrzutu tylko danych i opcji --wyłącz-wyzwalacze jest używany, pg_dump emituje
polecenia wyłączające wyzwalacze w tabelach użytkowników przed wstawieniem danych, a następnie polecenia
aby je ponownie włączyć po wprowadzeniu danych. Jeśli przywracanie zostanie zatrzymane w
w środku, katalogi systemowe mogą pozostać w niewłaściwym stanie.
Plik zrzutu utworzony przez pg_dump nie zawiera statystyk używanych przez optymalizator do
podejmować decyzje dotyczące planowania zapytań. Dlatego mądrze jest biegać ANALIZOWAĆ po przywróceniu z A
plik zrzutu, aby zapewnić optymalną wydajność; patrz Sekcja 23.1.3, „Aktualizowanie Planera
Statistics” w dokumentacji i Sekcja 23.1.6, „The Autovacuum Daemon”, w pliku
dokumentacja, aby uzyskać więcej informacji. Plik zrzutu również nie zawiera żadnych ZMIANA DATABASE
... SET polecenia; te ustawienia są wyrzucane przez pg_dumpall(1) wraz z użytkownikami bazy danych
i inne ustawienia dotyczące całej instalacji.
Ponieważ pg_dump służy do przesyłania danych do nowszych wersji PostgreSQL, dane wyjściowe
Można oczekiwać, że pg_dump załaduje się do wersji serwera PostgreSQL nowszych niż pg_dump
wersja. pg_dump może również zrzucać z serwerów PostgreSQL starszych niż jego własna wersja.
(Obecnie obsługiwane są serwery z powrotem do wersji 7.0.) Jednak pg_dump nie może wykonać zrzutu z
Serwery PostgreSQL nowsze niż ich własna wersja główna; raczej odmówi nawet próby
niż ryzykować wykonanie nieprawidłowego zrzutu. Ponadto nie ma gwarancji, że wyjście pg_dump może być
załadowany na serwer starszej wersji głównej — nawet jeśli zrzut został pobrany z pliku a
serwer tej wersji. Ładowanie pliku zrzutu na starszy serwer może wymagać ręcznego
edycja pliku zrzutu w celu usunięcia składni niezrozumiałej dla starszego serwera.
PRZYKŁADY
Aby zrzucić bazę danych o nazwie mydb do pliku skryptu SQL:
$ pg_dump mojabd > db.sql
Aby ponownie załadować taki skrypt do (świeżo utworzonej) bazy danych o nazwie newdb:
$ Psql -d nowa baza danych -f db.sql
Aby zrzucić bazę danych do pliku archiwum o niestandardowym formacie:
$ pg_dump -Fc mojabd > zrzut db
Aby zrzucić bazę danych do archiwum w formacie katalogu:
$ pg_dump -Fd mojabd -f śmietnik
Aby zrzucić bazę danych do archiwum w formacie katalogu równolegle z 5 zadaniami procesu roboczego:
$ pg_dump -Fd mojabd -j 5 -f śmietnik
Aby przeładować plik archiwum do (świeżo utworzonej) bazy danych o nazwie newdb:
$ pg_restore -d nowa baza danych zrzut db
Aby zrzucić pojedynczą tabelę o nazwie mytab:
$ pg_dump -t moja karta mojabd > db.sql
Aby zrzucić wszystkie tabele, których nazwy zaczynają się od emp w schemacie detroit, z wyjątkiem tabeli
nazwany dziennik_pracownika:
$ pg_dump -t „detroit.emp*” -T detroit.dziennik_pracownika mojabd > db.sql
Aby zrzucić wszystkie schematy, których nazwy zaczynają się od east lub west i kończą na gsm, wyłączając dowolne
schematy, których nazwy zawierają słowo test:
$ pg_dump -n „wschód* gsm” -n „zachód* gsm” -N '*test*' mojabd > db.sql
To samo, używając notacji wyrażeń regularnych do konsolidacji przełączników:
$ pg_dump -n '(wschód|zachód)*gsm' -N '*test*' mojabd > db.sql
Aby zrzucić wszystkie obiekty bazy danych z wyjątkiem tabel, których nazwy zaczynają się od ts_:
$ pg_dump -T 'ts_*' mojabd > db.sql
Aby określić nazwę pisaną wielkimi lub mieszanymi literami w -t i powiązane przełączniki, musisz
podwójnie cytuj nazwę; w przeciwnym razie zostanie złożony na małe litery (patrz Wzory). Ale podwójnie
cudzysłowy są specjalne dla powłoki, więc po kolei muszą być cytowane. Tak więc, aby zrzucić jeden
table z nazwą o mieszanych wielkościach liter, potrzebujesz czegoś takiego
$ pg_dump -t "\"MixedCaseName\"" mojabd > mytab.sql
Użyj pg_dump online, korzystając z usług onworks.net