Pull to refresh
0
Андрей @Skromniyread⁠-⁠only

User

Send message

Сказки антивирусного леса

Reading time12 min
Views201K
«Платить или не платить за антивирус?» По мнению некоторых, именно такой вопрос встает перед миллионами пользователей. Вот, например, в статье Владимира Безмалого в 12 номере журнала «Мир ПК» за 2014-й год этой теме посвящено целое «исследование». Результаты его сомнений не оставляют: «скупой платит дважды». Однако аргументы в этой статье настолько спорные, что я не могу не высказаться на эту тему. Ведь мы с вами живем в то время, когда многие манипулируют информацией, чтобы заработать больше денег. О том, насколько эффективна эта система, можно судить по тому факту, что «Антивирус Бабушкина» закупило несколько государственных организаций. Это, конечно, крайний случай, но он показывает, что когда хвалят платные продукты, стоит задуматься, насколько бескорыстны эти похвалы.
Читать дальше →
Total votes 59: ↑48 and ↓11+37
Comments201

Выполнение внешнего файла из БД Oracle с целью получения информации о дисковом пространстве

Reading time5 min
Views12K
Зачастую для тех или иных нужд возникает необходимость выполнить команду OS из pl/sql или даже sql внутри Oracle Database.
Ниже описывается один из способов и его применение в задаче определения доступного дискового пространства.
Предлагаемый способ заключается в использование добавленного в 11.2 функционала «Препроцессинг данных внешних таблиц».
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments9

Простой парсер JSON на PL/SQL

Reading time5 min
Views51K
Буквально вчера внезапно возникла задача — понадобилось разобрать данные в формате JSON непосредственно в хранимой процедуре Oracle. Разумеется, именно для таких вещей в Oracle и была добавлена Java, но хотелось чего-то более своего и написанного непосредственно на PL/SQL. Результаты своего порыва я и выкладываю на суд общественности. Вдруг кому пригодится.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments15

Oracle 12c. Продолжаем обзоры новых возможностей. SQL Text expansion

Reading time3 min
Views9.7K
Только что обнаружил у Т. Кайта в блоге описание очень полезной, на мой взгляд, новой возможности 12-ки.
Назвается SQL Text expansion. По сути она позволяет получить конечный запрос, после всех преобразований и дополнений.

1) будут раскрыты все подлежащие view. Т.е. скажем у вас, на первый взгляд, простой запрос, из одного представления, но если вы копнёте глубже, то обнаружите, что внутри это представление состоит из сложного запроса, а тот, основан на других view, которые, в свою очередь, на ещё множестве представлений. Наверняка многие из нас с этим сталкивались и знают каких усилий стоит собрать в голове всю картину воедино, бегая по описаниям каждого представления и пытаясь представить как всё это собирается в один запрос…

2) Особых усилий при отладке логики и производительности стоит работа с virtual private database (dbms_rls). Теперь новая возможность позволяет сильно облегчить жизнь (кто сталкивался — тот однозначно оценит!).

Теперь появилась новая функция, EXPAND_SQL_TEXT из пакета DBMS_UTILITY.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments5

Linux для планшета

Reading time8 min
Views142K
image

В этой статье я покажу вам на своём опыте, что GNU/Linux и графические оболочки для него уже дозрели до уровня планшетов и вовсе не нужно бояться покупать трансформер\планшет только из-за того, что вы приверженный линуксоид. Здесь описывается сравнение и выбор оптимальной среды рабочего стола (далее DE) для планшета или трансформера, её установка и доработка для сенсорного управления.
Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments49

Oracle 12c. Новые фичи приносят новые подводные камни

Reading time5 min
Views23K
Всем привет.

Разбирая новые возможности Oracle 12c, то тут, то там сталкиваюсь с подводными камнями, когда не всё работает так, как ожидалось, падает или просто не очевидно. Конечно, это стандартная ситуация когда в первом релизе новой версии много сырого… но, как известно, предупреждён — значит вооружен. Вероятно, кому-то пригодится, чтобы не повторять мои грабли.

Пишу грабли в порядке наступления на них.

PS: edited: добавил в конце баг о котором забыл написать сразу (использование в PL/SQL, SQL-конструкций в WITH которых испоьзован PL/SQL).

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments19

Загружаем данные в Oracle

Reading time14 min
Views93K
В своей предыдущей статье я показал, что при использовании асинхронных запросов, скорость опроса устройств по протоколу SNMP может достигать 9000 запросов в секунду (при условии, что у нас есть достаточное количество устройств для формирования такого потока ответов). Вопрос о том, что делать с этим потоком данных остался открытым.

Обычной практикой является обработка данных мониторинга посредством RDBMS (таких как Oracle Database). Но способны ли традиционные реляционные базы данных справиться с такой нагрузкой? Попробуем в этом разобраться.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments136

Раздуваем таблицы и пожираем tablespaces

Reading time4 min
Views16K

Картинка для придания нужного настроения

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


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

Приводить легионы ссылок на инет с подобными статьями не буду. Но есть в большинстве этих статей общая черта. Когда данные спасены (или уничтожены, как получится), предлагается победить поврежденный free block захватом всего свободного места в tablespace. И почему то это предложение описательно.

Так добавим конкретики!
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments23

Быстрая компиляция большого количества инвалидных объектов в БД

Reading time1 min
Views6.2K
БД находится в restricted (выполнен startup restrict или alter sytem enable restricted session+убиты все пользовательские сессии).
listener остановлен.

Последовательность действий.
  • exec dbms_scheduler.set_scheduler_attribute('scheduler_disabled','true');alter system disable restricted session;
  • @?/rdbms/admin/utlrp
  • в другой сессии: alter system enable restricted session;exec dbms_scheduler.set_scheduler_attribute('scheduler_disabled','false');


Читать дальше →
Total votes 4: ↑2 and ↓20
Comments0

Именование объектов в Oracle. Взгляд «со стороны»

Reading time15 min
Views42K

«Старая песня о главном»


«Стандарты именование объектов БД» и «правила оформления кода» темы не новые. Так или иначе, к вопросу выработки или заимствования таких стандартов и правил приходят все команды разработчиков. При желании в сети можно найти статьи и презентации по данной теме, а так же примеры и шаблоны различных соглашений. Многие из них безусловно полезны, некоторые — практически идеальны, если бы не одна маленькая оговорка: они написаны разработчиками и для разработчиков.

К сожалению, в моей субъективной реальности разработчики являют собой лишь некую абстракцию. Эдакие фантомы по ту сторону телефонной трубки, от которых меня отделяют тысячи километров и 3 часовых пояса. Прямого доступа в их коллективный мозг у меня нет. Доступны только образы, порожденные данным мозгом,- в виде объектов эксплуатируемой системы.

В принципе, пожелания по оформлению и именованию у «прикладника» (администратора приложения/технолога) и разработчика на 90 процентов совпадают. Но существуют все же некоторые отличия в восприятии «читателя» и «писателя», о которых я хотел бы поговорить.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments6

Oracle Business Intelligence — обзор

Reading time8 min
Views93K
Привет, хабр. По работе мне приходится иметь дело с OBIEE (Oracle Business Intelligence Enterprise Edition) в качестве разработчика и администратора, поэтому я решил поделиться тем объемом знаний, который успел накопить. Надеюсь, кому-нибудь это поможет в освоении системы. Сначала я планирую рассказать про систему в целом, затем — про архитектуру и взаимодействие компонентов, а в конце — рассказать про те особенности, с которыми пришлось столкнуться за время работы.

Обзор системы


Oracle Business Intelligence Enterprise Edition (OBIEE, OBI) — программная платформа для решения задач бизнес-аналитики: интерактивных и публикуемых отчетов, мониторинга KPI и бизнес-процессов. Является потомком Siebel Analytics. Основные функциональные части, доступные пользователям:

  • Answers (также называются Interactive Dashboards) — построение интерактивных отчетов, доступных для пользователей через веб-интерфейс OBIEE. Единицей отчетности является analysis — простой отчет, как правило, включающий в себя одно отображение (таблицу, график, диаграмму и т.п.). Analysis объединяются в информационные панели (Dashboards), с которыми работают конечные пользователи. Информационные панели также могут включать в себя приглашения (prompts) — элементы настройки, с помощью которых пользователь может взаимодействовать с панелью.
  • Publisher (также иногда в него включают Delivers) — средство создания и рассылки статических отчетов. Т.к. publisher развился из отдельного продукта, то в нем есть возможность строить отчеты на собственной модели данных, независимой от модели данных OBI, однако можно использовать и общую модель. Также есть возможность рассылки существующих отчетов из answers.
  • Action Framework — набор средств для выполнения каких-либо автоматизированных действий из OBIEE — например, рассылка отчетов по достижению показателем определенного значения, вызова внешних веб-служб, вызова java кода и т.п. Действия могут быть объединены в цепочки. Возможно настройка различных каналов оповещения пользователей — e-e-mail, sms, пейджер и т.п.
  • Scorecard and Strategy Management — средства для отслеживания ключевых параметров производительности (KPI) и работы с системами показателей (Scorecard — http://en.wikipedia.org/wiki/Balanced_scorecard). Используются для наглядного отображения статуса выполнения целей (компании, проекта). Доступ пользователей, как и в случае с answers, осуществляется через веб-интерфейс.
  • Marketing — средства интеграции с Siebel Marketing.
  • Office Tools — средства интеграции с Microsoft Office.

Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments4

Денормализация деревьев

Reading time3 min
Views12K
Очень часто за основу архитектуры приложения берётся дерево. Простой пример: есть страны, в странах — области, в областях — города, в городах — организации, в организациях — работники, товары или что-либо ещё. Использование дерева вполне логично и оправдано. Иерархичность такой системы показывает некая абстрактная таблица. Назовём её object:

CREATE TABLE object (
  id NUMBER(11),
  parent_id NUMBER(11),
  type VARCHAR2(16) NOT NULL,
  name VARCHAR2(255) NOT NULL,
  CONSTRAINT pk_object PRIMARY KEY (id),
  CONSTRAINT fk_object_parent FOREIGN KEY (parent_id) REFERENCES object (id) ON DELETE CASCADE ENABLE
);

Наполним её какими-нибудь данными:

id  |  parent_id  |  type     |  name
------------------------------------------------------
1   |  NULL       |  country  |  Россия
2   |  1          |  region   |  Московская область
3   |  1          |  region   |  Новосибирская область
4   |  2          |  city     |  Москва
5   |  3          |  city     |  Новосибирск

При этом мы можем легко одним запросом получать нужные нам связи:

-- Выбрать все города России
SELECT *
  FROM object
    WHERE type = 'city'
    START WITH id = 1 CONNECT BY PRIOR id = parent_id;

-- Выбрать страну, в которой находится Новосибирск
SELECT *
  FROM object
    WHERE type = 'country'
    START WITH id = 5 CONNECT BY PRIOR parent_id = id;

Однако проблемы появляются, когда записей в таблице становится на столько много, что любой рекурсивный запрос выполняется минуты две, а то и больше. Менять всю архитектуру как-то поздновато… Тут-то нам на помощь и приходит денормализация дерева. В этой статье я расскажу об одном из способов такой денормализации.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments9

Все, что Вы хотели знать о Chromecast или как сделать обычный телевизор чуть умнее за 35$

Reading time12 min
Views277K

Вводная


Целью данного поста является актуализация информации о замечательном устройстве от Google, а именно — Chromecast.
В связи с последними обновлениями от Google, данное устройство получило намного больший функционал, чем описано ранее на Хабре в обзоре от zvic и обзоре от khoroshev.
По отзывам в сети, многие разочаровались в этом устройстве, у многих оно лежит в ящике, а многие просто избавились от него, т.к. не нашли ему применение.
Забегая вперед, скажу, что одно из главных достоинств устройства — проигрывание локальных файлов с телефона/планшета/компьютера, находящегося в одной Wi-Fi сети. Также можно стримить на телевизор онлайн-видео из различных программ.
Интересно? Тогда прошу под кат.
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments47

Google обнародовал Cast Software Development Kit (Chromecast SDK)

Reading time4 min
Views19K
В продолжение своей статьи, хочу обрадовать обладателей замечательного устройства Chromecast.
Google обнародовал Cast Software Development Kit (Chromecast SDK). Что это нам дает? Сразу оговорюсь, если вам интересна эта тема, заходите почаще, обновления и дополнения добавляю в статью по мере поступления информации.

На текущий момент доступно только небольшое количество официальных приложений, а расширенные возможности были доступны только счастливым обладателям рутованных устройств (коим я также являюсь).
Теперь же любой разработчик может добавить поддержку Chromecast в свое приложение (с учетом Правил программы для разработчиков приложений Google Play, а там есть пункт о интеллектуальной собственности).
Для этого необходимо создать аккаунт, ознакомиться со страницей и выполнить все инструкции согласно Google Cast Design Checklist. Примеры есть на GitHub.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments13

Oracle Database Appliance – обзор после опыта использования

Reading time5 min
Views13K


Сначала пару слов про ODA. Это инженерная система, представляющая собой готовый стек – СХД, серверов и софта, которые подобраны друг под друга для обеспечения максимальной производительности. Аналогов у других производителей нет, т.к. весь стек тестировался производителем оборудования и ПО для выявления «узких» мест в производительности. В результате в ОДЕ нет веера разных конфигураций и все что можно сделать — это добавить дополнительную полку с дисками. В системе стандартный объем памяти, стандартный объем дисков, стандартные процессоры – никаких особых дополнений или вариантов конфигураций нет.

В нашем обзоре использована ОДА первого поколения, которая в габаритах 4 юнита, включает в себя 2 сервера, каждый с:
Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments14

How-to: Разворачиваем Oracle Real Application Cluster 11g на VirtualBox

Reading time21 min
Views38K


1. Предыстория


Наша компания занимается серийным выпуском техники сугубо мирного назначения и вся сопутствующая информация с производства пишется в БД Oracle, которая располагается на виртуальном сервере под управлением VMware ESX. И вроде бы все налажено, конвейер работает, данные пишутся, идет отгрузка готовой продукции.

Но стойка, на которой кроме сервера БД, базируется еще куча каких-то непонятных серверов, имеет удивительное свойство иногда падать. Да и с самой БД в один прекрасный момент может произойти все, что угодно. Конечно, первым делом на ум приходит грамотная организация резервного копирования БД или создание спапшотов VMware. Однако, все эти действия, в случае отказа оборудования, не позволяют обеспечить непрерывную работу БД и всего конвейера соответственно. В общем, захотелось опробовать другие решения.

Когда в IT-отделе в очередной раз проводилось собрание по данной проблеме, было решено опробовать идею поднять Oracle Real Application Cluster и развернуть на нем производственную БД. Проблема заключалась лишь в том, что никто на тот момент не знал, как это делается.

Пред тем, как закупать железо и разворачивать новые сервера, было решено опробовать выбранную технологию локально, используя VM VirtualBox. После нескольких недель, плавно перешедших в месяцы, поиска и переваривания необходимой как воздух информации, кластер наконец-то был запущен, и можно было приступать к первым тестам. И так, всем, кто хочет поднять n-нодовый (n>=2) кластер, добро пожаловать под кат.
Читать дальше →
Total votes 16: ↑11 and ↓5+6
Comments4

В поисках лучшего сигнала мобильного интернета весной 2015

Reading time3 min
Views28K
Вот и пришла весна в наши края. Погода на улице + 5 градусов, возобновляются дачные работы, а вместе с ними и поиски надежного провайдера мобильного интернета. Именно весной, когда природа начинает просыпаться, деревья создают дополнительные электромагнитные излучения, листва закрывает прямую видимость с базовой станцией, встает задача усиления сигнала сотовой связи. А в 2015 году особой популярностью пользуются решения с наименьшими затратами, об этом и пойдет речь в данном обзоре.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments22

С чего начинается дружба с Active Directory

Reading time4 min
Views59K
Мне часто приходится сталкиваться с обработкой информации из Active Directory. Так как данная система много где распространена, я решил поделиться своим опытом работы с ней.

Началось всё с того, что я раздавал доступ в MS Sharepoint. В заявках от сотрудников, в лучшем случае, приходили учетные записи, в худшем могли написать что-то типа “Мне и моему начальнику”.
Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments2

Настройка двухсторонней синхронизации БД Oracle (Oracle Streams)

Reading time6 min
Views22K


Что делать, если нет дисковой полки под RAC, а отказоустойчивость БД Oracle в реальном времени обеспечить нужно? Настроить потоки данных Oracle (Oracle Streams)!

Про потоки данных написано много. Например, здесь, здесь и здесь, в том числе и в официальной документации. В данной статье описан вариант настроек без использования redo-логов, работающий для редакций Oracle Standard Edition One и Oracle Standard Edition 11gR2 (лицензия на Enterprise позволяет провести настройку проще, прямо в Enterprise Manager Console, см. ограничения).
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments6

PL/SQL через dblink

Reading time15 min
Views65K
On metalink, every one said there's no solution…
Oracle can't do that ...


Приходилось ли Вам реализовывать нестандартные решения? А в Oracle? Мне бы хотелось рассмотреть использование техник, позволяющих лучше узнать принципы работы СУБД, а в совокупности предоставляющие удобство для разработчика.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments9

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity