сравнивая данные из резервных копий mysql - PullRequest
3 голосов
/ 20 мая 2009

У меня есть несколько резервных копий в моей базе данных, и я пытаюсь выяснить, есть ли способ сравнить данные в резервных копиях, чтобы увидеть, как эти данные менялись с течением времени. У меня нет отметки времени в полях, которые я хочу сравнить, но у меня есть уникальный идентификатор в строке. Резервные копии - это файлы .sql, созданные с помощью mysqldump.

Есть ли процесс для этого?

Ответы [ 5 ]

4 голосов
/ 20 мая 2009

Существует множество инструментов сравнения для MySQL, в том числе инструмент под названием MySQLDiff (http://www.mysqldiff.org/).. Для этого также имеется интерфейс командной строки:

http://devzone.intellitree.com/projects/intellitree-cli-extension-to-mysqldiff/

См. Этот предыдущий пост StackOverFlow для инструмента визуального сравнения, подобного этому (плюс некоторые другие решения):

https://stackoverflow.com/questions/218499/mysql-diff-tool

2 голосов
/ 20 мая 2009

Вы можете использовать такой инструмент, как WinMerge , или любой другой инструмент слияния, чтобы увидеть фактическую разность резервных копий. Успех этого будет зависеть от размера ваших файлов. Я бы не рекомендовал делать это для действительно больших резервных копий.

2 голосов
/ 20 мая 2009

Теоретически вы можете импортировать ваши резервные копии как вторую базу данных, а затем написать PHP-скрипт, который подключается к вашему SQL-серверу и перебирает записи по уникальному идентификатору, сравнивая при этом.

Вы также можете просто использовать diff в командной строке, но результирующий набор данных может оказаться не таким выполнимым.

1 голос
/ 20 мая 2009

Если вы делаете резервные копии с помощью mysqldump, то ваши файлы резервных копий будут стандартными текстовыми файлами. Затем вы можете использовать любую приличную утилиту для сравнения текстовых файлов (например, diff в системе Unix), чтобы увидеть различия.

Одна приятная вещь об этом - схема таблицы выводится вместе с данными.

Еще одним преимуществом является то, что резервная копия не зависит от версии и компьютера - вы можете восстановить любую работающую копию MySQL.

Недостатком является то, что часть данных дампа записывается в виде строк максимальной длины, поэтому некоторые текстовые редакторы будут задыхаться от нее.

Приветствия

-R

0 голосов
/ 16 июня 2015

Существует один хороший инструмент для работы: pydumpy https://code.google.com/p/pydumpy/ (зеркало: https://github.com/miebach/pydumpy)

Позволяет создавать дампы, которые легко сравнивать с diff

Если вы хотите сравнить уже существующие дампы, вы можете сначала создать временную базу данных mysql из каждого из них и начать с нее.

...