MySQL 덤프 2개의 차이점은 어떻게 볼 수 있습니까?
MySQL 덤프 파일이 2개 있습니다.두 테이블의 테이블 데이터 차이를 찾고 싶습니다.
"-- skip-opt"로 mysqldump를 실행하여 2개의 덤프 파일을 가져옵니다.
mysqldump --skip-opt -u $MY_USER -p$MY_PASS mydb1 > /tmp/dump1.sql
mysqldump --skip-opt -u $MY_USER -p$MY_PASS mydb2 > /tmp/dump2.sql
다음 diff 옵션을 사용하여 비교합니다.
diff -y --suppress-common-lines /tmp/dump1 /tmp/dump2
DIFF 도구를 사용합니다. 그래픽 도구는 다음과 같습니다(둘 다 무료입니다).
저는 단지 줄 바꿈을 추가할 수 밖에 없었습니다.),(
각각의 레코드가 개별 라인이 되도록 합니다.그런 다음 결과를 다음과 같은 도구에 입력할 수 있습니다.diff
. 이 명령은 다음과 같은 역할을 합니다.
FORMAT_="s/),(/),\n(/g"
diff <(sed $FORMAT_ old-dump.sql) <(sed $FORMAT_ new-dump.sql)
웹 사이트가 더 이상 작동하지 않으므로 이 도구는 더 이상 사용할 수 없습니다.
제 sqldiff라는 도구를 한 번 더 주시면 될 것 같아요, 제가 직접 해본 적은 없지만 제 목록에 한동안 올라와 있었어요.
이것은 나에게 매우 유용했고, 그래서 나의 2센트를 더했습니다.
git diff --word-diff=color dump1.sql dump2.sql | less -R
제가 쓰는 건 이렇습니다.그건 효과가 있다.
#!/bin/bash
# Do a mysqldump of the a db, once a day or so and diff to the previous day. I want to catch when data has changed
# Use the --extended-insert=false so that each row of data is on a single line, that way the diff catches individual record changes
mv /tmp/dbdump0.sql /tmp/dbdump1.sql 2>/dev/null
mysqldump -h dbhostname.com -P 3306 -u username -p password --complete-insert --extended-insert=false dbname > /tmp/dbdump0.sql
# Ignore everything except data lines
grep "^INSERT" /tmp/dbdump0.sql > /tmp/dbdump0inserts
grep "^INSERT" /tmp/dbdump1.sql > /tmp/dbdump1inserts
diff /tmp/dbdump1.sql /tmp/dbdump0.sql > /tmp/dbdumpdiffs
r=$?
if [[ 0 != "$r" ]] ; then
# notifier code remove
fi
2개의 mysql diff를 비교하기 위해서는 순서가 정의된 방식이고 관련이 없는 데이터가 생략되도록 특정 방식으로 수행해야 합니다.
이것은 어느 순간에 완전히 가능하지 않았습니다.mysqldump
, 그동안 이것이 바뀌었는지는 잘 모르겠습니다.
그 일을 위한 좋은 도구는pydumpy
https://code.google.com/p/pydumpy/ (미러: https://github.com/miebach/pydumpy)
질문에서와 같이 오래된 덤프와 비교하려면 먼저 덤프에서 임시 데이터베이스를 만든 다음 여기에서 시작할 수 있습니다.
언급URL : https://stackoverflow.com/questions/3840908/how-do-i-see-the-differences-between-2-mysql-dumps
'sourcetip' 카테고리의 다른 글
localStorage의 크기를 찾는 방법 (0) | 2023.10.20 |
---|---|
MySQL은 마스터에서는 더 빠르게 선택되지만 슬레이브에서는 더 느리게 선택됩니다. (0) | 2023.10.20 |
배열과 포인터를 포함하는 이 코드가 왜 그렇게 작동합니까? (0) | 2023.10.20 |
지정된 스키마로 빈 DataFrame을 만드는 방법은? (0) | 2023.10.20 |
Powershell: 폴더 및 하위 폴더의 모든 파일을 단일 폴더로 이동 (0) | 2023.10.20 |