pg_restore error from pgadmin3 - Postgresql

8

saya telah mengambil cadangan db postgresql dari system1 menggunakan alat pgadmin3. File cadangan yang dibuat adalah ekstensi ".backup"

Saya mencoba untuk mengembalikannya pada system2 lain yang diinstal dengan postgresql 9.0 dan pgadmin3 1.8 tetapi saya mendapatkan kesalahan

tidak dapat menjalankan kueri: ERROR: parameter konfigurasi yang tidak dikenal "lock_timeout" Perintahnya adalah: SET lock_timeout = 0;

konfigurasi kedua sistem

system1 win7-64bit postgresql 9.0.13-1 - 64bit pgadmin 1.8

system2 win7-32bit postgresql 9.0.13-1 - 32bit pgadmin 1.8

Sangram Anand
sumber

Jawaban:

6

lock_timeout adalah parameter baru yang muncul dengan PostgreSQL 9.3

Per catatan rilis :

Tambahkan lock_timeout variabel konfigurasi untuk memungkinkan membatasi berapa lama sesi akan menunggu untuk mendapatkan satu kunci (Zoltán Böszörményi)

Itu akan menunjukkan bahwa pgadmin menggunakan pg_dumpperintah PostgreSQL 9.3 untuk mengambil cadangan, bukan 9.0.

Ini disarankan hanya ketika bermigrasi ke 9.3. Karena server target adalah 9.0, lebih baik gunakan pg_dumpbiner yang telah diinstal dengan server 9.0.

Jalur binari eksternal dapat diatur dalam preferensi pgAdmin. Untuk memperbaiki masalah ini, Anda dapat mengaturnya ke direktori tempat Anda menginstal 9.0 dan mencoba untuk membuat cadangan lagi.

Selain itu, sebagai perbaikan satu kali Anda dapat mengedit file dump jika itu dalam teks biasa, hapus baris yang menyinggung SET lock_timeout = 0;dengan harapan bahwa itu adalah satu-satunya masalah yang disebabkan oleh ketidakcocokan versi.

Daniel Vérité
sumber
1
Anehnya, saya mendapatkan kesalahan yang sama bahkan dengan sumber 9.3 dan database tujuan ...
Cerin
Saya mendapatkan kesalahan ini dengan db yang didukung dari heroku dan memulihkan pada 9,3 db lokal baru. Apakah itu penting?
justingordon
1
Saya tidak bisa mendapatkan parameter ini di semua file cadangan, tetapi tetap mengembalikan laporan saya kesalahan yang sama. Saya mendapatkan dump di 9.3 postgresql dan saya mencoba mengembalikan pada 9.2 postgresql. Saya pikir ada beberapa opsi untuk membuat parameter lock_timeout ini secara otomatis?
g.annunziata