Обсуждение: Re: [GENERAL] Can Postgres 8.x start if some disks containing tablespaces are not mounted?

Поиск
Список
Период
Сортировка

Re: [GENERAL] Can Postgres 8.x start if some disks containing tablespaces are not mounted?

От
"Gurjeet Singh"
Дата:
On Mon, Mar 31, 2008 at 11:40 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
"Morris Goldstein" <morris.x.goldstein@gmail.com> writes:
> Suppose I have a database with $PGDATA on /dev/sda, and a tablespace
> directory on /dev/sdb. Will Postgres start successfully if /dev/sda is
> mounted and /dev/sdb is not? If not, why not?

It will start, but you will have unpleasant failures when you try to use
tables in the secondary tablespace ... note that if autovacuum is on,
that is likely to happen even without any explicit action on your part.


One of the gripes I have with postgres is that, that it won't even complain if one of the segments of a relation goes missing unless the missing segment is referred to by an index!!!

The most troublesome part is that count(*) (i.e seq scan) scans only upto the last sequential segment found. Here's a case in example:

Healthy:
--------
count(*) : 2187001
size: 2441 MB
segments: 17651, .1, .2

Corrupt: 17651.1 missing
-------------------------
count(*) : 917503
size: 1024 MB
segments: 17651, .2
select max(a) from temp: 2187001 (uses index to locate the last tuple in segment .2)

select a from temp where a = (select max(a) from temp)/2
ERROR:  could not read block 156214 of relation 1663/11511/17651: read only 0 of 8192 bytes

retore missing segment:
-----------------------
select a from temp where a = (select max(a) from temp)/2
  : 1093500


    I think that the counter-argument would be that this has never been reported in the field, but I wish our metadata records this somehow, and reports an ERROR if it finds that a segment is missing.

Best regards,
--
gurjeet[.singh]@EnterpriseDB.com
singh.gurjeet@{ gmail | hotmail | indiatimes | yahoo }.com

EnterpriseDB http://www.enterprisedb.com

Mail sent from my BlackLaptop device