Обновить
13.47

Oracle *

Система управления базами данных

Сначала показывать
Порог рейтинга
Уровень сложности

Сравнить таблицу и с её репликой

Время на прочтение9 мин
Охват и читатели5.5K

Занимаясь goldengate-репликацией столкнулся с необходимостью выполнить сравнение таблицы, в исходной бд и её таблицы-реплики, в бд-приёмнике.
Для случая когда таблица и таблица-реплика  обе имеют, одинаково устроенные ключи (как оно и д.б., по идее), есть замечательный пакет dbms_comparison.

Однако, что делать, если ключей нет никаких, нет и unique-индекса, с not-null. А такое — бывает.

Тут нужно велосипедить какое то решение.

Или договариваться с заказчиками репликации чтобы — добавляли ключи, на таблицы и им релевантные таблицы-реплики.

Добавление ключей — не всегда желательно, с т.з. заказчика, например потому что прикладной код может нехорошо отреагировать, на появление в таблице/таблице-реплике нового столбца.

Это можно обойти, сделав новый, ключевой столбец не видимым, gg-такие ключевые столбцы: поддерживает, это интересный способ, но о нём — в другой раз.

В этой статье — про велосипед.

Читать далее

Serverless хостинг в Oracle Cloud для рубиста

Время на прочтение5 мин
Охват и читатели1.7K

Serverless хостинг в Oracle Cloud для рубиста

Почему бы и не поддаться современным веяниям, и не реализовать REST api на лямбдах?

Проверить так ли уж необходимы Rails и попробовать минимизировать количество зависимостей.

Попробовать декомпозировать веб приложение в терминах облачных сервисов.

Oracle free tier,  хм, насколько это бесплатно в реальности?

Читать далее

Препятствуют ли cloud-сервисы доминированию Oracle в сфере баз данных?

Время на прочтение7 мин
Охват и читатели2.5K

В 2016 году компания Shutterfly сделала смелый шаг, перенеся метаданные из более чем 10 миллиардов наборов фотографий из частного центра обработки данных в общедоступное облако. Shutterfly рассматривала несколько потенциальных поставщиков облачного сервиса, и в конечном итоге, остановила выбор на AWS. Многие годы Shutterfly использовала инструменты Oracle для хранения и управления фотобиблиотеками более чем 20 миллионов активных клиентов. Но с течением времени, компания расширялась и развивалась, и стала переключать свои системы на cloud-сервисы Amazon. Представители компании заявили, что им необходимо было перевести свою БД на «систему более простую в использовании». Изучив разные варианты на рынке, в Shutterfly выявили, что системы Oracle «перестали соответствовать требованиям компании, чтобы иметь необходимый уровень гибкости».

Миграция данных — это процесс переноса данных из одной системы хранения в другую. Shutterfly — не единичный случай, когда крупная компания во время роста поставщиков облачных сервисов мигрируют за пределы Oracle. В итоге таких тенденций в корпоративной технологической отрасли баз данных предприятия отдают предпочтение более новым поставщикам: MongoDB, Databricks и Snowflake, и другим.
Читать дальше →

Баг с псионическими сигнатурами в Java

Время на прочтение6 мин
Охват и читатели5.6K
В классическом научно-фантастическом сериале BBC Доктор Кто часто используется следующий сюжетный приём: Доктору удаётся избежать неприятностей, показав удостоверение личности, которое на самом деле совершенно пустое. Разумеется, удостоверение сделано из специальной «психобумаги», заставляющей смотрящего на неё человека видеть то, что удобно для Доктора: пропуск, ордер или что-то ещё.


Оказывается, некоторые новые релизы Java тоже были подвержены подобному трюку в реализации широко используемых сигнатур ECDSA. Если запустить одну из уязвимых версий, то нападающий легко сможет подделать некоторые типы сертификатов SSL и handshake (что позволяет вмешиваться в обмен данными и модифицировать их), подписанные JWT, декларации SAML или id-токены OIDC и даже сообщения аутентификации WebAuthn. И для всего этого достаточно цифрового аналога чистого листа бумаги.
Читать дальше →

30 тыс. строк кода или как мы переходили с Oracle на PostgreSQL с помощью утилиты Ora2Pg 23.0

Время на прочтение9 мин
Охват и читатели17K

Привет, меня зовут Андрей, я работаю ведущим разработчиком в компании СИГМА и отвечаю за решения по автоматизации расчетов технических условий. Сегодня хочу поделиться своим опытом переноса в среду PostgreSQL данных из СУБД Oracle и процедур, разработанных на PL/SQL.

Перед моей командой была поставлена срочная и нетривиальная задача перенести разрозненный функционал, ранее разработанный на базе СУБД Oracle, в единую систему управления распределительными электрическим сетями (по-простому СИГМА СУС), которая работает на основе PostgreSQL и сочетает в себе подсистемы DMS, SCADA, GIS, NIS, OMS и другие.

Читать далее

Как мы мигрировали критичную БД с Oracle в CockroachDB

Время на прочтение6 мин
Охват и читатели11K

… простите, мигрировали куда? Туда!


CockroachDB — PostgreSQL-совместимая (по SQL-синтаксису DML) распределенная СУБД с открытым кодом (ну, почти). Ее название символизирует, что она, как таракан, выживает в любых экстремальных ситуациях. Лично мне крайне импонирует такая СУБД с привычным SQL-интерфейсом, настройка которой занимает 5 минут, которая хранит данные — как Kafka — на нескольких узлах в нескольких ЦОДах сразу, имеет настраиваемый replication factor на уровне конкретных таблиц, легко переживает потерю как одного узла, так и целого ЦОДа, использует для этого механизм распределенного консенсуса Raft и при этом еще и имеет строгую консистентность и уровень изоляции serializable. Разработчики CockroachDB — выходцы из компании Google, которые решили коммерциализировать архитектуру распределенной СУБД Spanner.



Недостатки тоже есть, не переживайте, но про них лучше в другой раз :)

Почему именно CockroachDB?


Среди распределенных SQL-СУБД есть альтернативы в виде Yugabyte и TiDB, и с прошлого месяца YDB. Вопрос «Почему?» связан в первую очередь с тем, зачем вообще нужна БД. Как мне кажется, БД нужна для того, чтобы надежно хранить данные и доставать их через стандартный язык SQL, а удобство ее использования — приятный, но вторичный фактор. Тут надо заметить, что я почти 9 лет проработал в техподдержке Oracle, и видел достаточно случаев порчи БД, как из-за дисковых сбоев и ошибок администраторов, так и из-за багов в приложении и даже в коде самой СУБД.

Ключевыми критериями выбора были:
Читать дальше →

Oracle. Ещё один способ партиционирования больших и нагруженных таблиц

Время на прочтение7 мин
Охват и читатели30K

Всем привет! Меня зовут Ольга и я разработчик в Ингосстрахе. В этой статье-туториале хочу поделиться способом партиционирования оооочень большой таблицы в Oracle 12c. Итак, погнали.

В жизни любой давно функционирующей системы наступает момент, когда уже невозможно хранить все исторические данные без разбору и пора думать, что это надо как-то поделить. Старое отправить на архивный или отчетный сервер, а оперативный слой существенно проредить. И самый очевидный и распространенный путь – партиционировать таблицу, а старые секции перенести на другое хранилище.

Читать далее

Жил на свете добрый Jooq – как подружиться с хранимками в Oracle

Время на прочтение19 мин
Охват и читатели11K

Приветствую!

Меня зовут Артём, я back-end разработчик на продукте WFM (Workforce Management). В компании наш продукт помогает в развитии процессов розничной сети, одна из основных наших задач — это построение рабочего графика для персонала розничного магазина.

В данной статье я хотел бы познакомить вас (в очередной раз, так как на хабре уже есть несколько статей, посвященных этой библиотеке) с Jooq и показать, как можно легко работать с хранимыми процедурами Oracle. Будет немного вводной части, а затем посмотрим примеры.

Почти в каждом продукте, скорее всего, есть база данных. В нашем случае это РСУБД Oracle, большая часть логики содержится внутри в виде хранимых процедур. Удобство взаимодействия с базой всегда было достаточно важной и щепетильной задачей для любого бэкендера, особенно, если речь идет о взаимодействии с хранимками, которые выдают и принимают "сложные" plsql-типы. Конвертация plsql-типа в java-тип — задачка не самая приятная, мягко говоря, и удобных инструментов в этом деле не так уж много.

Давайте кратко вспомним некоторые популярные подходы к взаимодействию с РСУБД, какими достоинствами и недостатками они обладают.

Читать далее

Как мы в команде Oracle-разработки организовали deploy

Время на прочтение8 мин
Охват и читатели3.6K

Сегодня мы поделимся решением, которое используем для установки релизов на нескольких системах наших заказчиков. Однако синхронизацию данных на стендах в рамках данного материала рассматривать не будем, поскольку это большой отдельный вопрос, хотя и частично связанный с deploy.

Читать далее

Миграция с Oracle на PostgreSQL: зачем, как и что для этого нужно

Время на прочтение8 мин
Охват и читатели18K

Привет, Хабр! Меня зовут Иван Чувашов, я сертифицированный администратор PostgreSQL с 13-летним опытом работы с БД. Хочу поговорить на весьма актуальную в последнее время тему — о миграции на PostgreSQL с Oracle. Расскажу, зачем вообще тратить время и деньги на миграцию, какие для этого понадобятся компетенции, какие есть варианты миграции, как этот процесс можно организовать и избежать типичных ошибок.

Читать дальше

Oracle Engineered Forum: подробности об использовании нового поколения Exadata в России

Время на прочтение1 мин
Охват и читатели894

Привет, Хабр! Буквально через пару дней пройдет очередной Oracle Engineered Forum. Мероприятия (виртуальное) будет полезно для тех, кто интересуется новым форматом работы программно-аппаратных комплексов Exadata — Cloud@Customer. Желающие узнать, как именно работают облачные сервисы с размещением оборудования в вашем ЦОД, могут уже сегодня зарегистрироваться на мероприятия. Подробнее о программе и акцентах ивента — под катом.

Читать далее

K8s кластер в Oracle Cloud для Always Free аккаунтов

Время на прочтение6 мин
Охват и читатели11K

На хабре уже не раз писали про бесплатные вычислительные ресурсы (ARM, 4 CPU, 24ГБ), которые можно развернуть в Oracle Cloud. После регистрации вы получаете $300 и 30 дней триального аккаунта, когда для развёртывания доступны все виды ресурсов. Когда эти 30 дней заканчиваются, аккаунт получает статус Always Free, и количество доступных ресурсов значительно урезается. Чтобы снова получить доступ к ним ко всем, можно сделать upgrade своего аккаунта до Pay-as-You-Go. Это односторонняя операция, переход обратно на Always Free невозможен, и после такого перехода нужно аккуратно следить и и контролировать траты. Тем не менее, Pay-as-You-Go аккаунты также могут бесплатно использовать Always Free ресурсы.

Oracle Cloud предоставляет возможность managed развёртывания K8s кластера (в документации он называется OKE – Oracle Container Engine for Kubernetes), однако он недоступен для Always Free аккаунтов.

Чтобы обойти это ограничение, используем подход полностью ручного выделения облачных ресурсов (сети, виртуальных машин) и установки необходимых компонентов. На выходе получим кластер с четырьмя узлами (один control-plane и три worker'а) с установленным K8s'ом, балансировщиком нагрузки, публичным IP адресом и (бонусом) бесплатным доменом. Воспроизводимые Terraform скрипты (и readme по их использованию) опубликованы на github'е.

Читать далее

Создание и настройка Oracle standby без использования Oracle Data Guard

Время на прочтение6 мин
Охват и читатели14K

Данный пост будет интересен тем, перед кем стоит задача настройки Oracle standby, но по каким-либо причинам расширение Data Guard отсутсвует (обычно для его работы требуется Enterprise Edition, но во многих случаях можно встретить Standard Edition). Рассказываю, как настроить PRIMARY-STANDBY на Oracle Standard Edition на Centos 7 с помошью NFS.

Читать далее

Ближайшие события

Как работает создание и управление маркетинговыми кампаниями Спортмастера и причём здесь Oracle

Время на прочтение11 мин
Охват и читатели6.6K

Приветствую! Меня зовут Михаил, я разработчик Oracle в ClubPro (Клубная программа, программа лояльности Спортмастера). В команде разработки моё основное направление связано с развитием Campaign Management. 

Campaign Management (далее для краткости Campaign) предназначен для создания и управления многошаговыми маркетинговыми кампаниями. Другие задачи, которые решает Campaign — формирование омниканальных предложений клиенту, начисление бонусов в Клубной программе, верстка и создание email-рассылок. 

В этой статье я сделал основной упор на то, как кампании работают в СУБД Oracle и какие технологии Oracle мы используем. Вначале предлагаю краткий обзор того, как создаются кампании и какой путь проходят от брифа до запуска. 

Читать далее

Хранители данных: как устроена работа с DWH в Lamoda

Время на прочтение7 мин
Охват и читатели48K

Всем привет! Меня зовут Юлия Скогорева, я системный аналитик в команде Center of excellence в Lamoda, которая входит в дирекцию данных и аналитики.

Если бизнесу нужны какие-то данные для принятия важных решений, то на помощь приходит наша команда. Мы тщательно изучаем множество микросервисов, чтобы определить, какие же данные нужны для решения бизнес-целей, формируем архитектуру хранилища, пишем скрипты запросов и витрин данных, строим юниверсы, делаем отчеты и дашборды. Большая часть работы не обходится без участия команды DWH-разработки.

В статье я расскажу, как устроено хранилище данных в Lamoda, что находится на каждом его слое, с помощью каких инструментов мы визуализируем данные, сколько у нас отчетов и зачем используем APEX.

Читать далее

Миграция 500 Гиг из Оракла за 5 часов

Время на прочтение5 мин
Охват и читатели12K


На самом деле, еще 9 часов заняла загрузка данных в PostgreSQL, но обо всем по порядку.
Ничто не предвещало грозы — у Заказчика упал сервер и всего-то предполагалось поднять Оракл ;-)


Что я и сделал.


Но ВНЕЗАПНО оказалось, что по договору нужна миграция а дедлайн через 3 дня и все заверте...

Читать дальше →

Работа с объектными переменными типа REF CURSOR в Oracle BI Publisher 12c

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели6.6K

Прочитав статью и восприняв понимание продукта Oracle BI Publisher критически, а именно, на момент существовавшей тогда версии 11.1.1.7.150120, хочется заметить, что все, указанное в цитируемой статье можно было сделать на BI Publisher и доверить любому непрограммирующему пользователю. Плюс к этому, продукт имел trial и stand-alone версию. Поддерживался API на Java, уже был доделан вызов продукта как web-сервиса.

Чуть более интересный вопрос, который был получен от читателей моего блога: как в 12-й версии работать с переменными типа REF CURSOR для массовой миграции с самодельной отчетной системы на продукт Oracle BI EE 12с.

Рассмотрим код, который вернет REF CURSOR в зависимости от параметра.

Читать далее

Как мы используем юнит-тестирование в СУБД Oracle

Время на прочтение7 мин
Охват и читатели9.9K

В некоторых технологиях и языках программирования юнит-тестирование — уже давно неотъемлемая часть написания кода. Оно интегрировано в разработку и доступно «из коробки» в виде фреймворков, как, например, JUnit для Java, xUnit/nUnit для C# и т. д. Но в Oracle культура юнит-тестирования мало распространена. В статье я расскажу, как и зачем мы внедрили автотесты при разработке на Oracle и для чего их используем.

Читать далее

Что такое проблема оракулов в блокчейн?

Время на прочтение10 мин
Охват и читатели8.4K

Проблема оракулов в блокчейн — одно из самых важных препятствий, если смарт-контракты построенные на базе сетей, таких как Ethereum, хотят достичь повсеместного применения в различных рынках и индустриях.

Смарт-контракты представляют огромный потенциал преобразить то, как независимые структуры вступают в контрактные обязательства и производят платежи. Отдельно от индустрии смарт-контрактов, мы имеем огромную традиционную цифровую экономику, состоящую из множества устройств, связанных с помощью интернета, и производящих вычисления онлайн. Производный продукт такой цифровой инфраструктуры — постоянно увеличивающийся объем данных и API, который дает представление о том как все в нашем мире работает; например, результаты поиска, выдающие самые популярные темы, или сенсоры IoT (Internet of Things или Интернет Вещей) предлагающие наиболее распространенные модели трафика.

Смарт-контракты построенные на блокчейн и традиционные базы данных и API имеют огромный потенциал для объединения в гибридные смарт-контракты и создания новой архитектуры для автоматизации баз данных. Но как связать эти два мира? В этом и заключается “Проблема оракулов” — главная тема этой статьи.

Статья разделена на пять частей:

Читать далее

Что случилось с High Availability в Oracle 19c Standard Edition, что такое SE2HA и при чём тут репликация

Время на прочтение3 мин
Охват и читатели3K
Если вы уже используете Oracle Standard Edition (SE) или планируете перейти на эту редакцию, чтобы сократить расходы на Oracle, вы, наверняка, знаете, что там урезаны опции HA и DR. Поскольку DataGuard недоступен для Standard Edition, RAC — единственный вариант обеспечения высокой доступности без использования сторонних решений. Так было до тех пор, пока компания Oracle не убрала его поддержку в Oracle 19c и не объявила о новой опции под названием Standard Edition High Availability (SE2HA), которая при внимательном рассмотрении оказывается даунгрейдом с RAC.



В этой статье я расскажу об отличиях технологий SE2HA и RAC, а также расскажу как тут может пригодиться инструмент для репликации Quest Shareplex. Погнали!
Читать дальше →

Вклад авторов