|
|
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Есть задание: написать прогу на Java, которая бы мониторила БД на Oracle. Прога должна считать входящий/исходящий трафик БД, каждый день отмечать его во внешнем файле, Гб/сут, а в конце месяца делать отчет по суммарному трафику и выдавать размер БД. Под входящим трафиком понимается добавление, изменение, удаление записей и таблиц. Под исходящим - запросы на выборку из БД. Посему вопрос: подскажите как этот трафик считать? может есть готовые классы? И как программно узнать размер БД? Пишется для WinXP и Oracle 10g ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 09:15:22 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Человек, ставивший задачу, имеет хоть малейшее представление о: - протоколе TCP/IP и значении слова трафик; - работе базы данных Oracle. ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 10:44:59 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
представление имеет. просто он не знает сам, как это сделать вот и напряг новичка /: подобные продукты есть, но они платные и исходный код закрыт. значит сделать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:13:15 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Подсчет входящего и исходящего трафика делается довольно элементарно. За 500$ подарю решение для серверной части. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:17:18 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:21:44 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Могу выдать такое количество самой подробной информации, что будешь счастлив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:22:42 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Timm Код: plaintext -1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:23:03 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Ringornпредставление имеет. просто он не знает сам, как это сделать вот и напряг новичка /: подобные продукты есть, но они платные и исходный код закрыт. значит сделать можно. У меня впечатление, что он не только не знает как, он не знает что он хочет. Подсчёт только результатов запросов не даёт всего исходящего трафика. Клиент может конектиться, отваливаться, опять конектиться. Входящий трафик это вообще смешно. Его нельзя так посчитать. Откуда подсчитывающему триггеру знать, новые данные пришли от клиента или являються результатом работы других команд, выполненных на самом сервере? Гораздо лучше с такой задачей может справиться к примеру TMeter, чем армия монтроидальных триггеров на каждую таблицу + батальон fine-grained. Зачем писать данные в какой-то файл, а потом его вычитывать обратно и суммировать, если можно сразу писать в базу? TMeter к слову тоже может писать результаты в базу. Это не реклама, просто пример нормального подхода, а не через жо... Естественно никаких готовых классов под такой маразм нет. Узнать размер БД - элементарно. RTFM. И ещё одно полено в костер - почему выбрана XP в качестве платформы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:30:45 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
skipper13 У меня впечатление, что он не только не знает как, он не знает что он хочет. Подсчёт только результатов запросов не даёт всего исходящего трафика. Клиент может конектиться, отваливаться, опять конектиться. Входящий трафик это вообще смешно. Его нельзя так посчитать. Откуда подсчитывающему триггеру знать, новые данные пришли от клиента или являються результатом работы других команд, выполненных на самом сервере? Гораздо лучше с такой задачей может справиться к примеру TMeter, чем армия монтроидальных триггеров на каждую таблицу + батальон fine-grained. Зачем писать данные в какой-то файл, а потом его вычитывать обратно и суммировать, если можно сразу писать в базу? TMeter к слову тоже может писать результаты в базу. Это не реклама, просто пример нормального подхода, а не через жо... Естественно никаких готовых классов под такой маразм нет. Узнать размер БД - элементарно. RTFM. И ещё одно полено в костер - почему выбрана XP в качестве платформы? Это всё неправильные вопросы. Как хинт — сам Оракл абсолютно точно знает, до байта, сколько, кому и чего он отправил. Нужно просто подобрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:34:35 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Подсчитай для начала входящий трафик для create table sometable ( somefileld1 number, somefield2 varchar2 ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:34:44 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Хрюхрюшкин.... Как хинт — сам Оракл абсолютно точно знает, до байта, сколько, кому и чего он отправил. Нужно просто подобрать. 182 и 183? Не на много прямее путь. ПМСМ проще использовать готовый настраиваемый продукт, чем извращаться с подсчётом статистики по сессиям (а результат не гарантирован). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:45:35 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
RingornЕсть задание: написать прогу на Java, которая бы мониторила БД на Oracle. Прога должна считать входящий/исходящий трафик БД, каждый день отмечать его во внешнем файле, Гб/сут, а в конце месяца делать отчет по суммарному трафику и выдавать размер БД. Под входящим трафиком понимается добавление, изменение, удаление записей и таблиц. Под исходящим - запросы на выборку из БД. Посему вопрос: подскажите как этот трафик считать? может есть готовые классы? И как программно узнать размер БД? Пишется для WinXP и Oracle 10g На JAVA пишется серверная часть (ставим там же, где и Oracle (если база распределенная, да еще с нормальной балансировкой загрузки, то все сложнее)) программа-привратник (уродский PROXY, если хотите), через которую поступают все запросы к базе данных, она с ними ничего не делает/(анализирует,если нужно разбиение по видам запросов, но это все сильно сложнее), а просто тупо считает объем поступивших данных и также тупо умножает его на "КПД" протокола передачи (т.е. учет служебной части трафика, ну, и палец к носу, предположим, что повторы пакетов и т.п. в нормальной локалке минимальны). С отправляемыми данными поступает аналогично. В общем же, смысл этой программы мне лично не ясен, но указанным путем можно накатать желаемого уродца. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:48:35 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
skipper13Подсчитай для начала входящий трафик для create table sometable ( somefileld1 number, somefield2 varchar2 ); Я отправил СУБД 5663 байт и принял от неё 16630 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:51:30 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Хрюхрюшкин.... Как хинт — сам Оракл абсолютно точно знает, до байта, сколько, кому и чего он отправил. Нужно просто подобрать. "№;% совсем об этом забыл :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:52:19 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Это всё потому что PL/SQL Developer. Из-под обычного sqlplus'а результат другой: 2940 отправлено, 2910 принято. Это включая данные, которыми обменивались системы при установлении соединения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:54:02 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
skipper13 182 и 183? Не на много прямее путь. ПМСМ проще использовать готовый настраиваемый продукт, чем извращаться с подсчётом статистики по сессиям (а результат не гарантирован). Что 182 и 183? Я тебе гарантирую абсолютно точный подсчет статистики. Просто нужно понимать, как работает Оракл и что он умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:55:01 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
skipper13Подсчитай для начала входящий трафик для create table sometable ( somefileld1 number, somefield2 varchar2 ); Чистый трафик составил: 2006 байт отправлено 2725 байт принято ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:01:11 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Хрюхрюшкин.Это всё потому что PL/SQL Developer. Из-под обычного sqlplus'а результат другой: 2940 отправлено, 2910 принято. Это включая данные, которыми обменивались системы при установлении соединения. Да ну? В статистику пишутся данные listener'а? Хрюхрюшкин.... Что 182 и 183? statistic# Хрюхрюшкин. Я тебе гарантирую абсолютно точный подсчет статистики. Просто нужно понимать, как работает Оракл и что он умеет. Можно и операционку на бейсике написать. Только зачем? Если есть более прямые методы подсчета трафика. Уж извините, раз пошла такая пьянка - лицензия на TMeter стоит всего-то от $40 до $80. Можно вообще сделать подсчет трафика бесплатно (при наличии пряморукого админа конечно), поскольку наверняка перед сервером стоит управляемый свич. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:07:10 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Вопрос здесь в том, чтобы мониторить полный входящий/исходящий трафик, с чем не может быть никаких проблем. Только разве не было бы полезнее собирать более подробную статистику? Среднее время работы CPU для сессии? среднее количество обращений к диску? Использование буферного кэша, latch'ей? Время простоя из-за блокировок? Количество одновременно работающих сессий в разделении по периодам? Причем все платные пакеты делают ровно то же самое — просто собирают статистику, которую им выдает Оракл и показывают её — в виде красивых картинок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:08:34 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
skipper13 Да ну? В статистику пишутся данные listener'а? Мы считаем трафик БД? skipper13 Хрюхрюшкин.... Что 182 и 183? statistic# RowCR hits? RowCR - row contention? Это здесь при чем? skipper13 Хрюхрюшкин. Я тебе гарантирую абсолютно точный подсчет статистики. Просто нужно понимать, как работает Оракл и что он умеет. Можно и операционку на бейсике написать. Только зачем? Если есть более прямые методы подсчета трафика. Уж извините, раз пошла такая пьянка - лицензия на TMeter стоит всего-то от $40 до $80. Можно вообще сделать подсчет трафика бесплатно (при наличии пряморукого админа конечно), поскольку наверняка перед сервером стоит управляемый свич. Пфффф... Честно говоря, я вообще перестаю понимать смысл затеи автора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:11:26 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
[quot Хрюхрюшкин.]Вопрос здесь в том, чтобы мониторить полный входящий/исходящий трафик, с чем не может быть никаких проблем.[/quote] Могут быть. [quot Хрюхрюшкин.] Только разве не было бы полезнее собирать более подробную статистику? Среднее время работы CPU для сессии? среднее количество обращений к диску? Использование буферного кэша, latch'ей? Время простоя из-за блокировок? Количество одновременно работающих сессий в разделении по периодам?[/quote] Вполне. Но у человека совершенно другая задача стоит. Я не оспариваю пользу статистики для сбора информации о базе. Я подвергаю сомнению оптимальность использования статистики для подсчёта трафика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:12:04 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
Хрюхрюшкин. skipper13 Да ну? В статистику пишутся данные listener'а? Мы считаем трафик БД? А трафик listner'а не имеет никакого отношения к БД? :) Хрюхрюшкин. skipper13 Хрюхрюшкин.... Что 182 и 183? statistic# RowCR hits? RowCR - row contention? Это здесь при чем? bytes sent via SQL*Net to client bytes received via SQL*Net from client Хрюхрюшкин. Пфффф... Честно говоря, я вообще перестаю понимать смысл затеи автора. Я честно говоря тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:15:43 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
skipper13 Я не оспариваю пользу статистики для сбора информации о базе. Я подвергаю сомнению оптимальность использования статистики для подсчёта трафика. Как правило, потом захочется собирать более интересную информацию. Так всегда бывает. А если не захочется, значит всё это изначально было никому не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:16:56 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
skipper13 А трафик listner'а не имеет никакого отношения к БД? :) Кому он интересен? Автор хочет считать, сколько ему придется заплатить провайдеру? Пусть тогда ставит MySQL и на сэкономленные деньги покупает трафик на 10 лет вперед. skipper13 bytes sent via SQL*Net to client bytes received via SQL*Net from client Так сразу бы названия привел. Код из STATISTIC# ничего не значит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:20:37 |
|
||
|
Java+Oracle, подсчет трафика
|
|||
|---|---|---|---|
|
#18+
платные решения не рулят нетстат тоже прокси ставить нельзя /: вещь типа TMeter я могу и на дельфях написать есть большая корпоративная сеть, в ней штук 20 АСУ, сервер приложений и сервер БД могут быть разделены, а могут физически находиться на одном сервере. АСУ тоже "общаются" между собой. статистика нужна на вход и выход каждой, но т.к. АСУ написаны на разных языках проще мониторить саму базу. Всего серверов 5, на контроллер домена ставить прогу нельзя. skipper13 bytes sent via SQL*Net to client bytes received via SQL*Net from client - как я понимаю это посчитает весь входящий и весь исходящий трафик без деления на служебную и полезную инфу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 18:32:03 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=623&tid=2145128]: |
0ms |
get settings: |
17ms |
get forum list: |
28ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
68ms |
get topic data: |
25ms |
get forum data: |
8ms |
get page messages: |
119ms |
get tp. blocked users: |
2ms |
| others: | 315ms |
| total: | 594ms |

| 0 / 0 |
