Juan escribió: > Ahora lo confirmo, da error. > > db=# reindex table pg_catalog.pg_statistic ; > ERROR: cannot execute REINDEX during recovery > > Podria bajarlo (para el standby) y reindexar pero no se si volviera a > replicar no tiene que peder > transacciones y el master seguira transaccionando. > Tampoco estoy seguro que esas cosas se repliquen, porque reindexando > en el master > deberia replicar., si es aue eso se replica. > No quiero tomar acciones que puedan dejar inservible el standby. > > Si alguien sabe que se puede reindexar , aunque sea parando el master. lo > haria
El standby es una copia idéntica, bit a bit, del primario. Cualquier acción que tomes en el primario se replicará. Si algo está corrupto en el standby, tienes dos opciones: también está corrupto en el primario, o bien el standby tuvo un problema durante la replicación que dejó las cosas no idénticas. Para salir del paso, seguramente puedes hacer un REINDEX de ese catálogo en el primario. Pero quizás el problema no sea el índice sino el catálogo mismo; si es sólo ese catálogo, estás de suerte, porque es un catálogo desechable: basta con darle TRUNCATE a ese catálogo y luego ejecutar ANALYZE. Ahora, si se corrompió un catálogo, no hay ninguna razon para pensar que no se haya corrompido otro. 9.1 ya no está en soporte. Quizás haya un bug que haya causado la corrupción. Actualiza a una versión soportada. Si tus datos son críticos, contrata soporte. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
