Сравнение таблиц территориальных БД Oracle с республиканской

Локальное веб-приложение: находит записи, которых нет в республиканской БД или у которых пусто поле BlobArch, и готовит их к анализу — список ключей, таблицы ANL и дамп Data Pump.

Исходный код Как запустить

Возможности

Сравнение по ключам

Проверка пары ID+KNR порциями по 500. Содержимое BlobArch не читается — проверяется только длина.

Таблицы ANL и дамп

Найденные записи копируются в таблицы <ТАБЛИЦА>ANL и экспортируются через DBMS_DATAPUMP.

Множество БД

Параметры подключений из Excel или CSV, параллельная обработка до 32 потоков, сбой одной базы не останавливает остальные.

Лог в реальном времени

Отдельный лог для каждого района, итоги по таблице районов, кнопка «Остановить», файл сводки.

Безопасность

Сервер слушает только 127.0.0.1. Пароли не сохраняются и не пишутся в лог, имена объектов Oracle проверяются.

Без клиента Oracle

Используется драйвер oracledb (thin-режим). Windows и Linux, Python 3.

Как это работает

Этап 1 — сравнение

Для каждой записи территориальной БД проверяется наличие в республиканской и заполненность BlobArch. Проблемные ключи пишутся в файл результата.

Этап 2 — выгрузка

Ключи из файла читаются, создаётся таблица ANL, записи копируются, таблицы экспортируются в один дамп района.

Результат этапа 1

# REGION|TABLE|ID|KNR|REASON
Алматы|ТАБЛИЦА|101|5|не найдено в республиканской БД
Алматы|ТАБЛИЦА|102|7|поле BlobArch пустое в республиканской БД

Файлы

ФайлНазначение
compare_result_<район>.txtКлючи проблемных записей (этап 1)
compare_log_<район>.logЛог этапа 1
compare_log_anl_<район>.logЛог этапа 2
compare_anl_<район>.dmpДамп Data Pump на сервере БД (имя района латиницей)
compare_summary[_anl].txtСводка по всем базам

Запуск

git clone https://github.com/shgulnur2026/oracle-db-compare.git
cd oracle-db-compare
pip install -r requirements.txt
python app.py

Откройте http://127.0.0.1:8765, введите параметры подключений, список таблиц и папку результатов.

Приложению нужен доступ к вашим базам Oracle, поэтому оно работает только на вашем компьютере. Для этапа 2 нужны права CREATE TABLE и READ/WRITE на каталог DIRECTORY; дамп создаётся на сервере БД.