Как стать автором
Обновить
0

Oracle *

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

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

Использование метода «почти бесконечного» запроса для сопоставления CPU интенсивных операций в Oracle

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров712

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

Возникла довольно естественная идея использовать этот метод для сопоставления CPU интенсивных задач в БД Oracle. Например, если мы встраиваем такую прожорливую CPU-функцию в наш пайплайн исполнения SQL-запроса так, чтобы она выполнилась более миллиарда раз, то получаем возможность сравнить затраты на CPU в разных случаях.

В данном случае мы будем сравнивать по производительности различные функции хеширования в Oracle: ORA_HASH и различные варианты STANDARD_HASH.

Читать далее

Как мы переводили автоматизированную банковскую систему RS-Bank V.6 на импортозамещенный стек

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.3K

Привет, Хабр! Меня зовут Юрий Мишин, я технический директор в департаменте банковского ПО компании R‑Style Softlab. В этой статье я расскажу о масштабном проекте по переводу одного из ключевых продуктов компании 一 автоматизированной банковской системы (АБС) 一 на импортозамещенный стек.

Читать далее

Получение изменений из Oracle Database (LogMiner)

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров2.7K

Есть несколько вариантов захвата изменений из СУБД Oracle Database, самыми распространенными являются API LogMiner и API XStream. В данной статье рассмотрим API LogMiner.

Читать далее

ДАТская арифметика високосного года в базе данных Oracle

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.5K

Каждый разработчик, кто серьезно работал с типом DateTime, сталкивался с ошибкой високосного года. На этом пути не спасали ни многочисленные методы языка программирования, ни гуглопоиск - обязательно, раз в четыре года, баг високосного года напоминал о себе. В этом году насчитали 36 случаев.

В сфере страхования ошибка високосного года показывает новые грани в силу специфики многолетнего страхования. В статье расскажу об одном неочевидном случае и поделюсь подходом к решению проблемы. Примеры даны для Oracle PL/SQL, которые достаточно легко портируются на другие языки программирования.

А как правильно?

Стоит ли бояться serializable-транзакций больше, чем труднонаходимых багов?

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров8.1K

В базах данных транзакции обладают свойствами ACID, где «I» означает изоляцию транзакций при одновременном (concurrent) выполнении.

Наличие (serializable) изоляции гарантирует, что результат транзакций, выполненных параллельно, будет таким же, как если бы они были выполнены в некотором последовательном порядке.

Сериализация выполнения транзакций не бесплатна с точки зрения производительности.

Многие СУБД поддерживают более слабые уровни изоляции, оставляя за разработчиком выбор подходящего. В монолитных СУБД более слабый уровень изоляции часто используется по умолчанию. Так, в PostgreSQL и MySQL это «read committed». В распределённых СУБД чаще по умолчанию более строгие уровни: «repeatable read» в YugabyteDB и TiDB, «serializable» в CockroachDB и YDB.

Слабые уровни изоляции могут быть причиной очень труднонаходимых багов. Причём эти баги могут вызвать уязвимости в безопасности.

Из-за подобных багов уже были украдены миллионы долларов, в частности с биткоин-бирж. Мы расскажем о подобных случаях более детально в следующих разделах.

Читать далее

Миграция с Oracle на PostgreSQL: подводные камни и инструменты для перехода

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров6K

У задачи перехода с Oracle на PostgreSQL есть два решения: правильное и бесплатное. Специалистов, которые хорошо разбираются в обоих серверных языках, в стране объективно мало, поэтому лучший вариант — доверить миграцию СУБД опытным подрядчикам. Однако некоторые компании перекладывают эту задачу на собственных сотрудников, причем «под раздачу» может попасть кто угодно: системный аналитик, бэкенд-разработчик или, скажем, бизнес-архитектор. Если вы — тот, на кого свалилась такая участь, то эта статья — для вас.

Привет, Хабр! Меня зовут Александр Брейман, я доцент департамента программной инженерии факультета компьютерных наук НИУ ВШЭ и по совместительству эксперт Учебного центра IBS. В этой статье расскажу, чем PL/SQL похож и чем отличается от PL/pgSQL, на что обратить внимание при переходе и какие инструменты могут вам с этим помочь.

Читать далее

Как мы мигрировали из Oracle в PostgreSQL

Уровень сложностиСредний
Время на прочтение50 мин
Количество просмотров17K

Привет, Хабр! Я Владимир Хаймин, эксперт по системам управления базами данных PostgreSQL в ВТБ. В последнее время одним из наиболее распространенных способов миграции стала миграция при помощи свободного инструмента ora2pg. Однако многие отмечают его крайне низкую производительность, особенно если речь идет о базах Oracle размером под 1Тб и выше. Как ускорить миграцию и сократить время простоя при переносе проектов при помощи только oracle_fdw, либо в сочетании с ora2pg расскажу далее.

Подробнее

Как перейти с Oracle на PostgreSQL, используя Ora2Pg

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6K

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

Сегодня мы поговорим об актуальной задаче — миграции баз данных с Oracle на PostgreSQL с использованием Ora2Pg. Сейчас популярность PostgreSQL обоснована его мощностями и экономически выгодной альтернативы коммерческим решениям.

Читать далее

Как мы переехали с Oracle на PostgreSQL в нагруженном сервисе без даунтайма

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров28K

Всем привет! Я Сергей, работаю в B2B-команде Яндекс Маркета последние 3,5 года. Как уже понятно из заголовка, сейчас я вам расскажу про yet-another-миграцию с базы на базу, которая началась в середине 2021 года и заняла почти год. Получается, мемуары.

Вас ждёт рассказ о том, как мы:

- несколько месяцев чинили тесты и делали трансформер;

- десятки раз переливали данные;

- чинили баги незаметно для пользователей;

- заставили сервис работать на PostgreSQL быстрее, чем он работал на Oracle.

Читать далее

Погубит ли Java 22 сборочные инструменты?

Время на прочтение6 мин
Количество просмотров12K

Вступление


Я Николай Парлог, представитель отдела разработки Java в Oracle, и, отвечу на вопрос, вынесенный в заголовок — нет, конечно же, нет! Как вы могли только подумать о таком!
Но она немного снижает их актуальность, и в правильных обстоятельствах это очень хорошо. Позже я объясню, что я имею в виду. Сначала давайте разберемся, как работает эта новая функция. Готовы? Тогда давайте окунемся с головой!

Версия Java 22 обогатилась возможностью выполнения исходного кода сразу из нескольких файлов. В таком случае простой команды java достаточно, чтобы выполнять программы, состоящие из нескольких исходных файлов и даже содержащие зависимости. Для опытных разработчиков это упростит поиск и эксперименты, но для тех, кто только осваивает Java или просто программирует, это настоящая революция: теперь можно писать код Java как из одного, так и из нескольких исходных файлов и даже добавлять зависимости, безотносительно IDE или сборочных инструментов.
Читать дальше →

Как неПросто сделать холодный бэкап Postgres

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров8.1K

File system level backup  в Postgres это первое чему нужно научится при использовании Postgres . Никакие pg_dump \ pg_restore не заменят Полный бэкап на уровне файлов. File system level backup это первая ступень для подготовки к Continuous archiving. Понимание архитектуры хранения – это фундамент, по которому можно понять сможете ли Вы жить с Postgres на больших объемах или у Вас другой путь?

Начать копировать кластер правильно

Инструкция по бэкапу одной базы в Postgres – миф или реальность

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров13K

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер), до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя  было сделать проще как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей то лабораторной работы? Статья адресована прежде всего специалистам 1С избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

Сохранить в бэкап

Отладка в PL/SQL Developer

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров16K

Привет! Меня зовут Алексей Маряхин, я работаю разработчиком на Oracle и пишу много, очень много кода. И когда программа ведёт себя не так, как ожидалось, на помощь приходит отладка.

Не так давно выяснил, что не все разработчики владеют функционалом отладки или знают её фичи. А если код сложный и баги искать всё равно надо? Литературы на русском языке про отладку практически нет.

Тогда я собрал подробный гайд для коллег и провёл внутренний семинар по обмену опытом. Материал получился настолько подробным и полезным, что решил поделиться им с сообществом программистов. На примере инструментов для работы с СУБД Oracle, которые используются у нас в компании, посмотрим, как работает отладка, сравним их в теории и узнаем, что внутри.

В серии из двух статей подробно расскажу о способах, инструментах и нюанса отладки кода PL/SQL. Первая часть — про инструмент PL/SQL Developer. Поехали!

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

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

Как ускорить бекап данных из OracleDB в 5 раз? Или в 10. Можно и больше…

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.2K

Несколько лет назад перед нами встала встала проблема скорости бекапов с наших серверов баз данных. Проблема была нетиповая, поэтому и с решением возникли сложности. Тем не менее спустя пару лет после внедрения можно сказать, что свою проблему мы успешно решили. Может быть, это поможет кому-то еще.

Читать далее

Иерархическая база данных (продолжение)

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров3.9K

Эта статья посвящена реально работающей информационной системе (ИС), основанной на иерархической модели данных. Скажу точнее - это не просто ИС - это инструмент разработки ИС любого уровня сложности, включая ERP, CRM, PPM и т.д., обладающий полным набором средств разработки (инструментом описания структуры данных, встроенным процедурным языком и языком запросов, инструментом разработки экранных форм, инструментом написания программного кода и т.д).

Во 2-ой части статьи описывается внутреннее устройство ИС.

Читать далее

Иерархическая база данных

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров12K

Эта статья посвящена реально работающей информационной системе (ИС), основанной на иерархической модели данных. Скажу точнее - это не просто ИС - это инструмент разработки ИС любого уровня сложности, включая ERP, CRM, PPM и т.д., обладающий полным набором средств разработки (инструментом описания структуры данных, встроенным процедурным языком и языком запросов, инструментом разработки экранных форм, инструментом написания программного кода и т.д).

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

Читать далее

Настройка NVMe over TCP — для тех, кому надо подключить больше 1 диска единственной конфигурации из всех примеров в Сети

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров19K

Технология NVMe через различные фабрики (далее NVMeOF) оформлена в качестве стандарта летом 2016 года, она была встроена в пятую ветку ядра Linux.

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

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

Меня зовут Алексей Дрожжов, я старший инженер в билайне, и в этом посте расскажу, как мы решали эту задачу.

Задача: подключить много дисков с нескольких серверов

Читать далее

Oracle/ClickHouse. DWH. Партицирование как средство быстрого обновления данных

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров9.9K

В этой статье хотелось бы рассмотреть такой вопрос - как частичное обновление больших объемов данных в таблицах, которые активно используются пользователями на чтение. Задача является типовой, и с ней сталкивается каждый инженер данных. При этом не важно на какой ступеньке своей карьерной лестницы вы находитесь, Junior или Senior, такие задачи будут.

Читать далее

Connect by — интересный случай

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.4K

Довольно интересный случай выполнения "Ораклового" запроса, который, надеюсь может навести на некоторые рассуждения о runtime механизмах исполнения.

Читать далее

Быстрее быстрого в СУБД

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров10K

Привет! Меня зовут Сергей, я технический эксперт в компании Bercut. Когда-то увлекался Delphi и J2ME, издал несколько книг на эти темы, и профессионально уже около 20 лет создаю высоконагруженные приложения баз данных, используя для этого PL/SQL и SQL.

В Bercut мы занимаемся разработкой и развитием IT-продуктов и решений для операторов цифровых услуг и мобильных сервисов. Наши системы работают на различном железе, разных СУБД и обслуживают 24x7x365 в режиме онлайн сотни миллионов абонентов по всему миру. И это только кажется, что абонент один раз в день куда-то позвонил и все, больше никакой нагрузки от него нет и никто с ним не работает. На самом деле каждый смартфон каждого абонента непрерывно обменивается данными с сетью, а это все работа инфраструктуры операторов сотовой связи, а значит, нашего ПО. Как же система справляется с таким огромным объемом нагрузки?

Сегодня расскажу, что нужно делать и чего избегать, чтобы построить максимально производительную систему на примере СУБД Оракл.

Читать далее