Nelson Gonzaga escreveu:
> Criei varias tablespaces e estou querendo separar tabelas, indices e lo
> em vários HD do servidor, porem não estou conseguindo mudar a tablespace
> do pg_largeobject com o comando abaixo:
>  
> alter table pg_largeobject set tablespace tbs_lo;
>  
Para que você quer fazer isso? pg_largeobject é um catálogo do sistema que
armazena a estrutura de um LO. Você não precisa separar o catálogo em outras
tablespaces (alguns deles nem podem ser movidos); nunca vi ninguém reclamar de
problemas de performance com relação ao catálogo mas talvez o pg_largeobject
seja um futuro candidato para retirarmos essa restrição.

> dá o seguinte:
> ERROR:  permission denied: "pg_largeobject" is a system catalog
>  
> Tem algum jeito de driblar esta permissão?
>  
Tem. [Rápida olhada no código...] Aparentemente não há problemas mas eu sugiro
fazer uma série de testes para não ser pego de surpresa. Inclusive isso já foi
sugerido [1] mas até agora ninguém fez.

$ postgres --single -O -D /data

PostgreSQL stand-alone backend 8.4devel
backend> create tablespace tbs_lo location '/tmp/tbs_lo';
backend> alter table pg_largeobject set tablespace tbs_lo;
backend> ^D

psql (8.4devel)
Type "help" for help.

euler=# \dS pg_largeobject
Tabela "pg_catalog.pg_largeobject"
 Coluna |  Tipo   | Modificadores
--------+---------+---------------
 loid   | oid     | not null
 pageno | integer | not null
 data   | bytea   |
Índices:
    "pg_largeobject_loid_pn_index" UNIQUE, btree (loid, pageno)
Tablespace: "tbs_lo"


[1] http://archives.postgresql.org/pgsql-hackers/2004-06/msg00841.php


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a