Olá pessoal,

Possuo quatro servidores:

1 - Master1
> 2 - Slave01 hot-standby (Mesmo hardware que o Master1)
> 3 - Slave02 hot-standby (Mesmo hardware que o Master1)
> 4 - Slave03 hot-standby (VM - Hardware inferior)


Em minha DB, possuo um schema chamado 'GORFS'.
Neste SCHEMA ficam todos os arquivos dos usuários, como fotos, notas,
documentos, etc.
Estaremos migrando este schema para um NFS server, com isto esperamos
salvar espaco na DB, já que segundo o SQL a baixo o schema possuí 80GB:

SELECT schema_name,
>        pg_size_pretty(sum(table_size)::bigint),
>        (sum(table_size) / pg_database_size(current_database())) * 100
> FROM (
>   SELECT pg_catalog.pg_namespace.nspname as schema_name,
>          pg_relation_size(pg_catalog.pg_class.oid) as table_size
>   FROM   pg_catalog.pg_class
>      JOIN pg_catalog.pg_namespace ON relnamespace =
> pg_catalog.pg_namespace.oid
> ) t
> GROUP BY schema_name
> ORDER BY schema_name


Gostaria de saber a opinião de vocês, por favor.


Estou com dúvidas em relacão à como fazer isto. Em meu ponto de vista,
tenho duas opcões:

1 - Não estou certo se este procedimento irá de fato liberar espaco no
MASTER - Somente um DROP SCHEMA é suficiente? Ou seria interessante
realizar um TRUNCATE antes e depois DROP?


   1. DROP SCHEMA schemaname; (Como faco para ver se há dependências?)
   2. VACUUM na DB (Posso ativar os outros slaves para serem read-only,
   assim diminuo o tráfego para o MASTER para que o VACUUM seja feito mais
   suave
   3. Realizar um DUMP na DB, já com o schema deletado e com o vacuum
   completo - Deletar a DB nos slaves - Importar o dump nos slaves
(*basicamente
   criar um servidor slave novo, mas com os que já existe*)

2 - Esta seria a opcão mais difícil - Mas se a primeira não puder ser
realizada... esta deverá então ser.


   1. Promover um slave para o novo master (master2)
   2. Migrar todos os outros slaves para replicar a partir do novo master2
   3. Realizar um DUMP a partir do master2 para o master1, excluindo o
   schema 'GORFS'
   4. Importar o dump para o master1
   5. VACUUM FULL (só pra garantir) no master1
   6. Promover o master1 o master primário (Todas as operacões que foram
   feitas no master2, não sei como fazer as alteracões serem incluídas no novo
   master)
   7. Importar o dump dentro de todos os outros slaves - E mandar eles
   sincronizarem a partir do novo master1.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a