MySQL 데이터 분실 원인 및 해결

2667 단어 MySQL데이터 분실
머리말
최근 에는 사용자 의 피드백 을 받 아 데이터 가 없어 지고 데이터 가 잃 어 버 린 문제 가 있 습 니 다.현상 적 으로 볼 때 이런 문 제 는 데이터 베이스 차원 에서 긴급 정도 가 가장 높 은 유형 이다.객관 적 인 조건 을 떠 나 이런 문제 에 대한 회복 수단 은 백업 복구+재생 Binlog 만 있 고 시간 이 오래 걸 리 며 업무 에 미 치 는 영향 도 크다.
그러나 안정 을 위주 로 하 는 소프트웨어 로 서 데 이 터 를 잃 어 버 릴 확률 이 매우 낮 기 때문에 이런 피드백 문 제 는 정말'데 이 터 를 잃 어 버 렸 다'는 것 이 아 닙 니까?
문제 설명
어느 날 정오 에 사용자 의 피드백 을 받 고 업무 계 정 으로 데이터 베 이 스 를 로그 인 한 후 업무 창고 가 보이 지 않 았 다.
원인 분석
이 문 제 를 받 았 을 때 분 위 기 는 매우 긴장 되 었 다.사용자 에 게 연락 하여 데이터베이스 에 로그 인 할 수 있 는 권한 을 부여 하면 서 사용자 와 소통 하면 서 최근 에 어떤 변경 이 있 었 는 지 살 펴 보 았 다.
데이터베이스 에 로그 인 한 후에 업무 라 이브 러 리 가 존재 하 는 것 을 발 견 했 습 니 다.사용자 의 피드백 과 결합 하여"업무 라 이브 러 리 가 없어 졌 습 니 다".초보 적 으로 업무 계 정 에 권한 이 없다 고 판 단 했 습 니 다.show grants 로 확인 한 결과 업무 계 정의 권한 은 USAGE 만 있 고 다음 과 같은 효과 가 있 습 니 다.

mysql> show grants;
+----------------------------------+
| Grants for test@%                |
+----------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
가장 낮은 권한 만 있 기 때문에 이 계 정 은 분명히'업무 데이터 가 보이 지 않 는 다'는 것 이기 때문에 다시 권한 을 부여 한 후에 문 제 는 해결 되 었 다.사후 조사 결과 최초의 권한 수여 작업 은 다른 동명 계 정 에서 발생 한 것 으로 다음 과 유사 하 다.

mysql> show grants;
+-------------------------------------------------------------+
| Grants for [email protected].%                                |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON prd_name.* TO 'test'@'10.120.117.%' |
+-------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
넓히다
'데 이 터 를 잃 어 버 렸 다'는 현상 을 보면 전체 라 이브 러 리 등급 의 데 이 터 를 잃 어 버 렸 지만 데이터 베이스 자체 가 정상 이 라면 이 사례 와 같은 문제 일 가능성 이 크다.권한 오류 이다.이런 문 제 를 일 으 킬 가능성 은 보통 두 가지 입 니 다.1.로그 인 한 계 정 은 같은 이름 의 다른 계 정 에 일치 합 니 다.2.권한 수여 에 문제 가 발생 하여 업무 계 정 에 권한 이 없습니다.물론 최 악의 경 우 는 drop database 의 작업 일 것 입 니 다.binlog 를 분석 해 야 이 작업 을 수행 하 는 시간 을 찾 을 수 있 습 니 다.
다른 하 나 는'일부 데 이 터 를 잃 어 버 렸 다'는 것 이다.예 를 들 어 특정한 표 가 없어 졌 거나 표 의 일부 데이터 가 없어 졌 다 는 등 이다.엄 밀 히 말 하면 이런 문 제 는 권한 오류 로 인 한 것 일 수도 있 습 니 다.MySQL 의 권한 통 제 는 표 와 열 단 계 를 할 수 있 기 때문에 현실 적 으로 사용 되 지 않 습 니 다.update 나 delete 같은 경우 where 조건 이 없습니다.이 럴 때 역사 백업 을 통 해 binlog 를 이용 하여 복원 할 수 밖 에 없 는데 이 조작 은 텐 센트 클 라 우 드 에'압축 파일'기능 으로 봉 인 됩 니 다.
총괄 하 다
이런 문제 에 부 딪 혔 을 때 먼저 문제 의 현상 을 관찰 할 수 있다.몇 초 만 에 권한 을 다시 부여 하면 이런'데이터 분실'의 매우 긴급 하고 심각 한 문 제 를 해결 할 수 있다.
이상 은 MySQL 이 데 이 터 를 잃 어 버 린 원인 과 해결 에 대한 상세 한 내용 입 니 다.MySQL 이 데 이 터 를 잃 어 버 린 것 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기