William Garrison wrote:
[snip]
> A database is not just tables - it is tables and
> transaction logs. Why on earth would PostgreSQL put the tables
> separately from the transaction logs?
Because you told it to. If you want everything on Z:\postgresql you just
initdb that location and point PG at that location (or just install
there). Tablespaces let you store sets of tables/indexes on specific
disks (well, filesystem mount-points).
> How is that even possible? Are the
> transaction ID numbers shared across databases too?
Yes. The PG term for this is a database "cluster" - an installation that
shares transaction logs, ids, users.
> I need to educate our IT group about this. They setup the SAN volumes
> based on my incorrect assumptions about how PostgreSQL worked. It
> sounds like, on Windows, we need to just flat-out reinstall postgres and
> install it into the Z: drive so that the entire data directory is on the
> SAN volume. Installing it to C: and having only parts of the database
> on the SAN is not good.
Yes. A dump/restore is probably the simplest way of doing this.
> P.S. I guess on Unix, you guys all just setup the data directory to be
> a hard-link to some other location?
Mount a filesystem at the desired point in the directory tree, or just
use soft-links. Which is how tablespaces are implemented, as it happens.
--
Richard Huxton
Archonet Ltd