å ±æã·ã¹ãã ã«ã¿ãã°ã®ã¤ã³ããã¯ã¹ç ´ææã®ãªã«ããª
ã¤ãã«ãã¨ãªã£ã¦ãPostgreSQLã®å ±æã·ã¹ãã ã«ã¿ãã°ã®ã¤ã³ããã¯ã¹ãå£ãã¦ãªã«ããªãããã¨ã«ãã¦ã¿ãã
ããã¥ã¢ã«ã«ä¸å¿ãããæ¹ã¯æ¸ãã¦ããã®ã§ããå®éã«ãã£ã人ã®ããã°çãªãã®ã§ããã£ã¦è¦ã¾ãã
1ï¼å ±æã·ã¹ãã ã«ã¿ãã°ï¼ä»åã¯ãpg_databaseï¼ã®ã¤ã³ããã¯ã¹ã®filenodeã確èª
testdb=# select relname , relfilenode from pg_class where relname like 'pg_database_%'; relname | relfilenode ---------------------------+------------- pg_database_datname_index | 2671 pg_database_oid_index | 2672
対象ã®ã¤ã³ããã¯ã¹ã®filenodeã¯2671ã¨2672ã§ãããã¨ã夿ã
å
±æã·ã¹ãã ã«ã¿ãã°ã¯$PGDATA/global/以ä¸ã«é
ç½®ããã¦ããã
2ï¼å ±æã·ã¹ãã ã«ã¿ãã°ã®ã¤ã³ããã¯ã¹ãå£ãã¦ãDBåèµ·å
[postgres@dbsvr ]$ echo " " > /usr/local/pgsql/data/global/2671 [postgres@dbsvr ]$ echo " " > /usr/local/pgsql/data/global/2672 [postgres@dbsvr ]$ pg_ctl restart waiting for server to shut down.... done server stopped server starting
å£ããã¤ã³ããã¯ã¹ããã£ãã·ã¥ããã¦ããã®ã§ãã¨ããããDBåèµ·åããã
3ï¼ã¤ã³ããã¯ã¹ãå£ãããã¨ã確èª
[postgres@dbsvr ]$ psql -l psql: FATAL: could not read block 0 of relation 1664/0/2672: read only 2 of 8192 bytes [postgres@dbsvr ]$ psql testdb psql: FATAL: could not read block 0 of relation 1664/0/2672: read only 2 of 8192 bytes
ãã¼ã¿ãã¼ã¹ã®ä¸è¦§è¡¨ç¤ºã使ãããã¼ã¿ãã¼ã¹ã¸ã®æ¥ç¶ãåºæ¥ãªããã¨ã確èªã
4ï¼ã·ã¹ãã ã¤ã³ããã¯ã¹æªä½¿ç¨ã¢ã¼ãã§ãªã«ããªã宿½
[postgres@dbsvr ]$ export PGOPTIONS="-P" [postgres@dbsvr ]$ psql testdb Welcome to psql 8.3.5, the PostgreSQL interactive terminal. testdb=# reindex system testdb;
ä¸è¦ããã¨ããã§ããªã«ããªã§ããããªæ°ããã¾ããããã¥ã¢ã«ã®è¨è¼ã©ããREINDEXã¯ããã«ãã¦ã¼ã¶ã¢ã¼ãã§ã¯å ±æã«ã¿ãã°ãå¦çããªãããã§è¯éºã«å£ããã¤ã³ããã¯ã¹ã¯ã¹ã«ã¼ããã¾ããã
5ï¼ã·ã³ã°ã«ã¦ã¼ã¶ã¢ã¼ãã§åèµ·åããã¤ã³ããã¯ã¹ãåæ§ç¯ãã
[postgres@dbsvr ]$ postgres --single testdb 2009-02-12 11:33:39 JST FATAL: could not read block 0 of relation 1664/0/2672: read only 2 of 8192 bytes [postgres@dbsvr ]$ postgres --single testdb -P PostgreSQL stand-alone backend 8.3.5 backend> reindex system testdb; [postgres@dbsvr ]$ pg_ctl start server starting
ã·ã³ã°ã«ã¦ã¼ã¶ã¢ã¼ãã§ãã"-P"ãªãã·ã§ã³ãä»ãã¦ãªãã¨èµ·åã§ããªãã®ã§æ³¨æã
ç¡äºèµ·åã§ããããã·ã¹ãã ã¤ã³ããã¯ã¹ãåæ§ç¯ããé常ã¢ã¼ãã§å度起åããã
ããã§ãç¡äºãªã«ããªå®äºã
å®éã®ãªã«ããªã®æé ã¨ãã¦ã¯ãï¼ã¯ä¸è¦ã§ãã
ãã ããå
±æã·ã¹ãã ã«ã¿ãã°ã§ã¯ãªããæ®éã®ã·ã¹ãã ã«ã¿ãã°(pg_classç)ã®å ´åã¯ã4ã®æé ã§ãªã«ããªåºæ¥ã¾ãã
å
±æã·ã¹ãã ã«ã¿ãã°ï¼pg_authidãpg_auth_membersãpg_databaseãpg_pltemplateãpg_shdependãpg_shdescriptionãpg_tablespaceï¼ã¨ã
æ®éã®ã·ã¹ãã ã«ã¿ãã°ã§ãªã«ããªã®æ¹æ³ãè¥å¹²ç°ãªããã¨ãçè§£ãã¦ããå¿
è¦ãããã¾ããã
ã§ããç§ã¯æªã ã«æ®éã®ã¤ã³ããã¯ã¹ããå£ããçµé¨ããªãã®ã§ãä»å¾ãã®é害ã«ééããå¯è½æ§ã¯å°ãªãããããã¾ããã
ç¥ã£ã¦ãã¨æ°åã§å¾©æ§ã§ãããã®ããç¥ããªãã¨æ°æéã¨ãæãããããªã®ã§ç¥ã£ã¦ãããã¨ã«æã¯ãªãã¨ãã¨ã