Обновить
12.87

Oracle *

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

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

Анатомия системы НСИ

Время на прочтение46 мин
Охват и читатели15K
Данная статья основана на реальных событиях,
и все проблемы в ней не вымышленные. (С)


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

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

Время на прочтение3 мин
Охват и читатели4.2K
В статье описана простая настройка LDAP для аутентификации и авторизации пользователей.

1. Перейдете по ссылке Oralce bi которая открывает console(http://адрес: порт/console), используя учетную запись администратора (по умолчанию weblogic). Нажмите на Security Realms -> myrealm

image

2. Перейдите на вкладку «Providers». Здесь вы увидите следующие три «Authentication Providers» по умолчанию.

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

Как при помощи большого монитора и консольной утилиты WLSDM смотреть за Oracle WebLogic Server

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели3.9K
На просторах утилит консольных расширений Oracle WebLogic Server встретилась одна очень полезная — WLSDM, как ее позиционируют сами авторы — утилита мониторинга WebLogic Server с большим набором возможностей. Если пойдете на сайт разработчика, увидите, что рядом лежит еще один мощный инструмент, но уже за плату.

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

Несколько слов о метриках сервера в целом. Конечно, можно использовать встроенный просмотр метрик. Можно даже научиться кастомизировать таблицы метрик в самом сервере.
Но мы исходим из удобства применения и сравнительной симпатичности данного средства.
Плюс к этому, установленные пороговые значения сразу отображаются на графиках и предупреждения высылаются письмом. Что, собственно, для DevOps и надо.

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

Как мы мигрировали с Oracle JDK и Java Web Start на AdoptOpenJDK и OpenWebStart

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


Доброго времени суток.

В данной статье я расскажу о «модернизации» в компании, в которой я работаю, такого инструмента как Java Web Start, а точнее об его замене альтернативным opensource решением.
Читать дальше →

Дружим ORDER BY с индексами

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


Привет, Хабр!


Я потихоньку перевожу статьи Маркуса Винанда из блога use the index luke.


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

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

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

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

Всем привет! Я бэкэнд-разработчик, пишу микросервисы на Java + Spring. Работаю в одной из команд разработки внутренних продуктов в компании Тинькофф.



У нас в команде часто встает вопрос оптимизации запросов в СУБД. Всегда хочется еще чуть-чуть быстрее, но не всегда можно обойтись продуманно выстроенными индексами — приходится искать какие-то обходные пути. Во время одного из таких скитаний по сети в поисках разумных оптимизаций при работе с БД я нашел бесконечно полезный блог Маркуса Винанда, автора книги SQL Performance Explained. Это тот самый редкий вид блогов, в котором можно читать все статьи подряд.


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

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

Помощник по работе с базами данных GreenPig

Время на прочтение15 мин
Охват и читатели2.5K
  1. Вступление
  2. Подключение библиотеки
  3. Класс Where
  4. Класс Join
  5. Класс 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
Читать дальше →

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

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

Код должен тестироваться на той СУБД, с которой он будет работать. 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

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

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

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


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

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

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


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

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

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


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

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

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

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

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

Создание REST API с Node.js и базой данных Oracle. Часть 5

Время на прочтение6 мин
Охват и читатели5.5K
Часть 5. Создание REST API: разбиение на страницы, сортировка и фильтрация вручную

В предыдущей статье вы завершили построение базовой функциональности API CRUD.

И теперь, когда на маршруте сотрудников выдается запрос HTTP GET, возвращаются все строки таблицы. Это может не иметь большого значения только с 107 строками в таблице HR.EMPLOYEES, но представьте, что произойдет, если таблица будет содержать тысячи или миллионы строк. Такие клиенты, как мобильные и веб-приложения, обычно отображают только часть строк, доступных в базе данных, а затем выбирают больше строк, когда это необходимо — возможно, когда пользователь прокручивает вниз или нажимает кнопку «Далее» на каком-либо элементе управления разбиением на страницы в пользовательском интерфейсе.

Для этого API REST должны поддерживать средства разбиения на страницы возвращаемых результатов. После того, как разбиение на страницы поддерживается, становится необходима возможности сортировки, поскольку данные обычно должны быть отсортированы до применения нумерации страниц. Кроме того, средство фильтрации данных очень важно для производительности. Зачем отправлять данные из базы данных, через промежуточный уровень и полностью на клиент, если это не нужно?
Читать дальше →

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

Создание REST API с Node.js и базой данных Oracle. Часть 4

Время на прочтение7 мин
Охват и читатели5.8K
Часть 4. Создание API REST: обработка запросов POST, PUT и DELETE

В предыдущей статье вы добавили логику в API для запросов GET, которые извлекали данные из базы данных. В этом посте вы завершите построение базовой функциональности API CRUD, добавив логику для обработки запросов POST, PUT и DELETE
Читать дальше →

Создание REST API с Node.js и базой данных Oracle. Часть 3

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

Часть 3. Создание REST API: обработка запросов GET


В предыдущей статье вы установили соединение с базой данных.

В этой же добавите логику маршрутизации, контроллера и базы данных для обработки HTTP-запроса GET на конечную точку API «employees».

Добавление логики маршрутизации


Express поставляется с классом Router, который упрощает маршрутизацию HTTP-запросов к соответствующей логике контроллера. Пути маршрутов определяют конечные точки URL API и могут содержать параметры маршрута, которые фиксируют значения в URL.

Существует множество способов определить маршруты для вашего приложения. Например, когда приложение запускается, вы можете прочитать все файлы в каталоге контроллеров и автоматически сгенерировать логику маршрутизации на основе некоторых предопределенных правил, таких как имена файлов и свойства, которые они предоставляют. Кроме того, вы можете добавить файл в каталог конфигурации и прочитать его во время запуска.
Читать дальше →

Создание REST API с Node.js и базой данных Oracle. Часть 2

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

Часть 2.Создание REST API: основы базы данных


В первой статье вы создали веб-сервер, тут вы создадите модуль, который отвечает за запуск и завершение работы пула соединений с базой данных используя node-oracledb. А также добавите функцию, которая упрощает выполнение простых операторов, автоматически получая и освобождая соединения из пула.
Читать дальше →

Создание REST API с Node.js и базой данных Oracle

Время на прочтение5 мин
Охват и читатели19K
Привет, Хабр! представляю вашему вниманию перевод статьи «Creating a REST API: Web Server Basics».

Часть 1. Создание REST API: основы веб-сервера


Веб-сервер является одним из наиболее важных компонентов REST API. В этом посте вы начнете свой проект API REST, создав несколько начальных каталогов и файлов. Затем вы создадите модуль веб-сервера и подключите его так, чтобы веб-сервер запускался и правильно выключался.

Код в этом проекте будет организован с использованием общей структуры каталогов, которая может быть скорректирована и с течением времени построена по мере необходимости.

cd ~
mkdir hr_app
cd hr_app/
touch index.js
mkdir config
touch config/web-server.js
mkdir controllers
mkdir db_apis
mkdir services
touch services/web-server.js

Файл index.js можно рассматривать как «основной» файл в приложении. Он будет точкой входа в приложение. Мы будем добавлять код в этот файл и файлы web-server.js в каталогах config и services.

Вставьте следующий код в файл Home > hr_app > config>web-server.js

module.exports = {
  port: process.env.HTTP_PORT || 3000
};

В Node.js объект процесса имеет свойство env, которое содержит пользовательскую среду. Я использую это, чтобы установить значение порта в значение переменной среды HTTP_PORT. Если эта переменная среды не определена, значением по умолчанию будет 3000.
Читать дальше →

Oracle Database 19c: принципиальные отличия от предыдущих версий

Время на прочтение1 мин
Охват и читатели16K
Слушатели курсов Oracle нашего Учебного центра часто спрашивают о принципиальных отличиях версии Oracle 19c от предыдущих версий (12 и 18). Мы собрали наиболее распространенные вопросы и задали их Олегу Слабоспицкому, эксперту по программным продуктам Oracle и одновременно преподавателю Учебного центра РДТЕХ:

Edition-Based Redefinition. Часть 2

Время на прочтение5 мин
Охват и читатели1.8K
Привет! Как и обещала в предыдущем посте про Edition-Based Redefinition — вот вторая часть.



Итак, с чем мы работаем? Наш основной production сервер — это Oracle 12С, Enterprise Edition. И, что важно отметить, на нем работает несколько десятков приложений одновременно. Почему мы заостряем на этом внимание? Технология относительно новая, она не совсем хорошо обкатана. И было бы нелогичным переводить на нее сразу какие-то критичные системы. Поэтому для себя решили, что будем потихоньку идти от менее критичных систем к более критичным. Соответственно, следующая проблема, которую нам необходимо было понять: как работать c технологией EBR и как организовать интеграцию в той ситуации, когда у нас одна схема версионирована, а другая — нет. В 12 версии Oracle, как оказалось, можно создавать неверсионные объекты, неверсионированные пакеты, неверсионированные представления в версионированной схеме для организации той самой интеграции.
Читать дальше →

DB & DWH MeetUp #5 в Райффайзенбанке

Время на прочтение1 мин
Охват и читатели2.5K
Сообщество Database & Data warehouse приглашает на свой митап, который состоится 26 сентября в офисе Райффайзенбанка в Нагатино



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