문제

GTID를 통해 복제를 위해 MySQL Binlogs가 있습니다.

이와 같이 실행 된 업데이트 / 삽입문을 표시하려고합니다.

mysqlbinlog --base64-output=DECODE-ROWS mysql-bin.000024
.

그러나 내가 볼 수있는 것은 이와 같은 것입니다. 업데이트 흔적이 없거나 STMT 삽입 :

SET TIMESTAMP=1431681617/*!*/;
BEGIN
/*!*/;
# at 746987321
# at 746987392
# at 746987484
#150515 11:20:17 server id 1  end_log_pos 746987515 CRC32 0xeb874754    Xid = 997501767
COMMIT/*!*/;
# at 746987515
#150515 11:20:22 server id 1  end_log_pos 746987563 CRC32 0xc5ece64a    GTID [commit=yes]
SET @@SESSION.GTID_NEXT= 'a4ade293-c63a-11e4-94cf-005056944a56:2059057'/*!*/;
# at 746987563
#150515 11:20:22 server id 1  end_log_pos 746987650 CRC32 0x92296355    Query   thread_id=71622 exec_time=0 error_code=0
.

GTID 복제의 형식 / 구성과 그것을 찾을 위치는 확실하지 않습니다 ...

도움이 되었습니까?

해결책

옵션 --verbose를 추가 해야하는 것 같습니다.

mysqlbinlog  --base64-output=AUTO --verbose mysql-bin.000005 
.

결과가 표시됩니다.

### UPDATE `customer`
### WHERE
###   @1=388442
###   @2=382023
###   @3='2015:05:30'
###   @4='2015:06:02'
###   @5=3
###   @6=1
###   @7=0
.

@x는 주문의 테이블 열

다른 팁

GTID가 귀하의 문제라고 생각하지 않습니다.

아마 행 기반 바이너리 로깅을 사용하고 있습니다

이를 확인하려면 다음 중 하나를 실행하십시오.

SELECT @@global.binlog_format;
SHOW GLOBAL VARIABLES LIKE 'binlog_format';
SELECT variable_value FROM information_schema.global_variables
WHERE variable_name='binlog_format';
.

ROW 또는 MIXED가 표시됩니다. SQL을 볼 수있는 유일한 방법은 binlog_format STATEMENT에서 my.cnf ~ 글로벌 트랜잭션 식별자가있는 복제 는 첫 번째 단락에서 다음과 같습니다.

GTID를 사용하여 명령문 기반 또는 행 기반 복제를 사용할 수 있습니다 (17.1.2 절, "복제 형식"참조). 그러나 최상의 결과를 얻으려면 행 기반 형식을 사용하는 것이 좋습니다.

절단 그럼에도 불구하고 주어진 이진 로그가있는 실제 SQL을 볼 수 없습니다.

이 도구를 사용해보십시오 BinLog2SQL 갱신 / 삽입 명령문으로 BIN 로그를 구문 분석합니다.
그것의 사용법 설명은 중국어에 있지만, 예제 명령에서 지점을 얻을 수 있다고 생각합니다.

나는 사용하는 것을 선호한다

mysqlbinlog -v --base64-output=DECODE-ROWS /files/
.

:

  • "--BASE64 출력 옵션이 없으면 효과는 -BASE64-OUTPUT= AUTO"
  • 와 동일합니다.
  • "--base64-outpl= 디코드 - 행과 --verbose의 조합은 행 이벤트 만 SQL 문으로 만 볼 수있는 편리한 방법을 제공합니다."(Binlog 문을 덜어줍니다)

"- -verbose 또는 -v를 두 번 지정하여 데이터 유형을 표시하고 각 열의 일부 메타 데이터를 표시합니다."

인용문 소스 : MAN mysqlbinlog

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top