27 мар. 2008 г.

Трассировка сессий в Oracle

Кратко о включении трэйсов (начиная с 10g):
Куда складываются трэйсы можно увидеть коммандой sqlplus'a:
show parameter user_dump_dest

"Пометить" свой трэйс можно так:
alter session set tracefile_identifier ="alp";

Включить трэйс для текущей сессии:
dbms_monitor.session_trace_enable();
Чтобы в трэйс включались переменные подстановки:
dbms_monitor.session_trace_enable(BINDS => true);
Для чужой сессии нужно знать SID и SERIAL# (смотрится в V$SESSION):
dbms_monitor.session_trace_enable(SID, SERIAL);

Запрос для извлечения полного пути к трэйсу:
select
u_dump.value || '/' ||
db_name.value || '_ora_' ||
v$process.spid ||
nvl2(v$process.traceid, '_' || v$process.traceid, null )
|| '.trc' "Trace File"
from
v$parameter u_dump
cross join v$parameter db_name
cross join v$process
join v$session
on v$process.addr = v$session.paddr
where
u_dump.name = 'user_dump_dest' and
db_name.name = 'db_name' and
v$session.sid = :SID and
v$session.serial# = :SERIAL
/


Не забываем выключать трэйсы с помощью аналогичных disable процедур.
Ну и вообще, смотрим документацию на пакет dbms_monitor.
Можно включать трассировку, например, для всех ссессий с определенным MODULE или ACTION и т.д.

Для обработки трэйсов применяем trcsess для консолидации нужной информации из выбранных трэйсов (удобно при shared соединениях или пулах коннектов). И затем tkprof.

26 мар. 2008 г.

The National - Ada

Вот такое у меня настроение:

25 мар. 2008 г.

Отсылка сообщений в google talk из Oracle

Ответ на комментарий в этом посте.
Прикрутить к Oracle python отсылку соообщений можно легко (начиная с 10g).
В зависимости от операционной системы содадим либо shell скрипт, либо bat. Для примера я использовал Oracle XE на Windows XP. Создаем сначала python скрипт с параметром для текста сообщения:

import sys,os,xmpp
cl=xmpp.Client('gmail.com',debug=[])
cl.connect()
cl.auth('your_name','your_password')
cl.send(xmpp.protocol.Message('your_friend@gmail.com', sys.argv[1]))
cl.disconnect()

Создаем простенький bat-файл (send2gtalk.bat)

c:\Python25\python.exe c:\tmp\send2gtalk.py %1


Дальше в sqlplus выполняем:
exec dbms_scheduler.create_program('SEND2GTALK', 'EXECUTABLE', 'C:\tmp\send2gtalk.bat', 1, FALSE);
exec dbms_scheduler.define_program_argument('SEND2GTALK', 1, 'MESSAGE_TEXT', 'VARCHAR2');
exec dbms_scheduler.enable('SEND2GTALK');
exec dbms_scheduler.create_job('JOB_SEND2GTALK', program_name=>'SEND2GTALK');
exec dbms_scheduler.set_job_argument_value('JOB_SEND2GTALK', 1, '"test text"');
exec dbms_scheduler.run_job('JOB_SEND2GTALK');


Всё. Для отсылки сообщения нужно вызывать последние две команды:
exec dbms_scheduler.set_job_argument_value('JOB_SEND2GTALK', 1, '"test text number 2"');
exec dbms_scheduler.run_job('JOB_SEND2GTALK');


Примечание для Oracle Xe: В оракл XE по-умолчанию служба шедулера выключена. Поэтому для работы нужно стартануть сервис OracleJobSchedulerXE.

21 мар. 2008 г.

Авария



Вот такая вот авария вчера случилась на трассе Прага-Брно. В снежную бурю в общей сложности наколотилось пару сотен аут. В пробке застряли около 20 000 человек.
Такие вот злые шутки бывает шутит Март. И прогнозы на выходные совершенно не радужные..

Понаехало итальяшек.. :)

Вот любопытная статья.
Кратко по-русски:
В Марте в Прагу везут на экскурсии итальянских подростков. У тех видать как раз каникулы. Надо сказать, сам сталкивался на улицах с этими чудиками - лично меня раздражают. Ходят толпами, ведут себя невоспитанно.. и на вид тупые :D. Короче, подростки - че с них возмешь.
Так вот у них развлекалово есть - тырить что ни попадя в магазинах и сувенирных лавках. Собственно об этом и статья. Тырят они не ради самих вещей, и ради адреналина. Хули - подросток не задумывается, что то, что он стырил, потом с кого-то взыщут.
Ну и естественно, максимально, что им грозит - небольшой штраф..
Вот если бы отводили в подсобку, да пару раз в фанеру прописывали, может быть и не хотелось бы такого адреналину, а так - пустое. Тырили и будут тырить. Ну и чехи естественно стонут. И касается это не только магазинов, но и ресторанов и гостиниц, где те также наводят непорядки. Полиция ниче сделать не может...
Вот так вот..

19 мар. 2008 г.

Firefox в Убунте

У файрфокса в линуксах есть одна неприятная особенность - не работают горячие клавиши при включенной русской раскладке. Совершенно случайно наткнулся на решение: Russian hotkeys bugfix

17 мар. 2008 г.

Oracle XE и SQL Developer

Установил впервые себе на винду Oracle 11g XE. Раньше ничего кроме Enterprise или на крайняк Standart не устанавливал.
Впечатления - прикоооольно :) Такая игруха для начинающих! Ну или для тех кому возиться лень с более серьезными дистрибутивами. Запустил инсталятор - всё поставилось, сконфигурилось, пользуйте! Ярлычки старт-стоп базы.. И даже ярлычок бэкап имеется! Чума кароче!
Апекс сразу установлен и включен, правда версии 2.1. Но ничего, тут написано как апгрейтнуть до 3.1, что сразу и было сделано. Чтобы добраться до Application builder'a нужно сначала создать нового пользователя и зайти под ним - только тогда появится ссылка на него.
Подлый SQL Developer при соединении с XE выдал ORA-12705. Чтобы избавится, в файл sqldeveloper.conf нужно добавить строку AddVMOption -Duser.region=US.
Вобщем, для себя XE решил оставить. Пописать для души иногда хочется - а XE позволяет это сделать быстро и удобно.

14 мар. 2008 г.

Удаление архивлогов

Просто для себя памятка по удалению архивлогов (склероз).
Пример:
rman target=sys@database
list archivelog until time 'sysdate-30';
delete archivelog until time 'sysdate-30';

7 мар. 2008 г.

SQL Developer

Ой, 20 февраля вышел долгожданный релиз SQL Developer 1.5. А пацаны то не в курсе!
Поскольку это для меня нынче один из основных инструментов для разработки на ряду с sqlplus и gvim, то я очень рад. Ибо предыдущая версия 1.2.1 уже местами надоела. Надеюсь появилось что-нибудь новое и полезное. Пошел качать....

3 мар. 2008 г.

Радио

Последнее время слушаю на работе RadioParadise. Название конечно какое-то странное, но репертуар подобран очень даже со вкусом. Рекоммендуется к прослушиванию!

The Stranglers - Golden Brown

Вспомнилась еще одна очень хорошая группа, и просто замечательная песня: