30 ноября 2012 г.

oracle: JDBC Thin Client in v$session

Заметки о том как отображаются сессии от JDBC Thin Client в v$session

Если попытаться посмотреть информацию о JDBC Thin Client в v$session, то всегда v$session.process = 1234

SELECT s.program,s.process, s.sid, s.seq#, s.event
  FROM v$session s


JDBC Thin Client1234489429653db file sequential read


Почему так происходит, почему PID клиентского процесса в OS всегда 1234 в случае с JDBC Thin Client ?

Ответ:


How to Set V$SESSION Properties Using the JDBC Thin Driver [ID 147413.1]

Note: The JDBC driver cannot correctly retrieve the values of some V$SESSION
properties on its own. Specifically, the driver exhibits the following behavior:

 - When querying the TERMINAL field of the V$SESSION table using the JDBC
Thin driver, the value returned is "unknown".

- When querying the PROCESS field of the V$SESSION table using the JDBC
Thin driver, the value returned is "1234".

- The driver returns the process ID as "1234" by default, since obtaining
a process ID is not possible using the JDBC Thin driver.




Java developer can provide value in code (if code change is an option) using Java Properties when creating JDBC connection:
         prop.put("v$session.process", clientProcess);
         prop.put("v$session.program", programName);

9 октября 2012 г.

oracle 11g: ADRCI утилита для анализа диагностики

В Oracle 11 произошли некоторые изменения в alert.log, теперь он представляет собой xml файл, но можно и найти его в текстовом виде ( искать в папке ../traces).

Появилась текстовая утилита ADRCI, которая позволяет работать с диагностическими данными, сообщениями и ошибками в alert.log.
Почитать об ADRCI можно тут и тут (или погуглить).

Для примера пару комманд:
$ adrci

adrci> SHOW INCIDENT -last 10

ADR Home = /oradump/diag/rdbms/cust1/cust1:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME
-------------------- ----------------------------------------------------------- ----------------------------------------
383543               ORA 600 [25027]                                             2012-09-18 01:02:56.410000 +03:00
383542               ORA 600 [kghstack_underflow_internal_1]                     2012-09-18 01:02:44.434000 +03:00



adrci> SHOW INCIDENT -MODE DETAIL -P "INCIDENT_ID=383543"

Утилита имеет справку:
$ adrci

adrci> HELP


5 августа 2012 г.

20 июня 2012 г.

windows: uptime

Как узнать uptime в windows

Start -> Run -> cmd
И в консоли набрать:
net statistics server
или немного сокращённо:
net stats srv

Uptime идёт после слов "Статистика после..." (Statistics since...)

14 июня 2012 г.

unix: lsof

Использование утилиты lsof в unix:


1. Просмотр всех соединений IPv4
$ lsof -i 4 -a

2. Просмотр всех соединений IPv4, открытых процессом с PID = 1234
$ lsof -i 4 -a -p 1234

3 .Список открытых файлов на устройстве /dev/sda1
$ lsof /dev/sda1

4. Кто не отдаёт cdrom
$ lsof /dev/cdrom

5. Список всех файлов открытых юзером
$ lsof -u guppi

6. Какой процесс использует данный файл?
$ lsof /etc/passwd

7. Какие ресурсы использует процесс?
$ lsof -c mc
или
$lsof -p pid




12 июня 2012 г.

aix: настройка iSCSI инициатора в AIX 5.3

Wiki: http://en.wikipedia.org/wiki/ISCSI

В 2-х словах:
- позволяет подключать диски к серверу по Ethernet,
- target - сервер, который предоставляет дисковое пространство,
- initiator - клиент, который использует дисковое пространство.

1. Настройка инициатора
Настроить можно с помощью smit

1) Выберите Devices.
2)  Выберите  iSCSI.
3)  Выберите  iSCSI Protocol Device.
4)  Выберите  Change / Show Characteristics of an iSCSI Protocol Device.
Выберите устройство, которое ассоциировано с iSCSI инициатором, например, iscsi0.
Задайте Initiator Name (IQN), это имя  задается по определённому формату (см. Wiki).
Придумаем следующее имя: iqn.2012-06.com.test
Это имя используется при подсоединению к  iSCSI target.

Сохраняем настройки.

Сообщаем администратору target сервера наш iqn (iqn.2012-06.com.test).

В ответ он должен, сконфигурировать CHAP авторизацию для нашего инициатора, и прислать ip- адрес, iqn - имя таргета и пароль для CHAP авторизации.
Например:
ip - 192.168.0.1,
iqn - iqn.2000-01.com.hp:storage.p1000g4.5001caf1eb
password - iscsi_password

После этого редактируем на инициаторе файл /etc/iscsi/targets, а именно добавляем наш таргет для CHAP авторизации, примеры есть в самом файле /etc/iscsi/targets:
192.168.0.1    3260   iqn.2000-01.com.hp:storage.p1000g4.5001caf1eb    "iscsi_password"


Сохраняем файл и переходим к п.2

2. Подключение диска

Если мы всё сделали правильно в п.1 и настроена маршрутизация между клиентом и сервером, то:
1) Вводим команду:
$ cfgmgr -v -l iscsi0

При вводе этой команды драйвер попытается соединиться с целевыми устройствами, перечисленными в файле /etc/iscsi/targets, и определить новый жесткий диск (hdisk) для всех LUN на найденных целевых устройствах.

2) Проверяем, что новый жесткий диск определился:
$ lsdev -Ccdisk |grep iSCSI
hdisk6      Available              Other iSCSI Disk Drive

$ lspv hdisk6

$ lsattr -El hdisk6

3) Cделаем volume group, где iscsivg - имя группы, которое придумываем сами:
$ mkvg -y iscsivg hdisk6

4) Информация о группе, смотрим на Total PPs, чтобы знать какого размера делать логический volume(-мы):
$ lsvg iscsivg

Посмотреть какие логические volume(-мы) уже есть
$ lsvg -l iscsivg

5) Создаем logical volume, где
iscsi_vol01 - имя нового logical volume,
jfs2 - тип файловой системы,
3715 - размер  logical volume  (Total PPs из предыдущей команды п.4) 

$ mklv -t jfs2 -y iscsi_vol01 iscsivg 3715

6)  Включаем Auto Varyon = No, делаем это потому что функция varyonvg после рестарта выполняется раньше, чем инициализируется tcp/ip ( сам не проверял порядок )

$ chvg -a n iscsivg

7) Создаем файловую систему на volume, где
-d iscsi_vol01 - на какой волуме,
-m /mnt/iscsifs - точка монтирования
-A no - не монтировать файловую систему после рестарта,
-a logname=INLINE  - jfs2 лог на том же волуме что и сама файловая jfs2:

$ crfs -v jfs2 -d iscsi_vol01 -m /mnt/iscsifs -A no -u iscsi -a logname=INLINE

8) Монтируем


$ mount /mnt/iscsifs


3. Монтирование после рестарта


1) Проверяем
$ lspv

2) Включаем группу
$ varyonvg iscsivg

3) Монтируем
$ mount /mnt/iscsifs


1 июня 2012 г.

oracle: show list of dbms packages

Посмотреть список dbms пакетов:
SELECT DISTINCT name,TYPE
FROM dba_source
WHERE name LIKE 'DBMS_%'
ORDER BY name;