Re: [GENERAL] pg_restore to a port where nobody is listening?

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: [GENERAL] pg_restore to a port where nobody is listening?
Дата
Msg-id 18ca9130-23a5-7892-32a9-f50d356bf907@aklaver.com
обсуждение исходный текст
Ответ на [GENERAL] pg_restore to a port where nobody is listening?  (Daniel Westermann <daniel.westermann@dbi-services.com>)
Список pgsql-general
On 12/21/2016 09:22 AM, Daniel Westermann wrote:
> Hi all,
>
> I have a PostgreSQL 9.5.4 and a PostgreSQL 9.6.1 instance installed on
> the same host. I dump the 9.5.4 instance with:
>
> pg_dump -h localhost -p 5438 -C -c -F d -j 2 -f /var/tmp/exp/ test
>
> .. which runs fine. I get the output as expected:
> postgres@pgbox:/home/postgres/ [PG954] ls /var/tmp/exp/
> 3016.dat.gz  3017.dat.gz  toc.dat
>
> Source instance:
> (postgres@[local]:5438) [postgres] > show port;
>  port
> ------
>  5438
> (1 row)
>
> Time: 0.328 ms
> (postgres@[local]:5438) [postgres] > select version();
> -[ RECORD 1
>
]-----------------------------------------------------------------------------------------------------------------------
> version | PostgreSQL 9.5.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC)
> 4.8.5 20150623 (Red Hat 4.8.5-4), 64-bit
>
> Now I try to import into 9.6.1 => the instance is not running but the
> environment is  set:
>
> postgres@pgbox:/home/postgres/ [PG961] netstat -na | grep 5439
> postgres@pgbox:/home/postgres/ [PG961] echo $PGPORT
> 5439
>
> postgres@pgbox:/home/postgres/ [PG961] pg_restore -V
> pg_restore (PostgreSQL) 9.6.1
> postgres@pgbox:/home/postgres/ [PG961] pg_restore -h localhost -p 5439
> -F d -C -j 2 /var/tmp/exp/
>
> This runs fine but where does it connect to? Nothing is listening on
> port 5439.

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

"pg_restore can operate in two modes. If a database name is specified,
pg_restore connects to that database and restores archive contents
directly into the database. Otherwise, a script containing the SQL
commands necessary to rebuild the database is created and written to a
file or standard output. This script output is equivalent to the plain
text output format of pg_dump. Some of the options controlling the
output are therefore analogous to pg_dump options."


So you can use pg_restore to restore all or part of a pg_dump (custom
format) file to another file. I find this very handy.


>
> postgres@pgbox:/home/postgres/ [PG961] netstat -tulpen
> (Not all processes could be identified, non-owned process info
>  will not be shown, you would have to be root to see it all.)
> Active Internet connections (only servers)
> Proto Recv-Q Send-Q Local Address           Foreign Address
> State       User       Inode      PID/Program name
> tcp        0      0 0.0.0.0:22              0.0.0.0:*
> LISTEN      0          15929      -
> tcp        0      0 127.0.0.1:25            0.0.0.0:*
> LISTEN      0          17460      -
> tcp        0      0 0.0.0.0:5438            0.0.0.0:*
> LISTEN      1000       18923      2829/postgres
> tcp6       0      0 :::22                   :::*
> LISTEN      0          15938      -
> tcp6       0      0 ::1:25                  :::*
> LISTEN      0          17461      -
> tcp6       0      0 :::5438                 :::*
> LISTEN      1000       18924      2829/postgres
> udp        0      0 0.0.0.0:68
> 0.0.0.0:*                           0          14940
> -
> udp        0      0 0.0.0.0:49566
> 0.0.0.0:*                           0          14929
> -
> udp6       0      0 :::40307
> :::*                                0          14930
> -
>
> postgres@pgbox:/home/postgres/ [PG961] psql -h localhost -p 5439
> psql: could not connect to server: Connection refused
>     Is the server running on host "localhost" (::1) and accepting
>     TCP/IP connections on port 5439?
> could not connect to server: Connection refused
>     Is the server running on host "localhost" (127.0.0.1) and accepting
>     TCP/IP connections on port 5439?
>
> What do I miss? I can give any port to pg_restore and it just seems to
> be fine. Even this seems to working (the copy from stdin is displayed on
> the screen):
> postgres@pgbox:/home/postgres/ [PG961] pg_restore -h localhost -p
> ===6666 -F d -C /var/tmp/exp/
>
>
> Thanks
> Daniel
>


--
Adrian Klaver
adrian.klaver@aklaver.com


В списке pgsql-general по дате отправления:

Предыдущее
От: Daniel Westermann
Дата:
Сообщение: [GENERAL] pg_restore to a port where nobody is listening?
Следующее
От: Andreas Kretschmer
Дата:
Сообщение: Re: [GENERAL] pg_restore to a port where nobody is listening?