Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-25 Thread Michael A. Peters

 Michael A. Peters wrote:
 I already maintain my own php RPMs because RHEL php is too old (I need
 the DOMDocument stuff) so maybe I need to add Postgresql to that.


 Note that you don't even have to build them yourself; the set at
 https://public.commandprompt.com/projects/pgcore/wiki/ are a
 straightforward drop-in replacement for the ones that RedHat provides.
 Subscribe to that yum repo just for the postgresql* packages and you can
 easily run 8.3 or 8.4 instead of the system 8.1.  You might need to
 recompile your custom PHP against that afterwards, but you shouldn't
 have to build the database itself completely from source.  And you'll
 still get security updates and bug fix point upgrades from that yum
 repo, continuing after the ones for 8.1 slow down.

It looks like I might need to.
I did the transition on my test machine and everything seems to be working
well from the shell except it won't connect from php.

I'm going out for week so I'll mess with it when I get back. Could be
something else trivial too.

-
Michael A. Peters

http://www.shastaherps.org/

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-25 Thread Devrim GÜNDÜZ
25.Tem.2010 tarihinde 00:23 saatinde, Michael A. Peters mpet...@shastaherps.org 
 şunları yazdı:
OK. I already maintain my own php RPMs because RHEL php is too old  
(I need the DOMDocument stuff)


IIRC, Centosplus repo has already Dom stuff.
--
Devrim GÜNDÜZ
PostgreSQL DBA @ Akinon/Markafoni, Red Hat Certified Engineer
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org  Twitter: http://twitter.com/devrimgunduz


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-25 Thread Michael A. Peters

 25.Tem.2010 tarihinde 00:23 saatinde, Michael A. Peters
 mpet...@shastaherps.org
   şunları yazdı:
 OK. I already maintain my own php RPMs because RHEL php is too old
 (I need the DOMDocument stuff)

 IIRC, Centosplus repo has already Dom stuff.

I basically just rebuild the src.rpm from Fedora, which I think is similar
to what they have in CentOS plus.


-
Michael A. Peters

http://www.shastaherps.org/

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Alban Hertroys
On 24 Jul 2010, at 24:20, Michael A. Peters wrote:

 I've been using MySQL for years. I switched (er, mostly) to PostgreSQL
 recently because I need to use PostGIS. It is all working now for the most
 part, and PostGIS is absolutely wonderful.

Welcome, I hope you like it here :)

 I run CentOS 5.x and I do not like to upgrade vendor supplied packages. My
 version of pg_dump is from postgresql-8.1.21-1.el5_5.1 - I'm assuming the
 8.1.21 is the important part.

Correct.
It's not a very recent version (we're at 8.4.1 now), but at least it's up to 
date regarding bug and security fixes - it's not 8.1.2 or something, you'd be 
amazed with what versions people show up here sometimes :P.

 In writing my backup cron job, I ran into a small problem. It seems that
 my version of pg_dump does not accept the -T option for excluding tables.
 There are a couple tables that never need to be included in the backup (IE
 php session data). Since I prefer not to upgrade pgsql at this time, I was
 wondering if this is where schemas might help? IE can I put those few
 tables into a different schema and then tell pg_dump to only dump the
 public schema? Schema is kind of a new concept to me.

Schema's in Postgres are similar to different databases in MySQL. They allow 
you to organise your tables in groups of tables belonging to similar 
functionality, for example. They have their own permissions too, which is nice 
if you need to restrict certain users to certain functionality. And of course 
you can access tables cross-schema, if you aren't denied the permissions.

In your case, you could move those troublesome tables into their own schema 
and adjust the search_path accordingly for the user your PHP application uses 
to connect to the DB.

 For my code, I use the php pear::MDB2 wrapper (which made moving from
 MySQL to PostgreSQL much easier, just had to fix some non standard SQL I
 had). If I move stuff out of the public schema, am I going to have tell
 MDB2 how to find which schema it is in? I guess that may be better suited
 for php list, but hopefully someone knows.

There are several approaches to that actually:

You can do it from PHP by executing SET search_path TO '...' after you 
connect to the database (or when you first need tables from that schema, but 
that seems to overcomplicate matters).

You can ALTER the DATABASE to set the search_path to what you need.

You can ALTER the ROLE to set the search_path for a group of users or a single 
user.

Any of those options will work, pick which suits your needs best ;)

 When everything was MySQL - I ran sphyder in its own database so that a
 bug in sphyder code could not be exploited to hack my main database.
 However, I'm wondering if that is an area where schema would be better. IE
 create a schema called sphyder and only give the sphyder user permission
 to select from the sphyder schema. Is that what the concept of schemas is
 for?

You could move Sphyder's tables into a separate schema too, but... if you 
disallow the accompanying role (let's say 'sphyder') access to the public 
schema, then it can't read various system tables either. That can cause issues 
with looking up FK constraints and the like.
Mind that I've never been in a situation where I needed to disallow some roles 
to access to the public schema, I'm not 100% sure about this - a simple test 
case is easy to create though.

I'd probably just put most (or all) of my main database in a schema other than 
'public' so that the sphyder role can still access the system tables it needs 
(and it won't be able to change those if that role is set up with sufficiently 
restrictive permissions).

As an aside; I'm not familiar with Sphyder, but Postgres' TSearch 2 is pretty 
good too. It's built into the main database since version 8.3, not in your 
version. For 8.1 there is an extension with largely the same functionality, in 
case you're interested. I'm not sure how easy that would be to upgrade to the 
builtin version once you get to 8.3 or newer though...

 Thanks for helping out a n00b.


You're welcome, we've all been there.

Alban Hertroys

--
If you can't see the forest for the trees,
cut the trees and you'll see there is no forest.


!DSPAM:737,4c4ac73d286218533513805!



-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Greg Smith

Michael A. Peters wrote:

I run CentOS 5.x and I do not like to upgrade vendor supplied packages. My
version of pg_dump is from postgresql-8.1.21-1.el5_5.1 - I'm assuming the
8.1.21 is the important part.
  


That's a bad policy with PostgreSQL.  I guarantee you that the problems 
you will run into because you're on PostgreSQL 8.1 are far worse than 
any you might encounter because you've updated from RedHat's PostgreSQL 
to the RPM packages provided by the PostgreSQL packagers.  There are 
hundreds of known limitations in 8.1 you will absolutely suffer from as 
you expand your deployment that have been fixed in later versions.  Yes, 
you can run into a packaging problem after upgrading to the PostgreSQL 
provided 8.3 or 8.4 that doesn't exist with the 8.1 they ship.  But 
that's a *possible* issue, compared to the *guaranteed* limitations that 
are removed by using a later version of the database.


Also, take a look at 
http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy

8.1 will be a frozen release no longer receiving bug fixes real soon now.

You've already run into the first It seems that my version of pg_dump 
does not accept...; expect many more of those if you decide you must 
stay on 8.1.


--
Greg Smith  2ndQuadrant US  Baltimore, MD
PostgreSQL Training, Services and Support
g...@2ndquadrant.com   www.2ndQuadrant.us


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Michael A. Peters

 On 24 Jul 2010, at 24:20, Michael A. Peters wrote:

*snip*

 Schema's in Postgres are similar to different databases in MySQL. They
 allow you to organise your tables in groups of tables belonging to similar
 functionality, for example. They have their own permissions too, which is
 nice if you need to restrict certain users to certain functionality. And
 of course you can access tables cross-schema, if you aren't denied the
 permissions.

 In your case, you could move those troublesome tables into their own
 schema and adjust the search_path accordingly for the user your PHP
 application uses to connect to the DB.

I spent last night playing with schemas and I must say, they absolutely
rock. I especially like the fact that you can still do queries involving
multiple schemas if you need to because they are still part of the same
database, and pg_dump keeping track of the various user authentications
granted to a schema and its tables is class.

It's the right way to do things.

*snip*


 You could move Sphyder's tables into a separate schema too, but... if you
 disallow the accompanying role (let's say 'sphyder') access to the public
 schema, then it can't read various system tables either. That can cause
 issues with looking up FK constraints and the like.
 Mind that I've never been in a situation where I needed to disallow some
 roles to access to the public schema, I'm not 100% sure about this - a
 simple test case is easy to create though.

 I'd probably just put most (or all) of my main database in a schema other
 than 'public' so that the sphyder role can still access the system tables
 it needs (and it won't be able to change those if that role is set up with
 sufficiently restrictive permissions).

That's what I'm doing now.


 As an aside; I'm not familiar with Sphyder, but Postgres' TSearch 2 is
 pretty good too. It's built into the main database since version 8.3, not
 in your version. For 8.1 there is an extension with largely the same
 functionality, in case you're interested. I'm not sure how easy that would
 be to upgrade to the builtin version once you get to 8.3 or newer
 though...

I am going to look into that.


-
Michael A. Peters

http://www.shastaherps.org/

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Michael A. Peters

 Michael A. Peters wrote:
 I run CentOS 5.x and I do not like to upgrade vendor supplied packages.
 My
 version of pg_dump is from postgresql-8.1.21-1.el5_5.1 - I'm assuming
 the
 8.1.21 is the important part.


 That's a bad policy with PostgreSQL.  I guarantee you that the problems
 you will run into because you're on PostgreSQL 8.1 are far worse than
 any you might encounter because you've updated from RedHat's PostgreSQL
 to the RPM packages provided by the PostgreSQL packagers.  There are
 hundreds of known limitations in 8.1 you will absolutely suffer from as
 you expand your deployment that have been fixed in later versions.  Yes,
 you can run into a packaging problem after upgrading to the PostgreSQL
 provided 8.3 or 8.4 that doesn't exist with the 8.1 they ship.  But
 that's a *possible* issue, compared to the *guaranteed* limitations that
 are removed by using a later version of the database.

 Also, take a look at
 http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy
 8.1 will be a frozen release no longer receiving bug fixes real soon now.

OK. I already maintain my own php RPMs because RHEL php is too old (I need
the DOMDocument stuff) so maybe I need to add Postgresql to that.

PHP is the only thing I currently have that links against postgresql anyway.

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Greg Smith

Michael A. Peters wrote:

I already maintain my own php RPMs because RHEL php is too old (I need
the DOMDocument stuff) so maybe I need to add Postgresql to that.
  


Note that you don't even have to build them yourself; the set at 
https://public.commandprompt.com/projects/pgcore/wiki/ are a 
straightforward drop-in replacement for the ones that RedHat provides.  
Subscribe to that yum repo just for the postgresql* packages and you can 
easily run 8.3 or 8.4 instead of the system 8.1.  You might need to 
recompile your custom PHP against that afterwards, but you shouldn't 
have to build the database itself completely from source.  And you'll 
still get security updates and bug fix point upgrades from that yum 
repo, continuing after the ones for 8.1 slow down.


I've already started playing with the beta for RHEL6 just to avoid this 
whole stale package mess for a number of things.  Will be nice when that 
ships, and the cycle of enterprise releases from them starts over with 
up to date packages again.


--
Greg Smith  2ndQuadrant US  Baltimore, MD
PostgreSQL Training, Services and Support
g...@2ndquadrant.com   www.2ndQuadrant.us


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Tom Lane
Greg Smith g...@2ndquadrant.com writes:
 Michael A. Peters wrote:
 I run CentOS 5.x and I do not like to upgrade vendor supplied packages. My
 version of pg_dump is from postgresql-8.1.21-1.el5_5.1 - I'm assuming the
 8.1.21 is the important part.

 That's a bad policy with PostgreSQL.  I guarantee you that the problems 
 you will run into because you're on PostgreSQL 8.1 are far worse than 
 any you might encounter because you've updated from RedHat's PostgreSQL 
 to the RPM packages provided by the PostgreSQL packagers.

Please note also that Red Hat has been shipping PG 8.4 for RHEL5 for
awhile --- it's the postgresql84-* package set.  I would hope CentOS
has copied that by now.

regards, tom lane

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Greg Smith

Tom Lane wrote:

Please note also that Red Hat has been shipping PG 8.4 for RHEL5 for
awhile --- it's the postgresql84-* package set.  I would hope CentOS
has copied that by now.
  


They have, as of CentOS's 5.5 back in May, and I keep forgetting its 
there.  I'm not sure whether I like the trade-offs that come from using 
that packaging in every case yet though.  The dependency issues with 
httpd are particularly weird:  
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.5 (last item in 
Known Issues).  I personally would rather just replace the system 
database with the newer version directly as the PGDG yums do, but you're 
right that some might prefer to use the system one instead.


--
Greg Smith  2ndQuadrant US  Baltimore, MD
PostgreSQL Training, Services and Support
g...@2ndquadrant.com   www.2ndQuadrant.us


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Michael A. Peters

 Tom Lane wrote:
 Please note also that Red Hat has been shipping PG 8.4 for RHEL5 for
 awhile --- it's the postgresql84-* package set.  I would hope CentOS
 has copied that by now.


 They have, as of CentOS's 5.5 back in May, and I keep forgetting its
 there.  I'm not sure whether I like the trade-offs that come from using
 that packaging in every case yet though.  The dependency issues with
 httpd are particularly weird:
 http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.5 (last item in
 Known Issues).  I personally would rather just replace the system
 database with the newer version directly as the PGDG yums do, but you're
 right that some might prefer to use the system one instead.

I went with the upstream postgresql RPMs. They provided a compat package
for CentOS stuff that links against older client libs, so it works out
nicely.

The reason I went with CentOS for server when I first started my project
was because I wanted a system that had long term vendor maintenance and
kept things stable rather than bleeding edge, a system that required
minimal package maintenance on my part. The postgresql yum repo allows
that.

Since PostgreSQL has a 5 year commitment to support, even though it isn't
vendor packaging I can pretty much guarantee that I'll have upgraded the
server before that time limit expires, and even if they don't provide RPMs
for that long, I can maintain the src.rpm for 8.4 series myself if I need
to (which I hope I don't).

The library version was not the issue with my php connection problem,
though building against newer client libs was probably a good idea anyway.
Still looking at it (yes I checked and double checked pg_hba.conf), I'll
figure it out.


-
Michael A. Peters

http://www.shastaherps.org/

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] pg_dump, shemas, backup strategy

2010-07-24 Thread Michael A. Peters


 The library version was not the issue with my php connection problem

I needed to grant connect.
I guess that must be new? Anyway I knew it was likely something simple.


-
Michael A. Peters

http://www.shastaherps.org/

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[GENERAL] pg_dump, shemas, backup strategy

2010-07-23 Thread Michael A. Peters
I've been using MySQL for years. I switched (er, mostly) to PostgreSQL
recently because I need to use PostGIS. It is all working now for the most
part, and PostGIS is absolutely wonderful.

I run CentOS 5.x and I do not like to upgrade vendor supplied packages. My
version of pg_dump is from postgresql-8.1.21-1.el5_5.1 - I'm assuming the
8.1.21 is the important part.

In writing my backup cron job, I ran into a small problem. It seems that
my version of pg_dump does not accept the -T option for excluding tables.
There are a couple tables that never need to be included in the backup (IE
php session data). Since I prefer not to upgrade pgsql at this time, I was
wondering if this is where schemas might help? IE can I put those few
tables into a different schema and then tell pg_dump to only dump the
public schema? Schema is kind of a new concept to me.

For my code, I use the php pear::MDB2 wrapper (which made moving from
MySQL to PostgreSQL much easier, just had to fix some non standard SQL I
had). If I move stuff out of the public schema, am I going to have tell
MDB2 how to find which schema it is in? I guess that may be better suited
for php list, but hopefully someone knows.

Finally, the one part of my site that is NOT moved over to PostgreSQL is
the site content search engine, which is sphyder. I would like to move
that over as I do not see a need to run two databases if one will suffice.
Sphyder also does not use a database layer or prepared statements (and I
love prepared statements for security aspect), so to move it over it looks
like what I should do is first port it to use MDB2 with prepared
statements and then fix any sql that causes it to break in PostgreSQL.

When everything was MySQL - I ran sphyder in its own database so that a
bug in sphyder code could not be exploited to hack my main database.
However, I'm wondering if that is an area where schema would be better. IE
create a schema called sphyder and only give the sphyder user permission
to select from the sphyder schema. Is that what the concept of schemas is
for?

Thanks for helping out a n00b.


-
Michael A. Peters

http://www.shastaherps.org/

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general