Обсуждение: Alternate database locations
This came up back in the days of postgres-6.x and I was told that it would
be working in the 7.x series. I'm sure that it is, but I'm not doing
something correctly.
I want to set up a database in a directory other than
/var/lib/pgsql/data/, so in both postgres' ~/.bash_profile and my
~/.bash_profile I added the line:
PGDATA2="/opt/paisley/"; export PGDATA2
then I restarted the postmaster.
When I try to create a database there I get the message that the
postmaster doesn't know of that directory:
[rshepard@salmo ~]$ createdb --location=PGDATA2 --template=template1 paisley
ERROR: Postmaster environment variable 'PGDATA2' not set
createdb: database creation failed
What have I done incorrectly, please?
TIA,
Rich
Dr. Richard B. Shepard, President
Applied Ecosystem Services, Inc. (TM)
2404 SW 22nd Street | Troutdale, OR 97060-1247 | U.S.A.
+ 1 503-667-4517 (voice) | + 1 503-667-8863 (fax) | rshepard@appl-ecosys.com
http://www.appl-ecosys.com
On Tue, 19 Feb 2002, Jokerman wrote: > i think you should create the database using 'initdb /opt/paislay'. > then you can add the PGDATA2 variable on your environment. I thought of this, too. I created a directory called /opt/paisley/acctdata/, gave it permissions of 700, changed the owner.group to postgres.postgres, then ran initdb specifying that directory. It worked just fine. Next I changed the environment variable, PGDATA2, to /opt/paisley/acctdata/ in postgres's and my ~/.bash_profile, restarted the postmaster and got the same error message: createdb failed because the postmaster doesn't understand PGDATA2. Now I'll try it again without quotes on the path. Thanks, Rich
Rich Shepard <rshepard@appl-ecosys.com> writes:
> Next I changed the environment variable, PGDATA2, to
> /opt/paisley/acctdata/ in postgres's and my ~/.bash_profile, restarted the
> postmaster and got the same error message: createdb failed because the
> postmaster doesn't understand PGDATA2.
Simply changing your .profile doesn't change the environment of your
running shell. Did you log out/back in? Or manually do
export PGDATA2=xxx
?
regards, tom lane
On Mon, 18 Feb 2002, Tom Lane wrote:
> Simply changing your .profile doesn't change the environment of your
> running shell. Did you log out/back in? Or manually do
> export PGDATA2=xxx
Tom,
I logged out, then back in so the environment would be re-established.
Made no difference. I know it must be user error but I cannot find where I'm
going wrong.
Thanks,
Rich
Dr. Richard B. Shepard, President
Applied Ecosystem Services, Inc. (TM)
2404 SW 22nd Street | Troutdale, OR 97060-1247 | U.S.A.
+ 1 503-667-4517 (voice) | + 1 503-667-8863 (fax) | rshepard@appl-ecosys.com
http://www.appl-ecosys.com
On Mon, 18 Feb 2002, Rich Shepard wrote: > > Simply changing your .profile doesn't change the environment of your > > running shell. Did you log out/back in? Or manually do > > export PGDATA2=xxx > > Tom, > > I logged out, then back in so the environment would be re-established. > Made no difference. I know it must be user error but I cannot find where I'm > going wrong. Rather than beating on this dead horse, I decided to try another one. So, I gave up on the alternative location and created the database in /var/lib/psql/data/. Worked like a charm. :-) Now I need to figure out why the copy command isn't copying tables from the ascii files where they're all defined. Sigh. I'm calling it a night. Rich
Hi all, How do I build or get hold of the correct version of pg_dump and pg_dumpall for PostgreSQL 7.0.1? I want to upgrade, but can't until I can dump/restore the databases. I'm getting error messages when I try, and gather from this list that they are due to a version mismatch between PostgrSQL and pg_dump on my machine. I had a look through the GNUmakefile in the source, but nothing jumped out at me. Any help would be greatly appreciated! --Ray. -------------------------------------- Raymond O'Donnell rod@iol.ie rod@gti.ie --------------------------------------
"Raymond O'Donnell" <rod@iol.ie> writes:
> How do I build or get hold of the correct version of pg_dump and
> pg_dumpall for PostgreSQL 7.0.1? I want to upgrade, but can't until I
> can dump/restore the databases.
The recommended way is to use the current pg_dump --- 7.2 and 7.1
pg_dump are supposed to be able to dump 7.0.* databases. What
problems are you having, *exactly*?
regards, tom lane
On 19 Feb 2002, at 10:11, Tom Lane wrote: > The recommended way is to use the current pg_dump --- 7.2 and 7.1 > pg_dump are supposed to be able to dump 7.0.* databases. What > problems are you having, *exactly*? The error I'm getting is: getTables(): relation 'vecs': cannot find function with iod 1647 for trigger RI_ConstraintTrigger_61453 I posted before about errors using pg_dump, and the advice I got was that I had a version mismatch. I'm now trying to get hold of a current version of pg_dump, but I can't find it on the site, nor can I find out how to compile it without compiling everything! Thanks for the reply. --Ray. -------------------------------------- Raymond O'Donnell rod@iol.ie rod@gti.ie --------------------------------------
"Raymond O'Donnell" <rod@iol.ie> writes:
> The error I'm getting is:
> getTables(): relation 'vecs': cannot find function with iod 1647 for
> trigger RI_ConstraintTrigger_61453
Judging from the wording of the error message, it appears that the
version of pg_dump you are using is 6.5 (or even older), which will
certainly not work with a 7.0 or later database. But you should
have a compatible version of pg_dump somewhere in your installation.
Check your PATH.
regards, tom lane
> I want to set up a database in a directory other than > /var/lib/pgsql/data/, so in both postgres' ~/.bash_profile and my > ~/.bash_profile I added the line: > > PGDATA2="/opt/paisley/"; export PGDATA2 > <snip> > ERROR: Postmaster environment variable 'PGDATA2' not set > createdb: database creation failed your init script is using the '-s /bin/sh' argument to 'su', which means bash runs in compat mode (sh is a soft link to bash on linux), and does not use .bash_profile. you need to set up a file ~postgres/.profile (along side of .bash_profile) and put your PGDATA2 environment export in there, or possibly source .profile from .bash_profile. restart the postmaster and it should now work. guys, is there a good reason why the init script has to specify a shell explicitly? the passwd entry for postgres should be good enough it seems like... changing the init script at install time is a bad solution because it gets over-written on postgres upgrades from RPM. and adding a .profile file is not exactly intuative, and the need for it is not documented anywhere that i could find. Glen
On Tue, 19 Feb 2002, Glen Parker wrote:
> your init script is using the '-s /bin/sh' argument to 'su', which means
> bash runs in compat mode (sh is a soft link to bash on linux), and does not
> use .bash_profile. you need to set up a file ~postgres/.profile (along side
> of .bash_profile) and put your PGDATA2 environment export in there, or
> possibly source .profile from .bash_profile. restart the postmaster and it
> should now work.
Glen,
I'll be darned! I haven't learned this about shells in the four years I've
been running linux here. Sure makes a difference 'cause now the alternate
location works. Perhaps this ought to go into the docs somewhere -- or a
FAQ.
Many thanks!
Rich
Dr. Richard B. Shepard, President
Applied Ecosystem Services, Inc. (TM)
2404 SW 22nd Street | Troutdale, OR 97060-1247 | U.S.A.
+ 1 503-667-4517 (voice) | + 1 503-667-8863 (fax) | rshepard@appl-ecosys.com
http://www.appl-ecosys.com
> location works. Perhaps this ought to go into the docs somewhere -- or a > FAQ. agreed :-) I just added a blurb to the interactive docs about it, on the alternate location page. i think the correct longterm fix is to lose the '-s' option in the init script... feature request!! glen
http://www.postgresql.org/idocs/index.php?managing-databases.html > what is the address of the interactive docs page?