본문 바로가기
MySql

MySQL 스킵 잠금 테이블과 mysqldump

by 베이스 공부 2020. 9. 29.
반응형

매일 약 50 개의 개별 데이터베이스에서 mysql 덤프를 실행하고 패키지화 한 다음 오프 사이트에 저장합니다. 이러한 데이터베이스 중 일부는 다소 크고 myisam 테이블을 포함합니다 (변경할 수 없으므로 무의미하다는 것을 암시합니다) .. 덤프를 수행 할 때 skip-lock-tables 옵션을 사용하는 방법을 읽었지만 단점이 무엇인지 읽지 않았습니다. 있다. 내가 보는 것은 기본적으로 "데이터를 덤핑하는 동안 테이블에 삽입하면 악영향을 미칠 수 있습니다."라는 다른 반복입니다.

이러한 부작용은 무엇입니까? 복원시 이러한 쿼리를 놓칠 뿐입니 까? 아니면 덤프 파일이 손상되어 쓸모가 없다는 의미입니까? 제 시간에 스냅 샷을 찾고 있기 때문에 덤프가 시작된 후 게시 된 새로운 데이터를 잃어 버리더라도 솔직히 걱정할 필요가 없습니다.

덤프를 발행하기 전에 저장된 모든 데이터를 포함하기 위해 이러한 데이터베이스 덤프를 사용할 수 있습니까?

 

해결 방법

 

-skip-lock-tables 매개 변수는 모든 테이블에서 READ 잠금을 획득하는 덤프를 얻기 전에 LOCK TABLES 명령을 실행하지 않도록 mysqldump 유틸리티에 지시합니다. 백업 절차의 경우 일관성을 향상 시키려면 데이터베이스의 모든 테이블을 잠 가야합니다. skip-lock-tables를 사용하더라도 테이블이 덤프되는 동안 테이블에서 모든 레코드를 가져 오는 데 필요한 SELECT로 인해 잠기므로 INSERT 또는 UPDATE를 수신하지 않습니다. 이렇게 생겼어요

SELECT SQL_NO_CACHE * FROM my_large_table

SHOW PROCESSLIST 명령으로 프로세스 목록에서 볼 수 있습니다. If you are using the MyISAM engine which is non-transactional, locking the tables will not guarantee referential integrity and data consistency in any case, I personally use the --skip-lock-tables parameter almost always. In InnoDB use the --single-transaction parameter for the expected effect. 도움이 되었기를 바랍니다.

 

참조 페이지 https://stackoverflow.com/questions/7415698

 

 

반응형

댓글