PostgreSQL veri tabanı yedekleme işlemleri iki farklı adımda ele alınabilir. Bunu yanında tüm veri tabanını başka yere aktarmak yerine belli bir tablonun aktarılması da mümkündür.
- Veri tabanı yedeklerinin dosyaya aktarılması.
- Veri tabanı yedeklerinin başka bir veri tabanına aktarılması.
- Veri tabanında bulunan bir tablonun başka bir veri tabanına tabloya aktarılması.
PostgreSQL veri tabanında yedekleme işlemi için kullanılan komut pg_dump şeklindedir. 9.3 versiyonu için parametre ve kullanım seçeneklerine buradan erişebilirsiniz.
1- Veri tabanı yedeklerinin dosyaya aktarılması işlemi.
Dosyaya aktarım işlemleri sırasında Schema ve Data aktarımlarının ayrı ayrı veya birlikte aktarımı senaryoları vardır. Bu durumda üç durum söz konusudur.
a) Data ve Schema’nın birlikte dosyaya aktarılması.
pg_dump -C -h host -U username db_name >
/directory/dump_schema_and_data_file_name
b) Sadece Data aktarılması.
pg_dump -Cs -h host -U username db_name >
/any_directory/dump_schema_file_name
c) Sadece Schema aktarılması.
pg_dump -a -h host -U username db_name >
/any_directory/dump_data_file_name
2- Veri tabanı yedeklerinin başka bir veri tabanına aktarılması işlemi.
PostgreSQL veri tabanında bulunan verileri başka bir sunucuda veya aynı sunucuda bulunan bir veri tabanına aktarmak mümkündür. Bu sayede herhangi bir dosya da yedekleme tutulmaz
Kopyalamanın uzak bilgisayardan (remote) çalıştığımız local bilgisayara yapılacağını varsayacak olursak.
pg_dump -C -h remote_host -U remote_user db_name | psql -h localhost -U local_user db_name
3-Veri tabanında bulunan bir tablonun başka bir veri tabanına tabloya aktarılması.
Kopyalamanın uzak bilgisayardan (remote) çalıştığımız bilgisayara yapılacağını varsayacak olursak.
pg_dump -t kopyalanacak_tablo_adı -U remote_username -h remote_host_adres remote_database_name | psql -U local_username local_database_name
Bu yedekleme işleminde remote_host_adres bilgisayarında bulunan remote_database_name veri tabanındaki tablo local bilgisayarda bulunan PosqreSQL veri tabanında bulunan local_database_name veri tabanına aktarılmıştır.