7.3 백업 및 복구 전략의 예
이 섹션에서는 여러 종류의 충돌 후 데이터를 복구 할 수 있도록 백업을 수행하는 방법에 대해 설명합니다.
운영 체제의 충돌
정전
파일 시스템 충돌
하드웨어 문제 (하드 드라이브, 마더 보드 등)
명령 예는 mysqldump와 mysql 클라이언트 프로그램에 대한 --user
및 --password
등의 옵션이 포함되어 있지 않습니다. 클라이언트 프로그램이 MySQL 서버에 연결할 수 있도록 필요에 따라 이러한 옵션을 포함합니다.
데이터는 트랜잭션과 자동 크래시 복구를 지원하는 InnoDB
스토리지 엔진에 저장되어 있다고합니다. 또한, MySQL 서버는 충돌시에 부하가 걸려 있다고합니다. 그렇지 않으면 복구가 필요하지 않을 수도 있습니다.
운영 시스템 충돌이나 정전의 경우 재부팅 후 MySQL의 디스크 데이터를 사용할 수있는 것으로 생각할 수 있습니다. InnoDB
데이터 파일은 충돌로 인해 일관된 데이터가 저장되지 않을 수 있지만, InnoDB
는 로그를 읽고 데이터 파일에 플러시되지 않은 커밋 보류중인 트랜잭션과 커밋되지 않은 트랜잭션의 목록 를 찾습니다. InnoDB
는 아직 커밋되지 않은 트랜잭션을 자동으로 롤백 커밋 된 것은 데이터 파일에 플래시합니다. 이 복구 프로세스에 대한 정보는 MySQL 에러 로그를 통해 사용자에게 전달됩니다. 다음은 로그 발췌 예입니다.
InnoDB : Database was not shut down normally. InnoDB : Starting recovery from log files ... InnoDB : Starting log scan based on checkpoint at InnoDB : log sequence number 0 13674004 InnoDB : Doing recovery : scanned up to log sequence number 0 13739520 InnoDB : Doing recovery : scanned up to log sequence number 0 13805056 InnoDB : Doing recovery : scanned up to log sequence number 0 13870592 InnoDB : Doing recovery : scanned up to log sequence number 0 13936128 ... InnoDB : Doing recovery : scanned up to log sequence number 0 20555264 InnoDB : Doing recovery : scanned up to log sequence number 0 20620800 InnoDB : Doing recovery : scanned up to log sequence number 0 20664692 InnoDB : 1 uncommitted transaction (s) which must be rolled back InnoDB : Starting rollback of uncommitted transactions InnoDB : Rolling back trx no 16745 InnoDB : Rolling back of trx no 16745 completed InnoDB : Rollback of uncommitted transactions completed InnoDB : Starting an apply batch of log records to the database ... InnoDB : Apply batch completed InnoDB : Started mysqld : ready for connections
파일 시스템이 손상되거나 하드웨어 문제의 경우 재부팅 후 MySQL 디스크 데이터를 사용할 수없는 것으로 생각할 수 있습니다. 이것은 디스크 데이터의 일부 블록을 읽을 수 없게 되었기 때문에, MySQL가 정상적인 부팅에 실패하는 것을 의미합니다. 이 경우 디스크를 다시 포맷하거나 새 디스크를 설치하거나 근본적인 문제를 해결해야합니다. 또한 백업 MySQL 데이터를 복구해야합니다. 이것은 백업이 이미 이루어지고 있다는 것을 의미합니다. 그것이 확실 해당하는지하려면 백업 정책을 설계하고 구현합니다.