본문 바로가기
㏈ª By β┖υΕJini/MY-SQL

10년만에 MYSQL 을 다시.....

by ㏈ª ☞ β┖υΕJini.κR 2008. 12. 11.

1998년 리눅스를 처음 설치해 보았고..

2000년 리눅스 정보 센터에서 리눅스 OS 와 MYSQL 공부 한후 거의 쓰지 않았는데...

간혹 PHP 로 된 웹 서비스된 사이트 봐주느라 본거 말고는 없다. 그런 나에게 MYSQL을

회사의 MYSQL DBA 의 퇴사,  그리고후임자와의 공백 기간으로 인해 졸지에  10년 만에 MYSQL을
담당 하게 되었다.

2008년 3월쯤 리눅스OS 설치와 보안 세팅 출장으로 리눅스에 대해서 잠깐의 공부는 했었고 별로 크게

걱정은 하지 않았고 MS-SQL 이든 MY-SQL 이든 같은 SQL 이라 별로 신경은 쓰지 않았고 데이터 뽑

아 주는 것과 관리는 별 문제가 없는듯 보였다.

하지만 어제 롤백 해야 하는 상황 발생...  풀백업 데이터와 BINLOG (트랜잭션 로그) 를 복원을 어떻게

해야 하는지 그 파일이 어디에 있는지 때문에 삽질좀 하게 되었다.

우선 문제점 발생 시간 추척을 어떻게 해야 하나... 우선 vi 에디터로 누가 어느시간에 어떤 쿼리를 돌렸는

지 부터 찾기 시작 하였다. 쿼리를 찾아 내고 그 전 시간으로 롤백....

작업은 이렇게 시작 되었다.


# cp gdb_full_backup.gz  /user/계정/복구폴더/날짜/
-- 풀백업 파일 복구 폴더로 이동

# gunzip gdb_full_backup.gz
-- 풀백업 압축 풀기

# cp gdbbin200810*.*  /user/계정/복구폴더/날짜/ 
-- BINLOG파일 복구 폴더로 이동

# cd /user/계정/복구폴더/날짜/
-- 작업 디렉토리 이동

# mysqlbinlog BINLOG.001 > gdbbin_pre.sql
-- BINLOG파일 소스 파일로 변환
# mysqlbinlog BINLOG.002 >> gdbbin_pre.sql
-- BINLOG파일 소스 파일로 누적 변환

#grep "BLUETABLE" gdbbin_pre.sql  > gdbbin_result.sql  로 변환
-- BINLOG파일 소스 파일로 변환 하여 BLUETABLE 이 들어가 있는 행만 추출

# mysql -u 계정아이디 -p DB이름 < gdb_full_backup.sql
-- 풀백업 파일  복원

# mysql -u 계정아이디 -p DB이름 < gdbbin_result.sql
-- BINLOG 트렌잭션 로그 복원


그리고 현재 DB 데이터와 복구한 DB 데이터를 비교하여 복구 끝....