Click here to load reader
Upload
mailru-group
View
1.115.702
Download
4
Embed Size (px)
Citation preview
АБС в крупном Банке. Тестирование PostgreSQL. Опыт применения Ora2PG.
Кондрашов Андрей Начальник отдела архитектуры АБС «М-Банк»
АБС «М-Банк»
• Собственная разработка ДИТ Банка Москвы, охватывающая практически все бизнес-процессы Банка. (Oracle + Delphi 7)
• Единое фронтальное решение, позволяющее сотрудникам работать в общей интегрированной среде.
• Комплексное обслуживание физ. и юр. лиц. в единой базе клиентов, кредитная дорога, зарплатные проекты,
кассовое обслуживание, работа с Гос. органами, электронные каналы обслуживания, платежные системы, торговые площадки, смс-провайдеры, валютный контроль, собственный CRM и многое многое другое…
СУБД
• Oracle – всё хорошо, но вдруг санкции?
• Tibero – тоже коммерческий продукт, а вдруг санкции? )
• PostgreSQL – бесплатный, быстрый, амбициозно-развивающийся проект с открытым исходным кодом.
• MSSql
• MySql
Требования к АБС
• Эксплуатация – 24/7
• Высоконагруженная система (~2000 IOPS, 22 TB данных)
• Удобство администрирования и сопровождения
• Наличие специалистов на рынке труда
• Работа на имеющимся оборудовании Например:
IBM Power 780
64 физических процессора
640 GB RAM
Количество основных объектов только в двух основных схемах
• Таблицы – ~3700
• Пакеты – 4770
• Много кода с переменными уровня пакета
• Автономные транзакции
• Использование Oracle Advanced Queues
• Линки на другие базы
• Пользовательские типы данных
• Работа с XML в Oracle
Основные цели
• Повышение независимости на уровне СУБД
• Глубокий рефакторинг.
• Смена компонент доступа к базам данных DOA -> FireDac
• Миграция на последнюю версию Delphi (xe8)
• Изоляция пользовательских форм от компонент уровня доступа к базе (ClientDataSet)
Выбор Ora2PG (13 версия)
• Произвели настройку Ora2PG под Windows. Установили Perl.
• Быстро • Удобно • Наглядно Было перенесено около 30 ядерных таблиц и пакетов: Аутентификация пользователей, документы и архив документов, договора, таблицы проводок и остатков, счетов, таблицы с клиентской информацией, конфигурационная таблица, таблица форм и типов. Большинство форм пользовательского интерфейса хранятся в базе!
Возникшие проблемы
• Оценка общего времени миграции всей схемы – не удалось получить
• Проблема с глобальными переменными уровня пакета • Автономные транзакции • Системные view (v$instance, v$session…) Поиск аналогов. • Большое количество получающихся схем + проблемы выдачи
грантов друг другу. • Партиции в привычном понимании. • Пакетные переменные -> временная таблица уровня сессии
• Из общего: • По-началу непривычный синтаксис ) • Нет средства разработки уровня PL\SQL Developer\TOAD.
Первое тестирование производительности PostgreSQL
• Вставка 1М записей. Какая-то машинка. • • Commit по 1000 записей • "2014-08-11 21:16:56.862075";"2014-08-11 21:24:33.726229" • ~9 минут • • по 50000 записей • "2014-08-11 21:25:56.863602";"2014-08-11 21:33:00.270117" • ~7 минут • • по 250000 записей • "2014-08-11 21:34:56.25054";"2014-08-11 21:40:28.074285" • ~5.5 минут
Результат: • Миграция проекта с Delphi 7 на Delphi XE2-XE8
• Полная замена компонент доступа к данным на FireDac
• Данный релиз сейчас в тестировании и будет выложен в пром в течение месяца под Oracle с полной функциональностью.
• Предпринимаются усилия по переводу запросов к виду ANSI SQL. (либо директивы препроцессора, если невозможно обойти)
• Будем продолжать тестировать и развивать функциональность версии под PostgreSQL.
Что ждём от PostgreSQL в ближайшее время
Автономные транзакции.
Мощное партиционирование.
Мощное средство разработки. На уровне PLSQL Developer, TOAD
Поддержку пакетов