우리의 애플리케이션에서는 Hibernate와 PostgreSQL을 사용하여 데이터를 저장합니다. 데이터베이스 테이블 중 하나에 예를 들어 "TIPPSPIEL"과 같은 판별 기 열이 있습니다. 고정 문자열이며 사용자가 조작 할 수 없습니다.
갑자기이 거대한 테이블에 "TIPPSPIEL"대신 "TIPPQPIEL"이있는 항목이 하나있었습니다. 우리는 이것이 어떻게 일어날 수 있는지 전혀 모른다.
하드 디스크가 1 비트를 전환한다는 의미가있을 수 있으므로 문자 "S"가 더 이상 "1010001"로 인코딩되지 않지만 다음과 같이 1 비트가 전환 된 하드 디스크에서 갑자기 "Q"가됩니다 : 1010011?
나는 하드 디스크의 비트 물리학 전문가가 아니지만 OS 또는 디스크에 체크섬 및 기타 일이 발생하지 않도록하기 위해 체크섬 및 기타 항목이 있다고 생각합니다.
파일이 "S"대신 "Q"문자를 표시하도록 하나의 비트 만 전환 할 수 있습니까?
업데이트 : 우리는 추가 분석을했습니다. 슬레이브 데이터베이스는 마스터 (PostgreSQL 기능)에서 WAL 레코드를 가져옵니다. 무엇이든 : 우리의 슬레이브 서버는 동기화되어 있어야합니다. 그러나이 특정 행과 관련하여 슬레이브는 동기화되지 않았습니다. 이 특정 항목에 대한 사용자의 상호 작용없이 며칠 전에 발생한 것을 알 수 있습니다. 따라서 약간 뒤집어 야합니다. 무서운!