Oracle - полный ацстой

User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

Mark wrote:Дык Вы перестаньте сервер на пол ронять :)
Gennadiy wrote:Вот только падает часто. Эпилептик видно.... :wink:

Надо будет завести коллекцию скриптов которые гробят Oracle. Я конечно понимаю, что мол не надо кривые скрипты писать, но где же это видано, что бы select statement убивал сервер напрочь. Какое раздолье для хакеров - достаточно иметь read-only права и можно гасить продакшен сервер.
sp123
Уже с Приветом
Posts: 1962
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Post by sp123 »

Gennadiy wrote:
Mark wrote:Дык Вы перестаньте сервер на пол ронять :)
Gennadiy wrote:Вот только падает часто. Эпилептик видно.... :wink:

Надо будет завести коллекцию скриптов которые гробят Oracle. Я конечно понимаю, что мол не надо кривые скрипты писать, но где же это видано, что бы select statement убивал сервер напрочь. Какое раздолье для хакеров - достаточно иметь read-only права и можно гасить продакшен сервер.


Насчет хакеров проблема решается просто - все общение с базой можно организовать через хранимые процедуры, которые будут писать толковые люди, а живые таблицы никому не показывать. А вообще-то интересно - как поведут себя те же DB2 или SQL Server в случае непонятно откуда взявшеейся атаки, представляющей собой кучу тяжелых запросов? Да, select - это операция чтения, но все-таки это не совсем fseek, там во время выполнения очень много чего СОЗДАЕТСЯ на заднем плане.
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

zVlad wrote:JustMax, спасибо, а Вы сами то смотрели на цифирьки, то? Например, цена транзакции под MSSQL самая низкая в первой пятёрке - $6.49, а цена транзакции между 1-м (Оракл) и 4-м (DB2) меcтом в пользу DB2, при том что Оракл опережает по количеству транзакций в секунду меньше чем на 10% (на вскидку).


Мы за ценой не постоим(с) :)
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Привет sp123. Ну как там Оракл Мир конференция? Ларика видел? Ты пишешь:

"Насчет хакеров проблема решается просто - все общение с базой можно организовать через хранимые процедуры, которые будут писать толковые люди, а живые таблицы никому не показывать. А вообще-то интересно - как поведут себя те же DB2 или SQL Server в случае непонятно откуда взявшеейся атаки, представляющей собой кучу тяжелых запросов?"

Sp123, надо ли понимать, что кто-то может не иметь полномочий на операции с таблицами, но иметь полномочия на вызов хр. процедуры, которая имеет полномочия эти полномочия? И таким образом мы отменяем прямой доступ к таблице. Правильно?

Не очень понятно что имеется в виду под "...кучей тяжелых запросов". Наверное тяжелых в смысле ресурсов, нужных для их выполнения? Не знаю что есть на это в MS SQL, в DB2 есть governor, типа надсмотрщика, которому можно, например, сказать: убивай все запросы, которые потребляют больше 10 секунд CPU, и естествено фиксируй информацию об этом в журнале. К слову сказать есть еще один парень, который может присматривать за выполнением DDL операторов, и на основании правил, заданых нами, будет либо выполнять DDL, либо отвергать, либо оставлять этот вопрос на усмотрение так называемых "closed applications".

Интересуюсь спросить, а в Оракл что-нибудь вроде приведенного выше имеется?
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

JustMax wrote:
zVlad wrote:JustMax, спасибо, а Вы сами то смотрели на цифирьки, то? Например, цена транзакции под MSSQL самая низкая в первой пятёрке - $6.49, а цена транзакции между 1-м (Оракл) и 4-м (DB2) меcтом в пользу DB2, при том что Оракл опережает по количеству транзакций в секунду меньше чем на 10% (на вскидку).


Мы за ценой не постоим(с) :)


В TPC-H видим три первых результа за DB2. B ТРС-R один результат - Оракл. В TPC-W все первые места за MS SQL. Интересный этот TPC!

А если смотреть Price/Performance, то вообще только MS SQL и Sybase увидим.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

oMoses wrote:Дима, а ты что-то давно не писал о прелестях Парижа и работы там...
Или я просмотрел что-то, бегая по высоким северным широтам?


Да нормально все
Вот писал вроде что перешел на другую работу


А по поводу SQL*Plus - он еще жив ?
Мое знакомство с Oracle началось так
Помню вижу как коллега получает результат select в таком виде (бардак на экране намеряный, результат переноса длинных строк)

Code: Select all

ColumnA Column B Colu
mnC ColumnD
------------- --------------  -------
------ -------------
Value1    Value2      Val
ue3    Value4


Я сказал коллеге - а утилиты с GUI нет какой нибудь ? Ом мне показал одну утилиту. Все тип топ, кое какой графический интерфейс даже с корявыми и разъезжающимися шрифтами JAVA. Запускаю тотже select. результат такой же отстойный ! Оказалось что эта штука из под себя запускает все тот же SQL*Plus.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

zVlad wrote:Не знаю что есть на это в MS SQL, в DB2 есть governor, типа надсмотрщика, которому можно, например, сказать: убивай все запросы, которые потребляют больше 10 секунд CPU, и естествено фиксируй информацию об этом в журнале.

Дело в том, что этот select (если точнее то, это была SP которая делала select и формировала XML по данным) - убивала сервер на за 10 секунд, а за доли секунды - практически мгновенно. Ребята из Oracle были сильно удивлены - пришлось им послать эту процедурку.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Gennadiy, я то понял что ты имел в виду. В этом случае governor не имеет никакого смысла. Но я отвечал Sp123 на вопрос, что если атаковать DB2 "дурными запросами" пожирающими ресурсы. Типа нагнется сервер или как-то с этим можно бороться. В DB2 с этим бороться можно. А как у других дела?
sp123
Уже с Приветом
Posts: 1962
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Post by sp123 »

zVlad wrote:Привет sp123. Ну как там Оракл Мир конференция? Ларика видел?


Не видел, но почему-то от этого не расстроился :). Выставка у меня вышла галопом по европам, было очень мало времени, часа три, но какое-то впечатление сложилось. 10g революционной явно не является, просто множество фич тут и там, довольно приятных, но не из разряда качественных скачков 6, 7 и 8 версий. В-основном в плане DBA-ства. Вот, говорит, у меня 100 баз в разных местах, и если мне надо upgrade версии, то я это могу делать теперь одним движением руки. Продвинули Enterprise Manager, теперь он весь из себя web-образный, явно много диагностики и тюнинга. Понравилась фича, когда не просто выдается репорт о наиболее "дорогих" запросах, но и предлагаются советы, как его улучшить - типа, вот тут создайте индекс, вот тут перепишите подзапрос вот так, и будет вам щастье и вот такой execution plan, а вот здесь есть кнопка "implement", и мы вам щас кое-что на лету улучшим. Уходит хинт "rule", это уже серьезно. Слово self-manageable внушает оптимизм, но насколько оно self - это только на практике. Похоже, неплохо поработали над Application Server, но мне это не интересно. IMHO, выпуск новых версий каждый год - это маленько перебор, тут народ еще насчет перехода на 9.2 в основной своей массе не определился, а ему уже предлагают купить слово "grid". Конечно, выводы делать рано, информации много, надо копать.

Ты пишешь:

"Насчет хакеров проблема решается просто - все общение с базой можно организовать через хранимые процедуры, которые будут писать толковые люди, а живые таблицы никому не показывать. А вообще-то интересно - как поведут себя те же DB2 или SQL Server в случае непонятно откуда взявшеейся атаки, представляющей собой кучу тяжелых запросов?"

Sp123, надо ли понимать, что кто-то может не иметь полномочий на операции с таблицами, но иметь полномочия на вызов хр. процедуры, которая имеет полномочия эти полномочия? И таким образом мы отменяем прямой доступ к таблице. Правильно?


Именно так. Конечно, если уже есть приложение, явно использующее sql стейтменты, то никуда не деться. Но если есть возможность, то подход очень неплох.

Не очень понятно что имеется в виду под "...кучей тяжелых запросов". Наверное тяжелых в смысле ресурсов, нужных для их выполнения? Не знаю что есть на это в MS SQL, в DB2 есть governor, типа надсмотрщика, которому можно, например, сказать: убивай все запросы, которые потребляют больше 10 секунд CPU, и естествено фиксируй информацию об этом в журнале. К слову сказать есть еще один парень, который может присматривать за выполнением DDL операторов, и на основании правил, заданых нами, будет либо выполнять DDL, либо отвергать, либо оставлять этот вопрос на усмотрение так называемых "closed applications".

Интересуюсь спросить, а в Оракл что-нибудь вроде приведенного выше имеется?


Тяжелый запрос - это когда, к примеру, идет full scan огромной таблицы, по каждой выбранной записи вызывается функция, внутри которой находится еще какой-нибудь select, и все это запускается с интервалом в несколько секунд. Убивать дорогостоящий запрос автоматом - не проблема, тут даже чего-то особенного не надо, но тогда начальсто прибьет тебя самого из соображений бизнес-логики :). Имелось в виду что-то навроде вот этого:

------------------------------------------------
The Database Resource Manager solves many resource allocation problems that an operating system does not manage so well:

Excessive overhead. This results from operating system context switching between Oracle server processes when the number of server processes is high.

Inefficient scheduling. The operating system deschedules Oracle database servers while they hold latches, which is inefficient.

Inappropriate allocation of resources. The operating system distributes resources equally among all active processes and is unable to prioritize one task over another.

Inability to manage database-specific resources

With Oracle's Database Resource Manager, a database administrator can:

Guarantee certain users a minimum amount of processing resources regardless of the load on the system and the number of users

Distribute available processing resources by allocating percentages of CPU time to different users and applications. In a data warehouse, a higher percentage may be given to ROLAP (relational on-line analytical processing) applications than to batch jobs.

Limit the degree of parallelism of any operation performed by members of a group of users

Create an active session pool. This pool consists of a specified maximum number of user sessions allowed to be concurrently active within a group of users. Additional sessions beyond the maximum are queued for execution, but you can specify a timeout period, after which queued jobs terminate.

Allow automatic switching of users from one group to another group based on administrator-defined criteria. If a member of a particular group of users creates a session that runs for longer than a specified amount of time, that session can be automatically switched to another group of users with different resource requirements.

Prevent the execution of operations that are estimated to run for a longer time than a predefined limit

Create an undo pool. This pool consists of the amount of undo space that can be consumed in by a group of users.

Configure an instance to use a particular method of allocating resources. You can dynamically change the method, for example, from a daytime setup to a nighttime setup, without having to shut down and restart the instance.
------------------------------------------------

К сожалению, я далеко не DBA, поэтому в детали ударяться не буду, чтобы не сесть в лужу. На самом деле "решать" проблему методом priority downgrade - в корне неправильная вещь, разве что в каком-нибудь пожарном случае. Но именно для пожарного случая иногда иметь такое необходимо.
sp123
Уже с Приветом
Posts: 1962
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Post by sp123 »

Gennadiy wrote:
zVlad wrote:Не знаю что есть на это в MS SQL, в DB2 есть governor, типа надсмотрщика, которому можно, например, сказать: убивай все запросы, которые потребляют больше 10 секунд CPU, и естествено фиксируй информацию об этом в журнале.

Дело в том, что этот select (если точнее то, это была SP которая делала select и формировала XML по данным) - убивала сервер на за 10 секунд, а за доли секунды - практически мгновенно. Ребята из Oracle были сильно удивлены - пришлось им послать эту процедурку.


Так и запишем - не надо работать с XML в stored procedures :). В нашей конторе от этой идеи быстро отказались из соображений performace, а оно оказывается еще и вон как бывает... А можно сюда куда-нибудь эту процедурку выложить? Край интересно, кроме шуток.
sp123
Уже с Приветом
Posts: 1962
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Post by sp123 »

Dmitry67 wrote:
oMoses wrote:Дима, а ты что-то давно не писал о прелестях Парижа и работы там...
Или я просмотрел что-то, бегая по высоким северным широтам?


Да нормально все
Вот писал вроде что перешел на другую работу


А по поводу SQL*Plus - он еще жив ?
Мое знакомство с Oracle началось так
Помню вижу как коллега получает результат select в таком виде (бардак на экране намеряный, результат переноса длинных строк)

Code: Select all

ColumnA Column B Colu
mnC ColumnD
------------- --------------  -------
------ -------------
Value1    Value2      Val
ue3    Value4


Я сказал коллеге - а утилиты с GUI нет какой нибудь ? Ом мне показал одну утилиту. Все тип топ, кое какой графический интерфейс даже с корявыми и разъезжающимися шрифтами JAVA. Запускаю тотже select. результат такой же отстойный ! Оказалось что эта штука из под себя запускает все тот же SQL*Plus.


Наезд не в тему. Дима, передай своему коллеге, что он отморозок :). На экране бардак - значит, не знает, что есть слово spool. Типа, шутка. Что до GUI, то тут как раз все с точностью до наоборот. Очень все круто. Я сейчас пользуюсь вот этим: http://www.allroundautomations.nl/plsqldev.html
Есть еще куча всего, типа SQL*Navigator, SQL*Station, тот же TOAD.

А sql*plus - вещь незаменимая, и никогда не пропадет, потому что далеко не все задачи решаются тыканием мышой.
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

sp123 wrote:Так и запишем - не надо работать с XML в stored procedures :). В нашей конторе от этой идеи быстро отказались из соображений performace, а оно оказывается еще и вон как бывает... А можно сюда куда-нибудь эту процедурку выложить? Край интересно, кроме шуток.

Sorry - у нас в конторе одного мужика уволили за выкладывание продакшн кода в конференции. Я не рискну. Тем более, что Оракл уже этот баг исправил (по моему в 9.1).
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

sp123 wrote:Я сейчас пользуюсь вот этим: http://www.allroundautomations.nl/plsqldev.html
Есть еще куча всего, типа SQL*Navigator, SQL*Station, тот же TOAD.

plsql developer это класная штука. После него пришлось пользоватся TOAD - не перестаю плеваться. :х
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

sp123 wrote:
Gennadiy wrote:
zVlad wrote:Не знаю что есть на это в MS SQL, в DB2 есть governor, типа надсмотрщика, которому можно, например, сказать: убивай все запросы, которые потребляют больше 10 секунд CPU, и естествено фиксируй информацию об этом в журнале.

Дело в том, что этот select (если точнее то, это была SP которая делала select и формировала XML по данным) - убивала сервер на за 10 секунд, а за доли секунды - практически мгновенно. Ребята из Oracle были сильно удивлены - пришлось им послать эту процедурку.


Так и запишем - не надо работать с XML в stored procedures :). В нашей конторе от этой идеи быстро отказались из соображений performace, а оно оказывается еще и вон как бывает... А можно сюда куда-нибудь эту процедурку выложить? Край интересно, кроме шуток.

А иногда без ХМЛ и не обойтись. Кешированием надо подстраховыватся. По узким полям. А чисто ХМЛ обрабатывать - ясен пень должно медленно.
Верить нельзя никому - даже себе. Мне - можно!
User avatar
Mark
Уже с Приветом
Posts: 1982
Joined: 10 Oct 2000 09:01
Location: New England

Post by Mark »

Gennadiy wrote:Sorry - у нас в конторе одного мужика уволили за выкладывание продакшн кода в конференции. Я не рискну. Тем более, что Оракл уже этот баг исправил (по моему в 9.1).

Sorry - но такой версии в продакшн не выходило
был 9i R1 = 9.0.1
и 9i R2 = 9.2.0
так что наверное это 9.2

Теперь по поводу так заинтересовавшей всех процедурки - Ваш босс абсолютно прав - не фиг код выкладывать, но Вы просто можете назвать номер бага (если этот баг пофиксен - то его описание имеет статус External и оттуда удалена вся служебная информация - саппорт специально за этим следит) и те кому интересно посмотрят инфу в Металинке

Return to “Вопросы и новости IT”