pt-fingerprintp - 클라우드에서의 온라인

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 pt-fingerprintp 명령입니다.

프로그램:

이름


pt-fingerprint - 쿼리를 지문으로 변환합니다.

개요


사용법: pt-fingerprint [OPTIONS] [FILES]

pt-fingerprint는 쿼리를 지문으로 변환합니다. --query 옵션을 사용하면
옵션의 값을 지문으로 변환합니다. 옵션이 없으면 명령줄 인수를 다음과 같이 처리합니다.
FILE을 읽고 FILE에서 세미콜론으로 구분된 쿼리를 읽고 변환합니다. FILE이 -인 경우,
표준 입력을 읽습니다.

단일 쿼리를 변환합니다.

pt-fingerprint --query "id = 500인 사용자로부터 a, b, c 선택"

쿼리로 가득 찬 파일을 변환합니다.

pt-지문 /path/to/file.txt

위험


Percona Toolkit은 성숙하고 실제 세계에서 입증되었으며 잘 테스트되었지만 모든 데이터베이스
도구는 시스템과 데이터베이스 서버에 위험을 초래할 수 있습니다. 이 도구를 사용하기 전에
부디:

· 도구 설명서 읽기

· 도구의 알려진 "버그" 검토

· 비프로덕션 서버에서 도구 테스트

· 프로덕션 서버 백업 및 백업 확인

기술


쿼리 지문은 쿼리의 추상화된 형태로, 이를 통해 그룹화할 수 있습니다.
유사한 쿼리를 함께 사용합니다. 쿼리를 추상화하면 리터럴 값이 제거되고 정규화됩니다.
공백 등. 예를 들어 다음 두 가지 쿼리를 고려해보세요.

WHERE id='12823' 사용자의 이름, 비밀번호를 선택하세요.
사용자의 이름, 비밀번호 선택
여기서 ID=5;

두 쿼리 모두 지문을 채취합니다.

id=?인 사용자의 이름, 비밀번호를 선택하세요.

쿼리의 지문이 알려지면 쿼리에 대해 다음과 같이 말할 수 있습니다.
모든 유사한 쿼리를 나타냅니다.

쿼리 핑거프린팅은 필요한 것으로 입증된 수많은 특수 사례를 수용합니다.
현실 세계에서. 예를 들어, 5개의 리터럴이 있는 IN 목록은 실제로 XNUMX개의 리터럴과 동일합니다.
리터럴이 4개이므로 리터럴 목록이 하나로 축소됩니다. 당신이 원한다면
이러한 모든 사례가 처리되는 방법과 이유에 대해 자세히 알아보려면 테스트를 검토하세요.
Subversion 저장소의 경우. 지문이 찍히지 않은 물건을 발견한 경우
재현 가능한 테스트 사례와 함께 버그 보고서를 제출해 주세요. 다음은 목록입니다.
완전하지 않을 수도 있는 지문 채취 중 변환:

· 서로 다른 경우에도 mysqldump의 모든 SELECT 쿼리를 함께 그룹화합니다.
테이블. 모든 pt-table-checksum의 체크섬 쿼리도 마찬가지입니다.

· 다중 값 INSERT 문을 단일 문으로 줄입니다. 값() 명부.

· 댓글을 제거합니다.

· USE 문에서 데이터베이스를 추상화하여 모든 USE 문이 함께 그룹화되도록 합니다.

· 인용된 문자열과 같은 모든 리터럴을 교체합니다. 효율성을 위해 다음을 대체하는 코드는
리터럴 숫자는 다소 비선택적이며 일부 항목을 숫자로 대체할 수 있습니다.
실제로 그렇지 않을 때. XNUMX진수 리터럴도 대체됩니다. NULL은 다음과 같이 처리됩니다.
리터럴. 식별자에 포함된 숫자도 교체되므로 이름이 지정된 테이블
마찬가지로 동일한 값(예: users_2009 및 users_2010)으로 지문이 생성됩니다.
동일하게 지문을 채취합니다).

· 모든 공백을 단일 공백으로 축소합니다.

· 전체 쿼리를 소문자로 표시합니다.

· 내부의 모든 리터럴을 교체합니다. 안에() 그리고 값() 단일 자리 표시자가 있는 목록,
카디널리티에 관계없이.

· 여러 개의 동일한 UNION 쿼리를 하나로 축소합니다.

옵션


이 도구는 추가 명령줄 인수를 허용합니다. "시놉시스" 및 사용법을 참조하십시오.
자세한 내용은 정보를 참조하십시오.

--구성
유형: 배열

이 쉼표로 구분된 구성 파일 목록을 읽으십시오. 지정된 경우 첫 번째 항목이어야 합니다.
명령줄의 옵션입니다.

--도움
도움말을 표시하고 종료합니다.

--임베디드 숫자 일치
단어에 포함된 숫자를 일치시키고 단일 값으로 바꿉니다. 이 옵션을 사용하면
다음과 같이 숫자가 포함된 단어가 표시되지 않도록 숫자 일치에 더욱 주의를 기울이는 도구입니다.
"catch22"는 일치하고 단일 "?"로 대체됩니다. 자리 표시자. 그렇지 않으면
기본 숫자 일치 패턴은 "catch22"를 "catch?"로 대체합니다.

이는 데이터베이스나 테이블 이름에 숫자가 포함된 경우 유용합니다.

--match-md5-체크섬
MD5 체크섬을 일치시키고 단일 값으로 바꿉니다. 이 옵션을 사용하면 도구가
MD5 체크섬이 다음과 같도록 숫자 일치에 더 주의하십시오.
"fbc5e685a5d3d45aa1d0347fdb7c4d35"는 일치하고 단일 "?"로 대체됩니다.
자리 표시자. 그렇지 않으면 기본 숫자 일치 패턴이 대체됩니다.
"fbc5e685a5d3d45aa1d0347fdb7c4d35" as "fbc?".

--질문
유형: 문자열

지문으로 변환할 쿼리입니다.

--번역
버전을 표시하고 종료합니다.

환경


환경 변수 "PTDEBUG"는 STDERR에 대한 자세한 디버깅 출력을 활성화합니다. 사용하려면
디버깅하고 모든 출력을 파일로 캡처하려면 다음과 같이 도구를 실행하십시오.

PTDEBUG=1 pt-지문 ... > 파일 2>&1

주의: 디버깅 출력은 방대하고 수 메가바이트의 출력을 생성할 수 있습니다.

시스템 요구 사항


Perl, DBI, DBD::mysql 및 모든 시스템에 설치해야 하는 몇 가지 핵심 패키지가 필요합니다.
합리적으로 새로운 버전의 Perl.

onworks.net 서비스를 사용하여 온라인으로 pt-fingerprintp를 사용하세요.



최신 Linux 및 Windows 온라인 프로그램