Giriş
Yedek alır. Alınan yedek
pg_restore komutu veya
psql komutu ile geri yüklenebilir. Açıklaması
şöyle.
pg_dump is a regular PostgreSQL client application. This means that you can do this backup procedure from any remote host that has access to the database. pg_dump does not operate with special permissions. In particular, it must have read access to all tables that you want to back up, so in practice, you almost always have to run it as a database superuser.
Dumps created by pg_dump are internally consistent, that is, the dump represents a snapshot of the database as of the time pg_dump begins running. pg_dump does not block other operations on the database while it is working. (Exceptions with an exclusive lock, such as most forms of ALTER TABLE.)
Kullanıcı Bilgileri
pg_dump kullanıcı bilgilerini kaydetmez. Dolayısıyla
"create user ..." komutlarını içermez. Açıklaması
şöyle
pg_dump can not do that, because pg_dump only dumps a single database and that information is not part of one database, but stored globally in the Postgres "cluster".
You need to use pg_dumpall for that, using the --globals-only option:
Söz Dizimi
Şeklen
şöyle. En sona veri tabanı ismi gelmeli. Bu komut çıktıyı ekrana verir. Dolayısıyla dosya yönlendirme ile birlikte kullanılmalı.
pg_dump [OPTION]... [DBNAME]
Mantıken
pd_dump
"Bağlantı Seçenekleri" +
"Çıktı Seçenekleri" şeklinde kullanılıyor.
Benim Kullandıklarım
Örnek
Şöyle
yaptım. Şifre girmeye gerek kalmadı.
pg_dump.exe --dbname=postgresql://myuser:mypassword@myserver:5432/mydb -F c
-f mybackup
Açıklaması
şöyle.
For a one-liner, like migrating a database you can use --dbname followed by a connection string (including the password) as stated in the pg_dump manual
In essence.
pg_dump --dbname=postgresql://username:password@127.0.0.1:5432/mydatabase
Note: Make sure that you use the option --dbname instead of the shorter -d and use a valid URI prefix, postgresql:// or postgres://.
Veri Tabanı İçin
Örnek
Şöyle
yaparız. -Fc ile TestDB veri tabanının custom formatta yedeği alınıyor.
[root@blt ~]# su - postgres
[postgres@blt ~]$ pg_dump -Fc TestDB> TestDB.dump
Tablo İçin
Örnek
Şöyle
yaparız. -Fc ile postgres veri tabanının t1 tablosunun custom formatta yedeği alınıyor.
[root@blt ~]# su - postgres
[postgres@blt ~]$ pg_dump -Fc — data-only -W -dpostgres -tt1 > t1.dump
1. Bağlantı Seçenekleri
-d seçeneği - database
Şöyle
yaparız
$ pg_dump -h $host -U $user -d $db -a -W --format=p >> dump.sql
# backup
pg_dump -U [username] -d [database] > backup.sql
# restore
psql -U [username] -d [database] < backup.sql
-h seçeneği - host
Açıklaması
şöyle. Bağlanılacak sunucunun adresini belirtir.
database server host or socket directory
-p seçeneğiBağlanılacak sunucunun port numarasını belirtir.
-U seçeneği
user anlamına gelir. Açıklaması
şöyle.
connect as specified database user
Şöyle
yaparız.
pg_dump -U tad -h localhost -p 5932 -F c -b -v -f /home/dump26072018.dmp openbravo
-w seçeneği
Açıklaması
şöyle.
-w
--no-password
Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password.
-W seçeneği
Örnek ver
2. General Options
-f seçeneği
Çıktı dosyasının ismini belirtir.
Örnek
#backup
pg_dump -U admin -d company -f company_backup.sql
#restore
psql -d new_company -f company_backup.sql
Örnek
# Export Data Only
pg_dump -U admin -d company -f company_backup.sql --data-only
#restore
psql -d new_company -f company_backup.sql
Örnek
# Include Only Some Schemas:
pg_dump -U admin -d company -n 'p*' -f company_backup.sql
#restore
psql -d new_company -f company_backup.sql
-F seçeneği
Kullanılacak format'ı belirtir. 4 format tipi var.
1. custom formatBu format sadece pg_restore komutu ile geri yüklenebilir. Açıklaması
şöyle.
c custom Output a custom-format archive suitable for input into pg_restore. Together with the directory output format, this is the most flexible output format in that it allows manual selection and reordering of archived items during restore. This format is also compressed by default.
Örnek
$ pg_dump \
-F c \
-f /var/lib/postgresql/data/2023-04-01-custom.dump \
-U mypostgresqldumpplanet \
myjhipsterplanet
2. plain format Bu format sadece pg_sql komutu ile geri yüklenebilir.
Örnek
plain format için şöyle
yaparız.
pg_dump -h remote_address -U username -D dbname -Fp > backup.sql
3. directory format
Bu format sadece pg_restore komutu ile geri yüklenebilir. Belirtilen dizinde her tablo için bir dosya yaratır
Örnek
-j ile thread sayısı belirtilir.
-Fd ile directory format belirtilir.
--quote-all-identifiers ile tüm dosya ve sütün isimleri quote içine alınır
-f ile dizin ismi belirtilir
--blobs nedir bilmiyorum
pg_dump -j 4 -Fd --quote-all-identifiers --compress=0 -f $SCHEMA --blobs
pg_restore -j 4 -d $DATABASE $SCHEMA
Örnek
$ pg_dump \
-F d \
-U mypostgresqldumpplanet \
myjhipsterplanet > /var/lib/postgresql/data/2023-04-01-directory/
Örnek
# Produces a company_backup folder with .dat.gz files.
pg_dump -U admin -d company -F d -f company_backup
4. tar format
Bu format sadece pg_restore komutu ile geri yüklenebilir. "-F t" ile tar formatı belirtilir
Örnek
pg_dump -d postgres -t customer -F t > /tmp/customer.tar
pg_restore -d postgres -t customer /tmp/customer.tar
Örnek
$ pg_dump \
-F t\
-f /var/lib/postgresql/data/2023-04-01-tar.tar \
-U mypostgresqldumpplanet \
myjhipsterplanet
-j seçeneği
Örnek ver
--v seçeneği
Örnek ver
--V seçeneği
Örnek ver
--Z seçeneği
Örnek ver
--lock-wait-time seçeneği
Örnek ver
--no-sync seçeneği
Örnek ver
2. Options Controlling Output Content
-a seçeneği
Örnek ver
-b seçeneği
Örnek ver
-B seçeneği
Örnek ver
-c seçeneği
Örnek ver
-C seçeneği
Açıklaması
şöyle. Copy şeklinde satır verisini içeren sql cümleleri oluşturur.
include commands to create database in dump
Copy komutunun açıklaması
şöyle
Use COPY to load all the rows in one command, instead of using a series of INSERT commands. The COPY command is optimized for loading large numbers of rows; it is less flexible than INSERT, but incurs significantly less overhead for large data loads. Since COPY is a single command, there is no need to disable autocommit if you use this method to populate a table.
Örnek
İki farklı makine arasında veri tabanı kopyalamak istersek şöyle
yaparız. Bu veri tabanı altındaki tüm schemaları kopyalar
pg_dump -C -h localhost -U postgres mydatabase| psql -h remote
-U postgres mydatabase
-E seçeneği
Örnek ver
-n seçeneği veya --schema=SCHEMA
Açıklaması
şöyle.
dump the named schema(s) only
Örnek
# Include Only Some Schemas:
pg_dump -U admin -d company -n 'p*' -f company_backup.sql
#restore
psql -d new_company -f company_backup.sql
-N seçeneği
Örnek ver
-o seçeneği
Açıklaması
şöyle.
If your database schema relies on OIDs (for instance as foreign keys), you must instruct pg_dump to dump the OIDs as well. To do this, use the -o command-line option.
-O seçeneği
Örnek ver
-s seçeneği
Açıklaması
şöyle. Create Scheme, Create Table şeklinde sql cümleleri
oluşturur.
dump only the schema, no data
CREATE SCHEMA rdstest;
ALTER SCHEMA rdstest OWNER TO rdstest;
Örnek
Veri olmadan sadece tabloları oluşturmak için şöyle
yaparız.
pg_dump -U postgres -n myschema -s mydatabase > schema.sql
-S seçeneği
Örnek ver
-t seçeneği
tablo ismini belirtir
Örnek
pg_dump -d postgres -t customer > /tmp/customer.sql
-T seçeneği
Örnek ver
-x seçeneği
Örnek ver