Выбор редакции
26 мая, 21:47

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

Доброго времени суток, Хабр. Приходилось ли вам задумываться как поменять время внутри базы данных? Легко? Ну в некоторых случаях да, несложно — linux команда date и дело в шляпе. А если нужно поменять время только внутри одного экземпляра бд если их на сервере несколько? А для отдельно взятого процесса базы данных? А? Эээ, так-то, дружок, в этом-то все и дело. Кто-то скажет, что это очередной сюр, не связанный с реальностью, который периодически выкладывают на Хабре. Но нет, задача вполне реальная и продиктована производственной необходимостью — тестированием кода. Хотя соглашусь, кейс тестирования может быть достаточно экзотический — проверить как ведет себя код на определенную дату в будущем. В данной статье я рассмотрю подробно как эта задача решалась, и заодно захватим немного сам процесс организации тестовых и dev-стендов для базы Oracle. Впереди длинное чтиво, устраивайтесь поудобнее и прошу под кат. Читать дальше →

Выбор редакции
21 мая, 13:28

Веб-сервисы в Oracle

Веб-сервисы широко применяются для интеграции между компонентами одной системы или между различными системами. Популярность веб-сервисов как способа интеграции обусловлена их универсальностью, а также простотой реализации и отладки. Универсальность связана с передачей данных с помощью интернета и протокола HTTP. Веб-сервисы дают возможность относительно легко построить интеграции между компонентами, написанными на разных языках, запускаемыми на разных операционных системах и платформах. Простота реализации веб-сервисов достигается за счет встроенных во многие IDE средств и компонентов, позволяющих быстро разработать как сам веб-сервис (provider side), так и необходимый код для вызова сервиса на стороне клиента (client side). Отладку сервисов упрощает использование понятных человеку форматов обмена данными — XML и JSON. Кроме того, существует множество утилит для отладки и тестирования сервисов, в том числе нагрузочного. В этой статье рассмотрим несколько способов создания веб-сервисов непосредственно из СУБД Oracle, то есть без использования сторонних средств. Читать дальше →

Выбор редакции
06 мая, 11:59

[Из песочницы] Иерархическое логирование приложения в Базу Данных

Всем, привет! В статье я хотел бы рассказать об одном из подходов к логированию приложения, который сильно помогал мне и коллегам при отладке, поиске ошибок и анализе проблем производительности. Про необходимость логирования было написано множество хороших статей в том числе и на Хабре, поэтому здесь нет большого смысла повторяться. Я начинал карьеру в IT с Oracle и изучал эту БД по книгам главного эксперта — Тома Кайта. Мне запомнилась его фраза по поводу логирования из книги "Effective Oracle by Design": Instrumentation is not overhead. Overhead is something you can remove without losing much benefit. Removing (or not having) instrumentation takes away considerable functionality. You wouldn’t need to do this if your systems never break, never need diagnostics, and never suffer from performance issues. If that is true, you don’t need to instrument your system (and send me your email address, because I have a job offer for you). С работой над Oracle проектами всё и началось. Читать дальше →

Выбор редакции
06 апреля, 20:54

Путь к награде

В 2019 году Учебный центр РДТЕХ получил награду Oracle University «Partner Excellence Award 2019» и тем самым был признан лидером авторизованного обучения Oracle в России. Что было сделано за годы существования Учебного Центра, что происходит сейчас, какие цели мы ставим на будущее? Читать дальше →

Выбор редакции
06 апреля, 18:44

DataGrip 2020.1: Конфигурации запуска, Экспорт в Excel, Результаты в редакторе и другое

Привет! Это наш первый релиз из дома. DataGrip и другие наши IDE с поддержкой баз данных теперь умеют больше. Читать дальше →

Выбор редакции
27 марта, 15:40

Миграция из Oracle в Postgres

Зачем переносить данные Тема переноса (миграции) данных из Oracle в Postgres набирает обороты. В РФ количество запросов по переходу на Postgres на волне импортозамещения, сейчас больше, чем когда либо. Oracle — очень качественный, мощный и отлично документированный инструмент. Но вместе с тем очень дорогой в лицензировании и поддержке. Зачастую охватить все его возможности не получается в силу специфики использования. Ключевыми параметрами эксплуатации в нашем случае являются производительность системы, процент использования (утилизации) железа, простая тех. поддержка, а также дешевое и быстрое масштабирование — легкое развертывание новых баз. Я решил изучить процесс миграции данных, изучая то, как реализовать пожелания конкретного заказчика, а также из практического любопытства, теперь я пробую перенести небольшую схему около 15 Гбайт с Oracle 11.2.0.4 на Linux Redhat 6.8 в Postgres 9.4 на Windows. Немного погрузившись в тему, я решил написать эту статью и рассмотреть процесс подробно. В отрыве от нашей специфики пост будет полезен интеграторам и DBA при планировании переноса данных/CUT. Читать дальше →

Выбор редакции
27 марта, 12:01

EF Core + Oracle: как сделать миграции идемпотентными

Обычно фреймворк EF Core используют в сочетании с MS SQL — другим продуктом Microsoft. Однако это не догма. Например, мы в CUSTIS пишем бизнес-логику на C#, а для управления базами данных используем Oracle. В EF Core есть замечательный механизм миграций, но в нашем случае они не идемпотентны. Дело в том, что Oracle и ряд других БД, например MySQL, не поддерживают транзакционный DDL. Значит, если миграция упадет где-то посередине, ее не получится ни накатить, ни откатить. Как же реализовать идемпотентные миграции на EF Core без MS SQL? Читать дальше →

Выбор редакции
15 марта, 15:13

[Из песочницы] Анатомия системы НСИ

Данная статья основана на реальных событиях, и все проблемы в ней не вымышленные. (С) В начале хотелось бы отметить, что статья не призвана показать изобретение велосипеда, потому как многие приёмы уже давно существуют в культуре разработки баз данных. Однако обобщить, проанализировать проблемы, которые они могут решить и показать, как с ними можно работать. А проблем хватает несмотря на то, что нормативно-справочная информация (НСИ) не относится к бизнес-логике, а скорее находится в обслуживании у неё. Стандартный процесс по рисованию очередной таблички для хранения справочника очень скоро начинает обрастать костылями или трудоёмкими переделками. Читать дальше →

Выбор редакции
25 февраля, 11:25

Настройка LDAP в Oracle BI

В статье описана простая настройка LDAP для аутентификации и авторизации пользователей. 1. Перейдете по ссылке Oralce bi которая открывает console(http://адрес: порт/console), используя учетную запись администратора (по умолчанию weblogic). Нажмите на Security Realms -> myrealm 2. Перейдите на вкладку «Providers». Здесь вы увидите следующие три «Authentication Providers» по умолчанию. Читать дальше →

Выбор редакции
07 февраля, 15:25

[Перевод] Дружим ORDER BY с индексами

Привет, Хабр! Я потихоньку перевожу статьи Маркуса Винанда из блога use the index luke. Первой статьей в цикле был манифест Маркуса о важности использования безофсетной пагинации на ключах. Мы рассмотрели всего один пример, как этот подход работает на практике. В этой и следующих статьях я буду обосновывать такой подход — с графиками и примерами, как все любят. Читать дальше →

Выбор редакции
25 января, 12:59

Регулярный update американской стратегии от 25 января 2020 года

Еще одна позитивная неделя для нашей американской стратегии, несмотря на снижение рынка  Netflix +4.0%. Netflix опубликовал хорошую отчетность (рост выручки на 31%, рост EBITDA на 103%, средний рост 67% при историческом среднем 58% ) и остается в выборкеOracle –1.9% В среднем выборка выросла на +1%, на фоне снижения индекса S&P на 1% В связи со снижением до уровня ниже 75% перцентиля по мультипликатору в выборку также вернулcя и Merck На неделе не очень сильно отчитался Comcast (рост выручки 2%, рост EBITDA 9%, при историческом среднем росте 9%), позитивно отчитался Intel (рост выручки на 8%, EBITDA на 13%, при историческом среднем росте 9%), негативно Boeing (падение выручки на 21% и EBITDA на 31%) На следующей неделе выходит много отчетностей по ТОП-30 компаниям, планируем оперативно обрабатывать. Динамика доходности выборки за время рассылок *Данный аналитический обзор не является индивидуальной инвестиционной рекомендацией, и финансовые инструменты либо операции, упомянутые в данном сообщении, могут не соответствовать Вашему инвестиционному профилю. Определение соответствия финансового инструмента либо операции инвестиционным целям, инвестиционному горизонту и толерантности к риску является задачей инвестора. За возможные убытки инвестора в случае совершения операций, либо инвестирования в финансовые инструменты, упомянутые в данном сообщении, никто, кроме самого инвестора, ответственности не несет. Мы рады обсудить возможность принять в управление средства, у нас есть решения для сумм от 375 000 рублей  С уважением,   Команда Усиленных Инвестиций https://t.me/eninv  подписывайтесь на нас в телеграмме (аналитики больше и быстрее) http://data.eninv.ru/    наш аналитический портал [email protected]   Тел +7 (920) 012-89-27 (Максим Кузнецов)

Выбор редакции
22 января, 16:35

[Перевод] Почему нужна инструментальная поддержка пагинации на ключах

Всем привет! Я бэкэнд-разработчик, пишу микросервисы на Java + Spring. Работаю в одной из команд разработки внутренних продуктов в компании Тинькофф. У нас в команде часто встает вопрос оптимизации запросов в СУБД. Всегда хочется еще чуть-чуть быстрее, но не всегда можно обойтись продуманно выстроенными индексами — приходится искать какие-то обходные пути. Во время одного из таких скитаний по сети в поисках разумных оптимизаций при работе с БД я нашел бесконечно полезный блог Маркуса Винанда, автора книги SQL Performance Explained. Это тот самый редкий вид блогов, в котором можно читать все статьи подряд. Хочу перевести для вас небольшую статью Маркуса. Ее можно назвать в какой-то степени манифестом, который стремится привлечь внимание к старой, но до сих пор актуальной проблеме производительности операции offset по стандарту SQL. Читать дальше →

Выбор редакции
16 января, 22:00

Oracle исправила 334 уязвимости в 93 продуктах

Компания Oracle выпустила первые обновления в 2020 году, вслед за Microsoft, Adobe и другими производителями. 192 уязвимости можно было использовать удаленно без аутентификации.

Выбор редакции
10 января, 15:08

[Из песочницы] Помощник по работе с базами данных GreenPig

Вступление Подключение библиотеки Класс Where Атомарная часть запроса Сложные запросы Класс Join Класс Query Выборка из БД с вложенными параметрами Многократное объединение с самим собой во имя поиска ╔═══╗╔═══╗╔═══╗╔═══╗╔╗─╔╗────╔═══╗╔══╗╔═══╗ ║╔══╝║╔═╗║║╔══╝║╔══╝║╚═╝║────║╔═╗║╚╗╔╝║╔══╝ ║║╔═╗║╚═╝║║╚══╗║╚══╗║╔╗─║────║╚═╝║─║║─║║╔═╗ ║║╚╗║║╔╗╔╝║╔══╝║╔══╝║║╚╗║────║╔══╝─║║─║║╚╗║ ║╚═╝║║║║║─║╚══╗║╚══╗║║─║║────║║───╔╝╚╗║╚═╝║ ╚═══╝╚╝╚╝─╚═══╝╚═══╝╚╝─╚╝────╚╝───╚══╝╚═══╝ 5HHHG HH HHHHHHH 9HHHA HHHHHHHH5 HHHHHHHHHHHHHHHHHH 9HHHHH5 5HHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHH ;HHHHHHHHHHHHHHHHHHHHHHHHHHA H2 HHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHH9 HHHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHH9 iHS HHHHHHHHHHHHHHHHHHHHHHhh HHHHHHHHHHHHHHHHHH AA HHHHHHHHHHHHHH3 &H Hi HS Hr & H& H& Hi Читать дальше →

Выбор редакции
06 января, 14:08

Oracle сама скопировала API у Amazon S3, и это совершенно нормально

Юристы Oracle сравнивают реимплементацию Java API в Android с копированием содержания «Гарри Поттера», pdf В начале этого года Верховный суд США рассмотрит важное дело Oracle против Google, которое определит правовой статус API в соответствии с законом об интеллектуальной собственности. Если суд встанет на сторону Oracle в её многомиллиардном иске, это может задушить конкуренцию и закрепить доминирование технологических гигантов, возможно, включая саму Google. В то же время бизнес Oracle изначально построен на имплементации языка программирования SQL, разработанного IBM, да и сейчас компания предлагает облачный сервис с API из Amazon S3, и это совершенно нормально. Реимплементация API была естественной частью развития информатики с самого зарождения отрасли. Читать дальше →

Выбор редакции
13 декабря 2019, 13:37

Как собрать образ Oracle DB для Testcontainers

Код должен тестироваться на той СУБД, с которой он будет работать. Testcontainers — это такая библиотека, которая позволяет использовать в юнит тестах практически любую СУБД с той же лёгкостью, что embedded базы данных типа HSQLDB или H2. Был бы только Docker образ Именно сборке удобного для использования с Testcontainers докер образа посвящена эта статья. У меня при попытке его сделать возникли проблемы, и тут я делюсь своим решением. Собирать буду образ для Oracle 11, потому он небольшого размера и мне версии 11 хватает. С другими версиями подход примерно тот же. Для того, чтобы было понятно, как использовать образ, тут также будет код на Java, который демонстрирует применение образа для тестирования Spring Boot приложений. Способ подключения к testcontainers я привёл, наверное, не самый лучший. Но во-первых он демонстрирует как использовать настройки, заданные при создании образа. Во-вторых он простой. И в-третьих он почти не завязан на Spring, его можно воткнуть даже в джава код, в котором нет ничего, кроме public static void main. Предполагается, что читатель обладает поверхностным знакомством с Docker и Testcontaners, а также хорошо знает Java. Для сборки нужно использовать linux, если собираете под Windows, нужно будет применить msys2 или что-то в этом духе. Демонстрационный код залит на гитхаб вот сюда https://github.com/poxu/testcontainers-spring-demo Поправленные скрипты для сборки образа можно посмотреть в моём форке Оракловских инструкций https://github.com/poxu/docker-images/tree/master/OracleDatabase/SingleInstance Читать дальше →

Выбор редакции
10 декабря 2019, 15:28

Золотые ворота: как реплицировать терабайт в час, или Опыт использования CDC на GoldenGate в ВТБ

Анализировать данные в реальном времени можно разными способами. В ВТБ мы используем технологию Change Data Capture (CDC), реализованную в инструменте Golden Gate Oracle: для нас очень важна скорость, при этом хотелось бы уменьшить объем передаваемых данных и снизить нагрузку на источник. И хотя основная сфера применения этого инструмента — репликации из Oracle и MS SQL, за несколько лет работы с CDC у нас накопилось несколько интересных кейсов, наподобие миграции данных между платформами или разными типами СУБД. Под катом мы поделимся нашим опытом работы с Golden Gate. Читать дальше →

Выбор редакции
03 декабря 2019, 19:27

DataGrip 2019.3: MongoDB, дебаггер, модный прогресс-бар, много новых инспекций

Привет! Как водится, три раза в году мы рассказываем о том, над чем работали. Это статья о том, что нового в DataGrip 2019.3, а значит и во всех IDE от JetBrains с поддержкой баз данных. Читать дальше →

Выбор редакции
12 ноября 2019, 13:22

Интерфейсы для мониторинга производительности популярных БД в Foglight for Databases

В прошлых статьях мы рассказывали о мониторинге различных БД в Quest Foglight for Databases и о подходе к быстрой локализации проблем производительности SQL Server. В этой мы покажем какие ещё дашборды можно использовать на основе собираемых метрик. А метрик этих достаточно. Под катом скриншоты интерфейса и описания к ним. Читать дальше →

Выбор редакции
31 октября 2019, 03:16

На чем разрабатывать Oracle разработчику в 2019-м году (и после)

Некоторое время назад я в очередной раз сменил место работы. Новый работодатель был настолько любезен, что разрешил мне выбрать любую IDE, которая понравится, и оплатить лицензию (но в разумных пределах). Также (в кои-то веки) у меня были права администратора на рабочем компьютере, так что я мог ставить что угодно и пробовать сколько угодно. Я попробовал: Oracle SQL Developer, TOAD, Alt SQL Developer и (ВНЕЗАПНО!) IntelliJ IDEA (PL/SQL Developer не пробовал, но много работал раньше). Если вы регулярно пишете PL/SQL код, или хотя бы время от времени делаете запросы к Oracle Database, думаю, вам будет интересно почитать, к каким выводам я пришел. Читать дальше →

Выбор редакции
09 апреля 2013, 10:36

[Из песочницы] Быстрый старт: Визуальное проектирование базы данных в MySQL Workbench

Цель данного поста — помочь начинающему разработчику быстро освоится и спроектировать простенькую базу с помощью инструмента для визуального проектирования баз данных MySQL Workbench от компании Oracle и получить её ER-модель и SQL-дамп. Читать дальше →