Re: pg_restore

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-admin(at)lists(dot)postgresql(dot)org
Subject: Re: pg_restore
Date: 2019-04-11 23:12:44
Message-ID: c576d9d8-afbb-dbaa-92c9-586cfb860b68@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On 4/11/19 5:09 PM, rammohan ganapavarapu wrote:
> Hi,
>
> I have a custome database called mudb along with default databases in my
> postgresql cluster, i am trying to restore mydb from a custom format
> pg_dump file, what is the procedure to do it?
>
> psql -t -h localhost  -U ${RUN_USER}  -c "SELECT
> pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE
> pg_stat_activity.datname = 'mydb' AND pid <> pg_backend_pid();"
>
> pg_restore" -h localhost  -U ${RUN_USER}  -d mydb -j "${JOBS}" -x -O -C -c
> --if-exist -v pgdump.dump
>
> But i am getting below error:
>
> pg_restore: connecting to database for restore
> pg_restore: dropping DATABASE mydb
> pg_restore: [archiver (db)] Error while PROCESSING TOC:
> pg_restore: [archiver (db)] Error from TOC entry 4312; 1262 16384 DATABASE
> mydb mydb
> pg_restore: [archiver (db)] could not execute query: ERROR:  cannot drop
> the currently open database
>     Command was: DROP DATABASE IF EXISTS mydb;
>
> So what is the best way to restore? I am using 9.6 version.

I made the same mistake you did, by doing "-d mydb".  You need to specify
the postgres database.

This works for me:
export PGUSER=${RUN_USER}
export PGHOST=localhost
DB=mydb
pg_restore -xOvcC --if-exists --jobs=${JOBS} *-d postgres*${DB} 2>
${DB}_restore.log

--
Angular momentum makes the world go 'round.

In response to

  • pg_restore at 2019-04-11 22:09:47 from rammohan ganapavarapu

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Ron 2019-04-11 23:16:55 Re: pg_restore
Previous Message rammohan ganapavarapu 2019-04-11 22:09:47 pg_restore