Как проверить большие базы данных postgresql, работающие в разных версиях, с одинаковыми данными без дампирования
Как мне проверить, что данные в 8.3 БД postgresql совпадают с данными в 9.0 БД
Когда я делал дамп sql для примера таблицы, было много различий, которые показывали, но это было связано с 9.0 усечением 0 в конце и началом полей даты, также порядок дампа не был фиксирован, хотя это можно отсортировать с помощью сортировать (не каламбур). он не допускает проверки, поскольку потерял бы таблицу, частью которой он был, поскольку отсортированный дамп sql был бы бессмысленным набором команд sql с дополнительными настройками дампа.
количество (*) также не является адекватным.
Я хотел бы быть на 100% уверенным, что данные в одном совпадают с данными в другом, несмотря на различия версий и то, как по крайней мере даты хранятся в 9.0.
Я должен добавить, что у меня есть несколько сотен таблиц и много сотен ГБ данных. поэтому мне нужен автоматизированный процесс, такой как diff DUMPa.sql DUMP2.sql, будет идеей SHA данных (а не формат), но по хорошо известным причинам невозможно разложить двоичные дампы PostgreSQL. Я знаю, что MySQL имеет функцию контрольной суммы, но я использую Postgresql.
1 ответ
Сначала плохие новости. В действительности нет способа предложить все проблемы, которые вы хотите решить, не загружая все данные в программу-посредник и не сравнивая их напрямую. Это займет время, и это приведет к снижению нагрузки вашей системы, поэтому я рекомендую установить какую-либо репликацию и сравнить реплики.
Одна вещь, которую вы могли бы сделать, это использовать что-то вроде Slony или Bucardo для репликации, а затем инициировать перемещение данных во вторичные дочерние разделы и реплицировать их на консолидированный сервер для сравнения. Затем вы можете сравнить в PostgreSQL. Это уменьшит нагрузку и будет означать, что вашими отчетными данными будет относительно легко управлять по сравнению с другими подходами. Но все данные нужно будет загружать и сравнивать построчно.