2014-07-01 21 views
5

Başvuru ayarları için bazı tablolar ile veritabanı, kullanıcılar, bölümler, şehirler gibi listeleri. Bu tabloların yapısını ve verilerini istiyorum. Yani yeni bir kullanıcı alırsam, yedekleme bunu kaydeder.Postgresql: Yedek bütün tablo yapıları ama sadece birkaç veri tablosu

Ama aynı zamanda tarihsel ve hesaplanan veriler için bazı veriler var, bu verileri başka kaynaklardan geldi ve sadece sona bir süre için çalışmak ve sonra, bu yüzden yedek veri kaybı olacak. Ancak, yapının geri yüklemesi için tabloya ihtiyaç duyması gerekecek.

şimdi ben bu komutu kullanıyorum ama bu her masa ve tüm verileri kaydetmek.

pg_dump -U "postgres" -h "local" -p "5432" 
     -d dbName -F c -b -v -f c:\uti\backup.dmp 

pg_dump ile ilgili 2 sorum var.

A) dokümanlar seçeneği -b blob verileri için olduğunu söylüyorlar. Çok büyük tablolarım var, ama sanırım bu seçenekler sadece bir BLOB alanı olan tablolar içindir, bu yüzden bu alanlara sahip olmadığım için yedeklememde herhangi bir değişiklik yapmamalı mıyım?

B) pg_dump seçenekleri tablolar ve şemalar içindir görüyoruz. İşlev kodunu kaydetmek isteyip istemediğinizi nasıl belirlersiniz?

+1

2 adımda yap. Şemanızı (işlevlerle) yedekleyin ve ardından seçmeli olarak veriyi tablolayın. – mlt

+0

Bu yüzden bir dosyaya 'backup' ...' a ve daha sonra aynı dosyaya başka bir pg_dump yaptım? Eğer durum buysa, sadece cevap olarak gönderin, böylece oy verebilirim. –

+0

Tamam, ilk dosyanın üzerine yazıldığından çalışmaz. –

cevap

8

yedekleme

pg_dump -U "postgres" -h "local" -p "5432" 
     -d dbName -F c -b -v -f c:\uti\backup.dmp 
     --exclude-table-data '*.table_name_pattern_*' 
     --exclude-table-data 'some_schema.another_*_pattern_*' 

fonksiyon oluşturma kodu şemasının bir bölümü olan hiç istemediğiniz tabloları hariç tutun.

+0

Bu yüzden tabloyu hariç tutuyorum bile 'CREATE TABLE' ifadesi hala yedekte olacak? Ayrıca ... çoklu ''exclude-table-data' parametresini koyabilir miyim? –

+0

Evet, yalnızca tablo verilerini hariç tutar. Tablo oluşturma ifadesi, yedeklemeye gönderilecektir. Evet, birden çok '--exclude-tablo-data ' –

+0

9.2'den büyük olan iki adımda bunu yapmak zorunda: İlk adım veritabanı şemasını yedeklemektir ' pg_dump - sadece-yalnızca' İkinci adım, tablo verilerinin yedeklenmesidir belirli tabloyu hariç 'pg_dump --data-only --exclude-table' – FiruzzZ