DB를 건드릴 땐 백업을


2007년 2월 28일 by 김 승엽

가장 기본적이라는 것을 알면서 내가 가장 귀찮아하고 깜빡하는 것이 바로 백업이다. 그나마 불안한 서버에서 워드프레스를 운영하다 보니 요즘엔 생각날 때 마다 백업을 하곤 하는데 오늘 새벽에는 정말 엄청난 실수를 저지르고 말았다.
처음에는 올블로그에 수집되지 않은 예전 글들을 수집할 생각으로 RSS 피드의 포스트 개수를 수정하는 것에서 부터 시작했다. 올블로그의 팁에서 최근에 수집된 글들을 draft 상태로 바꾸어 가며 수집을 하는 방법이 소개되어 있길래 전체 포스트를 draft 상태로 바꾸고 순차적으로 publish 상태로 바꾸어 수집할 생각으로 phpmyadmin을 이용해 필드에 입력된 값을 일괄 변경했다. 그런데 뭐가 잘못 됐는지 수집이 제대로 되지 않아 원상태로 돌려놓다가 wp_posts 테이블의 guid 필드에 입력되어 있는 URL 값을 보게 됐다. 퍼머링크를 수정한 뒤에 작성된 포스트들과 달리 이전의 포스트들의 guid에 예전 주소가 입력되어 있는 것을 보고 가만히 있었어야 하는데 이것을 수정할 생각으로 sql 문을 검색했다.

UPDATE wp_posts SET guid = REPLACE(컬럼, 원본문자열,변경할문자열);

위의 sql 문을 실행한 참담한 결과는 guid 필드에 URL 대신 "guid" 라는 값이 들어가 버리고 말았다. 일단 백업도 하지 않았으며 제대로 살펴보지도 않은 것을 후회해봤자 이미 때는 늦었고 하나 하나 수정할 생각을 하니 또 앞이 깜깜해서 다른 방법을 찾아봤는데 그러다 찾은 sql 문이

UPDATE wp_posts SET guid = concat('문자열',myid);

이였다. 문자열 부분에 "http://unfusion.kunsan.ac.kr/word/archive/" 를 넣고 myid 에 ID를 입력한 뒤 얻은 결과는 90%의 성공! 처음 의도했던 대로 URL이 변경되긴 했지만 Page 나 첨부된 이미지의 경우에는 guid 값이 다르기 때문에 이 부분만 하나 하나 수정해 주었다.
새벽녘에 DB를 붙잡고 바이너리 로그를 이용해 백업을 해야 하나 고민하면서 느낀 점은 잘 모르면 건드리지 말거나 꼭 백업을 하자는 새삼스러운 교훈… :)


Show Related Posts List from Local