Ed Tarento wrote:
> I'm a newbie, I hope this is the right group and admit I have little postgres experience. I'm working
> on a VM I can easily re-install so killing it doesn't matter. The dir is full of 508 files, the last
> few of which look like:
>
> -rw------- 1 postgres postgres 16777216 Aug 25 02:19 0000000100000001000000FA
> -rw------- 1 postgres postgres 16777216 Aug 25 02:39 0000000100000001000000FB
> drwx------ 2 postgres postgres 4096 Jun 13 13:24 archive_status
> root@operations:/var/lib/postgresql/9.1/main/pg_xlog#
>
> I have root access to the machine but I don't have any postgres access, other than sudo of course.
> I've tried stopping my app, ensuring nothing postgres appears in ps and tried deleting the files but
> when I restarted my app, it didn't work. I've checked (Google) as many posts as possible but can't
> find exactly what I need, i.e. the method of removing the offending files cleanly.
>
> Here's as much as I can tell you
>
> Debian 64 bit running on ESXi
>
> postgres 9.1
>
> I have some *nix experience, can use vi and sudo and the like
In addition to Thomas' questions (most of all, check "archive_mode"
and "archive_command" and see if there are any error messages in the
database server log) let me add the following:
You have probably damaged your database by randomly deleting files
it needs to run (the log will tell you details).
The first thing you should do is to make a backup of *all* the files
that you didn't delete yet.
Most likely you will have to use "pg_resetxlog" to get the cluster into
a state where it can start. Then *immediately* take a full logical
backup with pg_dumpall and import that into a new database cluster.
Keep your fingers crossed that there is not too much inconsistency
for this to work. It might take some fiddling with pg_resetxlog's
options to make it work.
Do *not* continue working with the cluster after pg_resetxlog has been run.
Read the documentation.
Yours,
Laurenz Albe