PostgreSQL veritabanı .tar dosyasından nasıl geri yüklenir?


20

Ben $ dbName oluşturur WHM kullanarak artımlı yedeklemeler sırasında yedeklenmiş tüm PostgreSQL veritabanları var. katran dosyası.

Veriler bu .tar dosyalarında saklanır, ancak SSH aracılığıyla tek tek veritabanlarına nasıl geri yükleneceğini bilmiyorum. Özellikle dosya konumu.

Ben kullanıyorum:

pg_restore -d client03 /backup/cpbackup/daily/client03/psql/client03.tar

'giriş dosyası açılamadı: İzin reddedildi' hatası veren

Herhangi bir yardım takdir.


Bu komutu yürüttüğünüz kullanıcının bu dosyaya erişimi var mı?
mat

Merhaba Mat, öyle düşünürdünüz, (root olarak çalışıyor) ancak birçok kombinasyondan sonra sorunu çözdünüz ve ham .tar dosyasını tmp'ye taşıyın .... pg_restore -c -i -U postgres -d client03 -v "/tmp/client03.tar" -W Sondaki -W, parola girişini gerektiği gibi zorlayan ve her şeyin bir araya getirilmesini sağlayan ana numaraydı.
Stephen

Yanıtlar:


24

Başka birinin bu iş parçacığını bulması durumunda doğru kod dizesini buldum.

pg_restore -c -i -U postgres -d client03 -v "/tmp/client03.tar" -W

Mola aşağı oldu http://www.postgresql.org/docs/7.3/static/app-pgrestore.html ve deneme yanılma biraz.

Esasen ...

-c to clean the database
-i to ignore any database version checks
-U to force a user
-d to select the database
-v verbose mode, don't know why
"$$" the location of the files to import in tmp to get around permission issues
-W to force asking for the password to the user (postgres)

Umarım yukarıdaki başka birine yardımcı olur.


tar.gz ile aynı şey nedir?
eri

2

Benim için geri yükleme yapmak için PgAdmin III kullanırken, kendi oluşturduğu aşağıdaki komutu kullanarak kusursuz çalıştı:

pg_restore --host localhost --port 5432 --username "my_user_name" --dbname "my_db_name" --role "my_user_name" --no-password  --verbose "/Users/me/Desktop/backup_file.tar"

Uyarıları önlemek için, hedef sunucuda zaten bulunan yedekleme dosyasındaki nesnelerin sahibinin rolünün olması iyi bir fikirdir. Ayrıca, hedef DB'nin bu role sahip olması ve sahip olması gerekir.


1

Bir .tar dosyasını içe aktarabileceğinden emin değilim. Yapardım

tar -zxvf client03.tar 

dosyanın içindeki her şeyi ayıklamak ve pg_restore'u tekrar deneyin. Çıplak metal geri yüklemelerinden aynı geri yükleme yöntemine sahip olduğumuz için pg_restore'un çalıştığını biliyorum.


1
Merhaba Stephen, evet görünüşe göre, doğru kodu almak ve dosyayı erişim izni olan bir klasöre bırakmak biraz zaman aldı :)
Stephen

"-Z", gzip ile sıkıştırılmamış bir zift olduğu için bir hata döndürür.
Alex

Alex% 100 doğrudur.
Stephen Thompson

0

Aşağıda, benim için pgAdmin iii'ten veritabanına tıklayıp sağ tıklayıp geri yükleme seçilerek oluşturuldu. Sahip olduğum .tar dosyasına gittim ve kendi başına yaptım.

/usr/bin/pg_restore --host localhost --port 5434 --username "postgres" \
--dbname "dvdrental" --no-password  --schema public --verbose \
"/home/npena/Desktop/dvd/dvdrental.tar"

0

9.5 sürümü için, komut satırında aşağıdakileri çalıştırın

pg_restore -W -c -U [username] -d [database_name] -v "[path to extracted tar]"


0

GNU / LINUX KONSOLU:

pg_restore -h 127.0.0.1 -p 5432 -U "postgres" -d "dvdrental_tpl" -v "/var/backups/dvdrental.tar";

- Detay Yardımı

pg_restore --help

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.