From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | chiru r <chirupg(at)gmail(dot)com> |
Cc: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, John R Pierce <pierce(at)hogranch(dot)com>, Forums postgresql <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: pg_basebackup issue |
Date: | 2017-04-22 22:00:46 |
Message-ID: | 9850d8f3-dce8-de29-f5c7-426c0ab038ab@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 04/22/2017 12:56 PM, chiru r wrote:
> Thanks you. The FATAL message is not clear. Yes, It is helpful
> if someone with more knowledge of the connection code.
Well if your interested in looking for yourself look here:
src/backend/utils/init/postinit.c
Lines 781-879:
...
if (!superuser() && !has_rolreplication(GetUserId()))
ereport(FATAL,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
errmsg("must be superuser or replication role to start walsender")));
...
/*
* If this is a plain walsender only supporting physical replication, we
* don't want to connect to any particular database. Just finish the
* backend startup by processing any options from the startup packet, and
* we're done.
*/
....
/*
* If this is a background worker not bound to any particular
* database, we're done now. Everything that follows only makes sense
* if we are bound to a specific database. We do need to close the
* transaction we started before returning.
*/
To me it looks like settings are handled by process_settings at line
1101 and that is only called if an actual database is being connected to.
>
>
> [postgres(at)pgserver ~]$ /opt/PostgreSQL/9.5/bin/pg_basebackup --format=t
> --pgdata=online_backups1 -p 5432 -U *backup_admin* -x -z --verbose
> *pg_basebackup: could not connect to server: FATAL: must be superuser
> or replication role to start walsender*
> *
> *
>
> On Sat, Apr 22, 2017 at 2:00 PM, Adrian Klaver
> <adrian(dot)klaver(at)aklaver(dot)com <mailto:adrian(dot)klaver(at)aklaver(dot)com>> wrote:
>
> On 04/22/2017 10:04 AM, chiru r wrote:
>
> Thanks for the reply,
>
> Actually I am not setting Role for database specific,I did set
> Role to
> user.
> Since users and roles are global for all databases in PostgreSQL,I
> believe it should work for replication pesudo database.
>
>
> Except for the part where the 'replication' database does not
> actually exist, so I am not seeing how a connection could be
> established to it. Now whether a replication connection is supposed
> to honor SET ROLE is something someone with more knowledge of the
> connection code will have to answer. The evidence says it does not.
>
>
> Thanks,
> Chiru
>
>
>
> --
> Adrian Klaver
> adrian(dot)klaver(at)aklaver(dot)com <mailto:adrian(dot)klaver(at)aklaver(dot)com>
>
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | chiru r | 2017-04-22 23:44:23 | Re: pg_basebackup issue |
Previous Message | chiru r | 2017-04-22 19:56:55 | Re: pg_basebackup issue |