매일 약 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
'MySql' 카테고리의 다른 글
MySQL phpMyAdmin의 MySQL 트리거 쿼리 (0) | 2020.09.29 |
---|---|
MySQL phpMyAdmin의 MySQL 트리거 쿼리 (0) | 2020.09.29 |
MySQL / 쓰기 파일 오류 (Errcode 28) (0) | 2020.09.29 |
MySQL PHP에서 mysql_num_rows인지 묻는 적절한 방법 (0) | 2020.09.28 |
MySQL How to use aliases with MySQL LEFT JOIN (0) | 2020.09.28 |
댓글