wget magic

Чтобы избежать закачки дистрибутива на свою машину, а затем передачи на сервер удобно воспользоваться wget. Однако OTN требует, чтобы перед загрузкой вы согласились с OTN License Agreement, на что wget без вас пойти не может.


Ниже приведена команда для загрузки дистрибутива Oracle Database:

wget --http-user=dsvolk --http-password=*** --load-cookies=cookies.txt http://download.oracle.com/otn/linux/oracle10g/10201/10201_database_linux32.zip


остается маленькая проблемка  - откуда взять cookies.txt ?

Если вы пользуетесь FireFox то для того чтобы получить файл cookies вам может пригодится вот такой plugin.


А чтобы скачать  патч мне не понадобились даже cookies (но все еще нужен  логин и пароль)

wget --http-user=dsvolk --http-password=***  --no-check-certificate --output-document=p6810189_10204_Linux-x86-64.zip "https://updates.oracle.com/Orion/Services/download/p6810189_10204_Linux-x86-64.zip?aru=10029612&patch_file=p6810189_10204_Linux-x86-64.zip"

Внимательные читатели заметят не только мой пароль на OTN, но и также что я скачивал 32-х битную версию БД с 64 битным патчем к ней -)




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

Сплайсинг в PL/SQL через синонимы - в мирных целях

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

Внимание: автор и редакция ответственности за ваши действия НЕ несут. См. УК РФ - статья 273. Создание, использование и распространение вредоносных программ для ЭВМ. Материал предоставлен исключительно в ознакомительных целях, для защиты функционала, а также его расширения для существующих приложений.

Итак, предположим у нас есть приложение, которое не поддерживает RAC. В коде приложения формируется анонимный блок порождающий множество job-ов через пакет DBMS_JOB. Перед этим приложение формирует входные данные для заданий в виде набора заполненных таблиц. При переходе в кластер происходит страшное: задания распределяются по узлам кластера, и происходит большая конкуренция с разных узлов за одни и теже сегменты.
Средствами пакета DBMS_JOB мы не можем заставить задания выполняться на том же узле, на котором они были порождены: этот пакет не "понимает" сервисов, и вообще говоря начиная с 10g НЕ рекомендуется к использованию.

Ну хорошо: мы можем в параметре instance процедуры dbms_job.submit выставить номер текущего узла:
dbms_job.submit(instance => dbms_utility.current_instance,...  ...  ...
Но если код приложения недоступен ?
В этом случае на помощь приходит сплайсинг: мы можем создать свой пакет (например под названием dbms_job_rac) который полностью повторяет спецификацию пакета dbms_job, а тело пакета мы определим по своему - в данном случае вызывая методы из DBMS_JOB и выставляя параметр instance в номер текущего узла.
Затем остается только создать локальный синоним в схеме приложения:
create synonym dbms_job for dbms_job_rac; 

На этом все - теперь приложение не подозревая об этом, будет вызывать наш пакет!

Этот способ работает, даже если код PL/SQL приложения зашифрован или приложение проверяет его контрольную сумму - ведь PL/SQL код НЕ меняется. Перехват управления производится без модификации исходного кода!

Как-то можно противостоять этому красивому перехвату ?
Да - очень просто: указывать вызов системного пакета напрямую, а не через синоним:
SYS.dbms_job.submit( ...
Любой инструмент может быть как орудием созидания, так и орудием разрушения ... :-)


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

setup OpenFiler 2.3 as paravirtualized guest for Oracle VM 2.2

OpenFiler - бесплатный и весьма популярный продукт обеспечивающий вам доступ к вашим дискам по iSCSI, NFS, SAMBA. Я широко его использую как при построении демонстраций, так и как домашний NAS.  При попытке скачать его вы обнаружите что существует даже вариант "Xen domU Filesystem", однако радость будет не долгой - это не образ машины, а  действительно tar с файловой системой.  Есть также вариант называющийся ISO image, но поставить его в Oracle VM не получается, virt-install не находит нужных файлов.

Для того, чтобы превратить tar с файловой системой  в настоящий paravirtualized guest мне понадобились:
  • установленный Oracle VM (2.x), Linux ovm1.us.oracle.com 2.6.18-128.2.1.4.25.el5xen
  • Openfiler 2.3  tar.gz
  • Любая версия Oracle Linux (iso или DVD образ), Я использовал OEL 5 Update 3. 
  • Петр Фатьянов

Шаги который нам придется пройти

- сделать новую вирутальную машину
- распаковать в ней tar с Openfiler
- настроить grub


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

Oracle VM - install gcc

Достаточно часто при попытке использовать Oracle VM после успешной инсталляции оказывается, что необходимо скомпилировать драйвер сетевой карты или multipath драйвер. И драйвер находится на сайте производителя, вот только gcc не устанавливается по умолчанию с Oracle VM. Вот что нужно сделать чтобы исправить это недоразумение (для версии Oracle VM 2.2 ядро 2.6.18-128.2.1.4.25.el5xen):

1. Необходимо с установочного диска Oracle VM (директория Server) установить пакеты:

kernel-devel-2.6.18-128.2.1.4.25.el5.i686.rpm
kernel-ovs-devel-2.6.18-128.2.1.4.25.el5.i686.rpm

2. Далее необходимо скачать с http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/3/base/i386

 compat-glibc-2.3.4-2.26.i386.rpm
 compat-glibc-headers-2.3.4-2.26.i386.rpm
 cpp-4.1.2-44.el5.i386.rpm
 gcc-4.1.2-44.el5.i386.rpm
 glibc-devel-2.5-34.i386.rpm
 glibc-headers-2.5-34.i386.rpm
 kernel-headers-2.6.18-128.el5.i386.rpm
 libgomp-4.3.2-7.el5.i386.rpm 

Обратите внимание, что в моем случае мне понадобились 32 битные версии rpm.


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

семинар RuOUG, 18 апреля

Пожалуйста обратите внимание, что на сайте RuOUG скоро появится -) объявление о следующем семинаре RuOUG, 18 апреля - RuOUG spring seminar. Одним из докладчиков с темой RAC/ASM будет Alex Gorbachev, Oracle ACE Director, Pythian Group. Что немаловажно, Alex будет рассказывать по-русски.  

Я постараюсь приготовить демонстрацию по  защите БД как от логических ошибок так и от аппаратных сбоев   с помощью Oracle Clusterware (бесплатный продукт). Пока деталей больше сообщить не могу, я работаю над демонстрацией/презентацией. 

Если вы хотите выступить свяжитесь пожалуйста со мной или Андреем Криушиным. Обратите внимание, чтобы принять участие нужно быть участником RuOUG (ссылка на регистрацию).

Update 1. Место проведения:  офисе Oracle, в Москве: Пресненская наб 10, (Краснопресненская наб 18), Москва-Сити, бизнес-центр "Башня на Набережной" , Блок С,  9 этаж. 

Update 2. Регистрация будет по email, детали я ожидаю увидеть на сайте RuOUG.


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