Postgres veritabanını geri yükleme: pg_restore -vs- sadece psql kullanarak


16

Ben Postgres veritabanı pg_dump (düz metin biçiminde) kullanarak damping ve sonra sadece psql ( -fseçeneği ile) kullanarak geri yükleyin .

Hangi soru yalvarır: (genel ile karşılaştırıldığında) özel bir geri yükleme aracı gibi görünüyor pg_restore kullanarak bir şey eksik psqlmi?

pg_dumpParametreleri kullanarak tetikleyicilerin devre dışı bırakılması gibi seçenekleri kontrol edebilirim . O halde ne için pg_restorekullanılır? düz metin olmayan döküm biçimleri?


4
Kılavuzdan : " pg_restore, düz metin olmayan biçimlerden
birinde pg_dump

Yanıtlar:


19

SQL biçiminde bir döküm oluşturduysanız , kullanabileceğiniz tek şey budur psql.

Bir özel biçim ( pg_dump -Fc) veya dizin biçimi ( pg_dump -Fd) dökümü oluşturduysanız, kullanabilirsiniz ve kullanmanız gerekir pg_restore.

Özel ve dizin biçimli dökümler, düz SQL betik dökümlerine göre birçok avantaj sunar ve bunları yalnızca kullanırım. Sen seçici olarak belirtmek zorunda seçenekleri çok vb zaman, geri sadece şema, sadece veri veya her ikisini de seçebilir, sadece bazı tablolar / şemayı geri yükleyebilirsiniz pg_dumpSQL formatlı döker anda seçilebilir restore- zaman bir özel formatlı dökümü kullanabilir ve eğer pg_restore.

Geriye dönük uyumluluk pg_dumpolmasaydı , varsayılanın -Fc(özel) format olacağından eminim .

Bir SQL biçimindeki dökümü PostgreSQL veritabanına geri yüklemeden ve sonra geri yüklenen DB'yi boşaltmadan özel biçime veya dizin biçimine dönüştüremezsiniz.


Toplu yeniden adlandırma fonksiyonları ve iyi bir regexp ile bir sql dosyasında gibi veri manipülasyonu yapmak mümkün mü?
velop

1
Hayır, ancak pg_restorebir dbnameargümana ihtiyacınız olmadan SQL biçimli bir döküm haline getirebilirsiniz . Tersini yapamazsın.
Craig Ringer

@CraigRinger psql vs pg_dump kullanarak geri yükleme için herhangi bir hız farkı var mı?
Nikunj Sardhara

2
@NikunjSardhara Genellikle değil pg_restore, paralel geri yüklemeyi destekler ve eğer kullanırsanız çok daha hızlı olacaktır.
Craig Ringer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.