GNU/Linux >> Linux Esercitazione >  >> Linux

Impossibile eseguire il pg_restore del file SQL sulla VM Linux remota

'pg_restore' ha lo scopo di ripristinare i file generati da 'pg_dump'.

Dalla pagina man

pg_restore è un'utilità per il ripristino di un database PostgreSQL da un archivio creato da pg_dump(1) in uno dei formati non di testo semplice.

https://www.postgresql.org/docs/9.2/static/app-pgrestore.html

Se il tuo file è stato generato da pg_dump, probabilmente devi almeno dirgli in quale database eseguire il dump:

pg_restore -d my_new_database temp.sql

La mia esperienza con pg_restore in diverse versioni mostra che molte volte ho bisogno di specificare il formato del file di dump, anche se era in formato "nativo", nonostante la manpage indichi che avrebbe rilevato il formato.

pg_restore -d my_new_database -Fc temp.dump

Questa è solo un'ipotesi, ma penso che se le tabelle fossero effettivamente ripristinate, senza specificare il db, sarebbero state scaricate nel database predefinito. Puoi verificarlo elencando le tabelle nel database "postgres" (non dovrebbero essercene).

postgres=#\c postgres
You are now connected to database "postgres" as user "postgres".
postgres=#\dt
No relations found.

Se le tue tabelle sono state ripristinate nel database predefinito, verranno elencate.

I file SQL di testo normale devono essere trattati in modo diverso, di solito eseguiti tramite comandi SQL utilizzando psql.

psql -d my_database < temp.sql

Supponendo che tu abbia generato il backup del tuo database simile a questo:

pg_dump -a --inserts databasename > exportfilename.sql

Prova a ripristinare il file in questo modo:

psql databasename -f exportfilename.sql

Postgres pg_restore come menzionato sopra è inteso solo per essere usato con dump file, non è possibile ripristinarlo in questo modo. Controlla questa risposta nel sito web ufficiale postgres.org

Fondamentalmente non usa pg_restore con sql files --->https://www.postgresql.org/message-id/AANLkTi%3DAqmWrUR4f8%2BEfCHzP%2BQrL1%3DunRLZp_jX7SoqF%40mail.gmail.com


Linux
  1. Come spostare un file in Linux

  2. Linux:tutto è un file?

  3. Esempio di file /etc/services in Linux

  4. Lettura di un file CSV con query SQL dalla shell Linux

  5. Modifica remota con editor locale (Linux)

Comando Gunzip in Linux

Suggerimenti Vim:modifica file remoti con Vim su Linux

Come montare un filesystem Linux remoto usando SSHFS

Come ripristinare un database MS SQL da SolidCP?

Come ripristinare il database MS SQL da WebsitePanel 2.1?

Come importare il mio file .sql in un database PostgreSQL?