정확한 원인은 알수 없지만 일단 디비 자체에 문제가 있는 것은 확실합니다.
디비가 깨어졌을수도 있고, catalog 파일이 깨어졌을수도 있습니다.
복구 방법은 vacuumdb 를 실행해 주시고, 일정 시간 간격으로 백업을 받아 보는 수 밖에 없습니다. 그리고 backup 전에는 반드시 다른 트랜젝션이 열리지 않도록 하는 것이 좋습니다.
> [12#root:backup]# /etc/cron.daily/backup
> Start BackUp DataBase....
> NOTICE: Message from PostgreSQL backend:
> The Postmaster has informed me that some other backend died abnormally and
> possibly corrupted shared memory.
> I have rolled back the current transaction and am going to terminate your d
> atabase system connection and exit.
> Please reconnect to the database system and repeat your query.
> dumpClasses(): command failed. Explanation from backend: 'pqReadData() // backe
> nd closed the channel unexpectedly.
> This probably means the backend terminated abnormally
> before or while processing the request.
> '.
>
> backup이라는 script는 제가 만들어 cron으로 해둔 것입니다. 내용은 다음과 같습니다.
>
> pg_dump /d DB /t ad > $WORK/gametek_ad.backup
> pg_dump /d DB /t ad_hist > $WORK/gametek_ad_hist.backup
> pg_dump /d DB /t addr > $WORK/gametek_addr.backup
> pg_dump /d DB /t advertiser > $WORK/gametek_advertiser.backup
> pg_dump /d DB /t best_worst > $WORK/gametek_bestworst.backup
> pg_dump /d DB /t collect_apply_member > $WORK/gametek_collect_apply_member.
> backup
> pg_dump /d DB /t collect_member > $WORK/gametek_collect_member.backu
> .....
> 이것을 실행하다가 중간에 에러가 난 것 같습니다.
>
|