본문 바로가기

innodb4

Mysql InnoDB – 테이블 당 테이블스페이스 사용하기 여러분은 각각의 InnoDB 테이블과 인덱스 파일을 각자의 파일에 저장할 수가 있다. 이러한 특성을 “다중 테이블스페이스 (multiple tablespaces)”라고 하는데, 그 이유는 실제로 각각의 테이블이 자신만의 테이블스페이스를 가지고 있기 때문이다. 다중 테이블스페이스를 사용하는 것은 특정 테이블을 물리적으로 구분된 여러 개의 디스크에 분산 하기를 원하거나 또는 남아 있는 InnoDB 테이블에 대한 인터럽트 없이 하나의 테이블 백업을 리스토어 하고자 하는 사용자에게 편리하다. 아래의 라인을 my.cnf의 [mysqld] 섹션에 추가하면 다중 테이블스페이스를 활성화 시킬 수가 있다. [mysqld] innodb_file_per_table 서버를 재 구동하면, InnoDB는 새롭게 생성된 각 테이블.. 2014. 7. 18.
XtraBackup을 이용한 MySQL 백업 및 복구 이 글은 XtraBackup을 간단하게 소개한 글이고 자세한 사용법은 MySQL 원격 증분 백업 – Percona XtraBackup 이라는 글에서 다루고 있다. mysql 백업시 보통은 mysqldump를 사용합니다. 하지만 데이터가 커질수록 mysqldump로 백업한 데이터는 복구에 걸리는 시간이 길어집니다. mysql 서버를 중단시키지 않고 InnoDB 엔진도 핫백업이 가능한 도구로 XtraBackup이라는 오픈소스 프로그램이 있습니다. 소개를 보면 mysql 상용 백업 프로그램인 InnoDB Hot Backup 보다 더 많은 기능을 제공합니다. XtraBackup은 기본적으로 InnoDB와 XtraDB의 백업을 지원하지만 같이 설치되는 innobackupex 스크립트를 통해서 MyISAM 방식도 .. 2014. 7. 17.
InnoDB 테이블 손상(깨어진)시 강제 복구 MyISAM과 달리 InnoDB 테이블들은 매우 안정적이며, 왠만해서는 데이터 파일이 깨어지는 경우는 거의 경험하지 못했다.하지만, 데이터 파일이 깨어진다면 어떻게 해야 할까 ?. DBMS 벤더를 불문하고 손상된(깨어진) 데이터 파일을 복구한다는 것은 쉽지 않은 문제이며 위험도 크다.이런 비 정상적인 현상은 어느 DBMS에서나 발생할 수 있는 현상이며, 이를 위해서 우리는 데이터베이스를 그렇게 열심히 백업하고 있었던 것이다.만약, 백업마저도 복구가 안 된다면, 결국 지금의 깨어진 데이터 파일이라도 어떻게든 복구를 해야 한다.하지만, InnoDB는 myisamchk와 같은 별도의 복구 도구를 제공하지 않는다.손상된 InnoDB 테이블의 복구는 우선 MySQL을 기동시켜서 데이터를 덤프(mysqldump, .. 2014. 7. 3.
mysql binary log를 이용한 복구 DB작업전 반드시 data를 백업 후 작업을 진행하자.# cp -arp /usr/local/mysql/data /usr/local/mysql/data_bak_100406 mysql data 폴더를 보면mysql-bin.000001mysql-bin.000002mysql-bin.000003mysql-bin.000004, ...... 등의 파일이 있다. mysql 을 설치하고 부터 실행하는 모든 명령어들(create, update, delete, alter 등) 이 기록에 남는데이러한 기록을 이용하여 현재까지의 DB를 재작성 할 수 있다. 문제발생 시간을 확인하여 그 전 시간까지만 복구를 하면 된다. 1. mysql 바이너리 로그 파일 확보 # mkdir /usr/local/src/mysql_bin_repai.. 2014. 5. 9.