Re: initdb change - Mailing list pgsql-hackers
From | David Fetter |
---|---|
Subject | Re: initdb change |
Date | |
Msg-id | 20080825171203.GX32546@fetter.org Whole thread Raw |
In response to | Re: initdb change (Joshua Drake <jd@commandprompt.com>) |
Responses |
Re: initdb change
(Joshua Drake <jd@commandprompt.com>)
|
List | pgsql-hackers |
On Mon, Aug 25, 2008 at 09:54:26AM -0700, Joshua D. Drake wrote: > On Mon, 25 Aug 2008 09:42:21 -0700 > David Fetter <david@fetter.org> wrote: > > > > We either need to provide a way to initialize it at initdb, allow > > > xlogs to be in table space or add a GUC for the location. > > > > There's already a way to specify where xlogs should be via > > -X/--xlogdir. > > Sorry should have checked 8.3 initdb instead of 8.2. > > > What that doesn't do is put the xlogdir where a DBA > > would naturally expect to find it. When that DBA doesn't find it in > > the place they expect, very bad knock-on decisions are likely to > > result. > > O.k. when using 8.3 I did this: > > initdb -D /tmp/foo -X /tmp/xlogs > > And I got: > > /tmp/foo/pg_xlog which is a link to /tmp/xlogs Oops. Well, this isn't quite the foot-gun I'd previously thought :P > That seems perfectly logical. If I (without removing the old initdb) do > this: > > /usr/lib/postgresql/8.3/bin/initdb -D /tmp/bar -X /tmp/xlog > > I get: > > initdb: directory "/tmp/xlog" exists but is not empty > If you want to store the transaction log there, either > remove or empty the directory "/tmp/xlog". > initdb: removing data directory "/tmp/bar" > > I just reread your original message a little slower and see that what > you want is if: > > /var/lib/pgsql/data/ exists but is empty you can initdb within that > directory. However if there is anything in it you can not. You are > asking that if pg_xlog exists but is empty that we still be able to use > the DATADIR and you can pass existing so that it will also use pg_xlog > if it is empty. > > My take would be to not add a new flag. Instead to implicitly allow it. > If initdb finds that DATADIR and pg_xlog is empty it will use both. Is there some reason why initdb shouldn't just Do The Right Thing™ when it finds an empty extant $PGDATA/pg_xlog directory that passes the same tests an empty extant $PGDATA would? Cheers, David. -- David Fetter <david@fetter.org> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fetter@gmail.com Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate
pgsql-hackers by date: