Oracle 11g автоматическое управление памятью
— попутная ошибка ORA-48913 вызвана ограничением размера трейса:
, в отличие от описания выраженного в блоках ОС = 512 байт (Oracle 11.1.0.7 Linux x86_64) — см. [ID 30762.1]
Трейс /opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_9219.trc достаточно быстро указывает на причину ошибки ORA-600 [kglUnKeepHandle]: (more…)
Комментарии к записи ORA-00600: [kglUnKeepHandle] при превышении лимита количества дочерних курсоров отключены
Защита данных в СУБД Oracle
В наши дни многие традиционные меры обеспечения безопасности информации баз данных oracle, в основном организационные, давно исчерпали себя. Развитие техники и технологий идет ускоренными темпами, вооружение злоумышленников становится все лучше, как технически, так и профессионально, и это заставляет создавать все более совершенные способы охраны конфиденциальных данных.
Временные таблицы в Oracle
Временные таблицы впервые появились в Oracle8I. Они предназначались для хранения данных на протяжении сеанса или транзакции. Отличительной особенностью этих таблиц являлось то, что они располагались во временных сегментах и данные в этих таблицах хранились только на период сессии или транзакции в зависимости от реализации. Поэтому они нашли большое применение в качестве промежуточных таблиц при расчётах, отчетах и оптимизации сложных запросов.
Планировщик заданий в Oracle
СУБД Oracle - большой и сложный механизм, требующий выполнения определенных плановых работ, таких как сбор статистики о хранимых объектах или сбор/чистка внутренней информации. Необходимость осуществлять плановый запуск работ могут испытывать и пользователи БД.
Oracle 11g: автоматическое управление памятью (ASMM) и serial direct read
Ничем (или недостаточно) ограниченный механизм Automatic Shared Memory Management (ASMM), динамически меняя размеры пулов SGA, может заставить Oracle переключаться между режимами direct path read и кэшированного чтения (через buffer cache SGA), что, в свою очередь, может неожиданно, но вполне заметно влиять на время выполнения типовых запросов
И, хотя в документе High ‘direct path read’ waits in 11g [ID 793845.1] описывается чудесное автоматическое переключение между этими режимами, в зависимости от динамически изменяющегося размера buffer cache:
When ASMM increases the buffer cache due to increased demand, 11g might not again do serial direct path read scans for these same large tables
— в действительности, это только пожелание или план работ на будущее — по крайней мере в версии 11.1.0.7.2 :)
Далее — небольшой практический пример
Комментарии к записи Oracle 11g: автоматическое управление памятью (ASMM) и serial direct read отключены
SQL Plus: Создание и выполнение сценариев
Обзор новых возможностей Oracle Database 11g
Размеры баз данных увеличиваются каждые 2 года примерно в три раза. При этом руководители ИТ-отделов сталкиваются с новыми проблемами: Как обеспечивать обслуживание пользователей в случае сбоя на сервере, устройстве хранения или в сети? Как обеспечивать целостность информации и соответствие нормативным требованиям? Как хранить, управлять и защищать все виды информации, совмещая это с ежедневной деловой деятельностью? Как масштабировать огромные транзакционные системы и хранилища данных, гарантируя при этом производительность, надежность и управляемость? И как обновлять программное обеспечение и модернизировать аппаратные средства с минимальным риском потери работоспособности системы? Oracle Database 11 g помогает устранить эти проблемы, реализуя широкий набор новых функций и усовершенствований. Продукт расширяет уникальные преимущества технологии grid-вычислений Oracle, что позволяет вам повысить уровень обслуживания пользователей, сократить время простоя и более эффективно использовать информационные ресурсы, увеличивая производительность, масштабируемость и безопасность бизнес-приложений в режиме 24/7.
Производительность PL/SQL
Эта статья рассказывает о том, как inline-подмена, Real native compilation и использование simple_integer могут улучшить производительность кода. Oracle Database 11g представляет несколько отличных новых возможностей для повышения производительности PL/SQL-кода, однако наиболее существенные из них – это native compilation (компиляция с получением исполняемого кода) и intra-unit inlining (подмена).
Управление табличными пространствами в Oracle Database
Производительность PL/SQL
Эта статья рассказывает о том, как inline-подмена, Real native compilation и использование simple_integer могут улучшить производительность кода. Oracle Database 11g представляет несколько отличных новых возможностей для повышения производительности PL/SQL-кода, однако наиболее существенные из них – это native compilation (компиляция с получением исполняемого кода) и intra-unit inlining (подмена).
Автоматическое управление памятью в Oracle 11g
Новая роль SYSASM для управления экземпляром ASM, переменный размер экстента для уменьшения использования разделяемого пула (shared pool) и возможность экземпляра читать с конкретного диска дисковой группы – вот лишь несколько замечательных новых возможностей, появившихся в базе данных Oracle 11g ASM.
Оптимизация Rails для Oracle
Используя инфраструктуру Ruby on Rails, можно относительно просто разработать сложные системы, которые будут поддерживаться базой данныхOracle, но эта простота не освобождает разработчика от необходимости оптимизировать модель данных и код, реализующий модель.
Использование Oracle Berkeley DB Java Edition как менеджера хранения объектов для Google Web Toolkit
Стандартное для Java Platform Enterprise Edition (Java EE) решение в Web -приложениях для хранения объектов (OP - object persistence) заключается в использовании Enterprise JavaBeans (EJB), техники объектно-реляционного отображения (object - to - relational mapping - ORM). Java -объекты транслируются в/из SQL -предложения и запоминаются в базе данных реляционной СУБД как строки в таблицах базы данных. Это наиболее типичный подход по следующей причине. Большинство пользователей обнаруживают, что многие аспекты деятельности их организаций зависят от SQL и серверов реляционной СУБД Oracle при управлении критически важной информацией. В этих случаях EJB и интерфейс Java Persistence API (JPA) являются наилучшими подходами для хранения объектов. Пользователи совместно используют Java -приложения и существующие приложения, "говорящие" на одном и том же языке SQL , чтобы получить доступ к одним и тем же данным базы.
Защита Oracle E-Business Suite
Том Кайт о сервере Oracle Database 11g
В течение следующих нескольких месяцев я буду изучать новые функциональные возможности, появившиеся в самой последней версии сервера базы данных Oracle Database - Oracle Database 11g. Их так много, что трудно выбрать, с чего же начать. Поэтому я поговорил с Брином Лльюеллином (Bryn Llewellyn), менеджером по PL/SQL-продуктам, и он сообщил мне о паре прекрасных новых возможностях в языках SQL и PL/SQL.
ASMM: ORA-04031 и «cursor: pin S wait on X»
Oracle 11.1.0.7.2, Linux x86_64 с работающим Automatic Shared Memory Management (ASMM), некластерный инстанс с меняющимся профилем нагрузки
Периодические ошибки ORA-04031, с записями в alert.log:
Задача автоматической настройки распределения SGA также страдает в результате недостатка свободной памяти в shared pool — системный процесс MMON по-честному, через общедоступный SQL-интерфейс пытается выполнять задачи и получает ошибки (никаких backdoors ;) — из трейса процесса MMON: (more…)
Том Кайт о сервере Oracle Database 11g
В течение следующих нескольких месяцев я буду изучать новые функциональные возможности, появившиеся в самой последней версии сервера базы данных Oracle Database - Oracle Database 11g. Их так много, что трудно выбрать, с чего же начать. Поэтому я поговорил с Брином Лльюеллином (Bryn Llewellyn), менеджером по PL/SQL-продуктам, и он сообщил мне о паре прекрасных новых возможностях в языках SQL и PL/SQL.
Автоматическое управление памятью в Oracle 11g
Новая роль SYSASM для управления экземпляром ASM, переменный размер экстента для уменьшения использования разделяемого пула (shared pool) и возможность экземпляра читать с конкретного диска дисковой группы – вот лишь несколько замечательных новых возможностей, появившихся в базе данных Oracle 11g ASM.
Средства диагностики и утилиты отладки в Oracle
Для правильной диагностики проблем СУБД Oracle необходимо знать утилиты отладки, предоставляемые Oracle. Необходимо понимать такие операции, как чтение дампов управляющего файла или файлов трассировки.
Ручное создание базы данных в Oracle 11g
Ручное создание базы является одним из показателей профессионализма DBA. Как правило используется мастер создания, предлагаемый Oracle.
RDM Server FAQ
Ручное создание базы данных в Oracle 11g
Ручное создание базы является одним из показателей профессионализма DBA. Как правило используется мастер создания, предлагаемый Oracle.
Oracle и регулярные выражения
Я познакомился с регулярными выражениями давным-давно, программируя на Perl или скриптовой оболочке unix с помощью команд awk и sed. Также, если Вы используете vi редактор, то можете быть знакомыми с регулярными выражениями и сравнением с образцом. Регулярные выражения в действительности представляют собой маленький язык программирования, который предназначен для поиска символьных образцов в текстовой строке. Если честно, когда я начал использовать сравнение с образцом в мои дни Perl, оно показалось мне весьма путаным. Главным образом, потому что было столь много изменений и вариантов, что я не знал, как начать. Хотя спустя некоторое время, я приобрел некоторые навыки. И Вы сможете также. Наберитесь терпения прочесть эту статью и понять, насколько мощным может быть это сравнение с образцом.
Временные таблицы в Oracle
Временные таблицы впервые появились в Oracle8I. Они предназначались для хранения данных на протяжении сеанса или транзакции. Отличительной особенностью этих таблиц являлось то, что они располагались во временных сегментах и данные в этих таблицах хранились только на период сессии или транзакции в зависимости от реализации. Поэтому они нашли большое применение в качестве промежуточных таблиц при расчётах, отчетах и оптимизации сложных запросов.
Настройка автоматического управления памятью
Представление V$MEMORY_DYNAMIC_COMPONENTS служит для проверки текущих размеров компонентов памяти, таких как SGA и PGA. Совет по настройке для установки параметра MEMORY_TARGET можно получить из представления V$MEMORY_TARGET_ADVICE, как показано в следующем примере:
Строка, где значение MEMORY_SIZE_FACTOR равно 1, показывает текущее выделение памяти экземпляру, осуществленное установкой параметра MEMORY_TARGET. Значения всех столбцов соответствует альтернативным гипотетическим уровням параметра MEMORY_TARGET. В нашем примере не будет преимуществ от увеличения значения параметра MEMORY_TARGET сверх его текущего значения в 615 Мбайт, основанного на текущей рабочей нагрузке базы данных.
Информационная безопасность Oracle 9i
В данной работе представлено несколько простых шагов по защите баз данных oracle 9i. Особое внимание уделяется последним изменениям, сделанным в oracle 9i, которые могут быть полезны для защиты систем баз данных oracle.
Oracle BI: Ключевые возможности и преимущества
Oracle Business Intelligence Suite Enterprise Edition Plus (OBISEE Plus) - один из лидирующих продуктов на рынке business intelligence. Этот пакет представляет собой серьезную BI-платформу, обеспечивающую необходимую основу для корпоративного управления эффективности (EPM - Enterprise Performance Management). Предыдущая версия - Oracle Business Intelligence Suite Enterprise Edition (OBISEE) - была разработана компанией несколько лет назад на базе продукта приобретенной компании Siebel. В новой модификации внесен ряд дополнений, в том числе интеграция многомерными источниками данных (такими как Essbase), и клиенто-центричный подход к запросам и отчетности.
Управление SQL-планами в Oracle Database 11g
Производительность любого приложения базы данных в большой степени опирается на выполнение им запросов. Хотя оптимизатор Oracle идеально подходит для оценки наилучшего возможного плана без какого-либо вмешательства пользователя, план выполнения SQL-оператора может неожиданно измениться по множеству причин, включая повторный сбор статистики оптимизатора, изменение параметров оптимизатора или определений схемы и/или метаданных.
SQL Plus: Создание и выполнение сценариев
06.09.2011
RDM Embedded FAQ
Планировщик заданий в Oracle
СУБД Oracle - большой и сложный механизм, требующий выполнения определенных плановых работ, таких как сбор статистики о хранимых объектах или сбор/чистка внутренней информации. Необходимость осуществлять плановый запуск работ могут испытывать и пользователи БД.
29.10.2011
ASMM в Oracle 10.2, online отключение в RAC окружении: результаты
В продолжение предыдущей истории с отключением ASMM интересно посмотреть, что получилось в итоге (по отчётам AWR и статистики ОС)
при включенном ASMM, business hours 10:00-13:00 AM, типичные данные за 3 дня
RDM Server FAQ
Управление табличными пространствами в Oracle Database
Сжатие данных в целях экономии места и ускорения работы Oracle
Используйте сжатие данных таблицы для экономии места на диске и повышения производительности запросов oracle. В большинстве систем поддержки принятия решений (СППР) обычно используются большие объемы данных, которые хранятся в нескольких очень больших таблицах oracle. При развитии подобных систем требования к дисковому пространству могут быстро расти. Сейчас хранилища данных oracle объемом сотни терабайт встречаются все чаще.
Ничем (или недостаточно) ограниченный механизм Automatic Shared Memory Management (ASMM), динамически меняя размеры пулов SGA, может заставить Oracle переключаться между режимами direct path read и кэшированного чтения (через buffer cache SGA), что, в свою очередь, может неожиданно, но вполне заметно влиять на время выполнения типовых запросов
И, хотя в документе High ‘direct path read’ waits in 11g [ID 793845.1] описывается чудесное автоматическое переключение между этими режимами, в зависимости от динамически изменяющегося размера buffer cache:
When ASMM increases the buffer cache due to increased demand, 11g might not again do serial direct path read scans for these same large tables
— в действительности, это только пожелание или план работ на будущее — по крайней мере в версии 11.1.0.7.2 :)
Далее — небольшой практический пример
После очередной вынужденной (ora-4031 при включенном ASMM без ограничений нижних пределов размеров пулов параметрами db_cache_size, shared_pool_size. ) перезагрузки инстанса проявились проблемы с увеличившимся временем выполнения типовых быстровыполнявшихся запросов
Симптомы проблемы на примере одного запроса:
1) при неизменившемся плане выполнения (и неизменных данных) запрос стал выполняться заметно медленнее:
2) статистика (autotrace on) показывает неуменьшающееся при повторных непараллельных выполнениях конкретного запроса высокое кол-во physical reads:
3) в буферном кэше SGA кол-во блоков таблицы по которой выполняется FULL TABLE SCAN остаётся незначительным (независимо от частоты обращения к таблице), и все блоки — в статусе xcur — только транзакционно изменяемые блоки:
при общем кол-ве блоков таблицы:
4) в ожиданиях сессии, выполняющей проблемный запрос в не параллельном режиме (реальный план выполнения, полученный с помощью dbms_xplan.display_cursor привожу просто для примера, чтобы показать, что запрос выполняется непараллельно):
— основные non-Idle ожидания — direct path read и enq: KO — fast object checkpoint, характерные для чтения в режиме direct path:
При этом параметр _serial_direct_read (судя по названию, имеющий отношение к проблеме) установлен в значение по умолчанию:
Причинами проблем явилось, как отмечено вначале, неконтролируемое поведение ASMM в момент рестарта инстанса и, как следствие, переключение режима чтения при FULL TABLE SCAN — Oracle 11g: direct path read при непараллельном сканировании таблиц:
В момент (внепланового) рестарта инстанса размер буферного кэша был экстремально низким (2 из 20 GB SGA)
В соответственно маленькие значения были установлены внутренние параметры _db_block_buffers и _small_table_threshold:
— параметр непосредственно влияющий на выбор доступа к блокам таблицы при операции FULL TABLE SCAN между чтением через буферный пул SGA (блоки кэшируются) и serial direct path read (блоки таблицы не кэшируются и перечитываются в PGA при каждом последующем выполнении запроса ) — при превышении размера таблицы (в блоках бд) величины _small_table_threshold*5 таблица считается большой и кэш SGA не используется.
В этом случае после рестарта таблица в 77312 блоков стала больше 11782*5=58910, следовательно начал использовался serial direct path read
После второго рестарта с уже контролируемым поведением ASMM (был установлен нижний предел размера buffer cache параметром db_cache_size):
соответственно увеличились значения _db_block_buffers и _small_table_threshold:
Время выполнения и physical reads значительно уменьшаются:)
, уменьшается время выполнения проблемных запросов, ситуация возвращается к нормальному состоянию
Таким образом, при необходимости обеспечения стабильности времён (не планов) выполнения запросов при использовании ASMM можно:
Как взломать или обойти парольную защиту Oracle
СУБД Oracle, подобно всем, реально конкурирующим с ней, является старой системой, создание которой происходило, как и продолжается ныне развитие, в рыночных условиях. В этой СУБД, как и у конкурентов, есть целый ряд конструктивных решений, принятых в свое время второпях, и со временем ставших неудовлетворительными. Что-то удается усовершенствовать: например механизмы выделения динамической памяти для текущих нужд СУБД, регулирования доступа к общим ресурсам СУБД или буферизации блоков данных. Однако некоторые заложенные на ранних стадиях развития механизмы или же не удается изменить вовсе (недоразвитое понятие схемы БД) или удается, но с большим запозданием. К числу последних относится механизм парольной защиты пользователей (user) и ролей (role). Особенности парольной защиты Oracle, способствующие несанкционированному проникновению в БД, затронуты в этой статье.
Некоторые вопросы безопасности в Oracle
Уровень обеспечения информационной безопасности корпоративных систем сегодня заметно вырос, и типовые ошибки встречаются все реже — администраторы регулярно устанавливают обновления и реализуют требования парольной политики на серверах Windows, выполняют требования контроля доступа на сетевом оборудовании, сегментируют сети. Однако существует ряд проблем, которым до сих пор не уделяется должного внимания, и одна из них — защищенность корпоративных систем управления базами данных. В данной статье я хочу проанализовать наиболее критичные уязвимые места на примере систем, построенных на базе данных Oracle.
Проблема удаления дублей в таблицах Oracle
Для начала вспомним старую задачу отыскания и удаления дублей в таблице Oracle. Допустим, что в таблице tab есть повторяющиеся записи, причем мы допускаем, что записи, в которых значения столбцов c1,c2,c3 совпадают, и есть дубли.
Oracle и регулярные выражения
Я познакомился с регулярными выражениями давным-давно, программируя на Perl или скриптовой оболочке unix с помощью команд awk и sed. Также, если Вы используете vi редактор, то можете быть знакомыми с регулярными выражениями и сравнением с образцом. Регулярные выражения в действительности представляют собой маленький язык программирования, который предназначен для поиска символьных образцов в текстовой строке. Если честно, когда я начал использовать сравнение с образцом в мои дни Perl, оно показалось мне весьма путаным. Главным образом, потому что было столь много изменений и вариантов, что я не знал, как начать. Хотя спустя некоторое время, я приобрел некоторые навыки. И Вы сможете также. Наберитесь терпения прочесть эту статью и понять, насколько мощным может быть это сравнение с образцом.
Oracle BI: Ключевые возможности и преимущества
Oracle Business Intelligence Suite Enterprise Edition Plus (OBISEE Plus) - один из лидирующих продуктов на рынке business intelligence. Этот пакет представляет собой серьезную BI-платформу, обеспечивающую необходимую основу для корпоративного управления эффективности (EPM - Enterprise Performance Management). Предыдущая версия - Oracle Business Intelligence Suite Enterprise Edition (OBISEE) - была разработана компанией несколько лет назад на базе продукта приобретенной компании Siebel. В новой модификации внесен ряд дополнений, в том числе интеграция многомерными источниками данных (такими как Essbase), и клиенто-центричный подход к запросам и отчетности.
21.11.2010
Проблема удаления дублей в таблицах Oracle
Для начала вспомним старую задачу отыскания и удаления дублей в таблице Oracle. Допустим, что в таблице tab есть повторяющиеся записи, причем мы допускаем, что записи, в которых значения столбцов c1,c2,c3 совпадают, и есть дубли.
RDM Embedded FAQ
Автоматическая зависимость параметров памяти
Однажды установив параметр MEMORY_TARGET, база данных выделит память компонентам SGA и PGA на основе потребностей рабочей нагрузки. Параметр MEMORY_TARGET динамический, и потому его легко изменить во время работы базы данных. Параметры SGA_TARGET и/или PGA_AGGREGATE_TARGET можно установить даже после включения автоматического выделения памяти в базе данных установкой параметра MEMORY_TARGET.
Если вы игнорируете параметр MEMORY_MAX_TARGET, но устанавливаете параметр MEMORY_TARGET, то значение первого устанавливается по умолчанию равным значению второго. Если же, с другой стороны, просто установить параметр MEMORY_MAX_TARGET, то значение параметра MEMORY_TARGET будет по умолчанию равно нулю, что означает отключение автоматического управления памятью.
Ниже показаны отношения между этими различными параметрами размеров памяти при установке параметра MEMORY_TARGET.
- Если вы не устанавливаете параметры SGA_TARGET и PGA_AGGREGATE_TARGET, то база данных автоматически настроит их, не устанавливая минимальных значений для SGA или PGA.
- Если вы установите параметры SGA_TARGET и PGA_AGGREGATE_TARGET, они трактуются как минимальные значения для SGA и PGA.
- Если вы установите только параметр SGA_TARGET, но не PGA_AGGREGATE_TARGET, то все равно сможете автоматически настраивать и SGA, и PGA.
- Если вы установите только параметр PGA_AGGREGATE_TARGET, база данных автоматически настроит и SGA, и PGA.
Если не установить параметр MEMORY_TARGET, он по умолчанию примет значение ноль, и следующие утверждения будут истинны относительно распределения памяти SGA и PGA.
Когда строки не сохраняются рядом, или если строки разбиты больше чем в один блок, снижается производительность, потому что эти строки требуют дополнительного доступа к блокам.
Защита Oracle E-Business Suite
Сбор и воспроизведение нагрузки базы данных Oracle 11g Database Replay
Статья посвящена описанию использования Database Replay - нового, отличного инструмента в Oracle Database 11 g, который позволяет записывать полную нагрузку на базу данных и затем воспроизводить её по собственному желанию.
Таблицы только для чтения в Oracle 11g Release 1
В предыдущих версиях Oracle, сделать таблицу только для чтения, для других пользователей можно было дав объектные привелегии SELECT пользователю. Но для самого владельца таблица оставалась доступной для записи. Oracle 11g позволяет создавать таблицы которые помечаются "только для чтения", используя команду ALTER TABLE.
Информационная безопасность Oracle 9i
В данной работе представлено несколько простых шагов по защите баз данных oracle 9i. Особое внимание уделяется последним изменениям, сделанным в oracle 9i, которые могут быть полезны для защиты систем баз данных oracle.
Потоки данных в Oracle
Обзор новых возможностей Oracle Database 11g
Размеры баз данных увеличиваются каждые 2 года примерно в три раза. При этом руководители ИТ-отделов сталкиваются с новыми проблемами: Как обеспечивать обслуживание пользователей в случае сбоя на сервере, устройстве хранения или в сети? Как обеспечивать целостность информации и соответствие нормативным требованиям? Как хранить, управлять и защищать все виды информации, совмещая это с ежедневной деловой деятельностью? Как масштабировать огромные транзакционные системы и хранилища данных, гарантируя при этом производительность, надежность и управляемость? И как обновлять программное обеспечение и модернизировать аппаратные средства с минимальным риском потери работоспособности системы? Oracle Database 11 g помогает устранить эти проблемы, реализуя широкий набор новых функций и усовершенствований. Продукт расширяет уникальные преимущества технологии grid-вычислений Oracle, что позволяет вам повысить уровень обслуживания пользователей, сократить время простоя и более эффективно использовать информационные ресурсы, увеличивая производительность, масштабируемость и безопасность бизнес-приложений в режиме 24/7.
Включение автоматического управления памятью
Включить автоматическое управление памятью можно при создании базы данных с использованием DBCA (Database Configuration Assistant — помощник по конфигурированию баз данных). DBCA предлагает выбор автоматического управления памятью наряду с другими типами управления памятью. Установить инициализационные параметры, контролирующие автоматическое управление памятью, можно на вкладке Memory (Память) страницы Initialization Parameters (Параметры инициализации). Выберите автоматическое управление памятью, отметив флажок Use Automatic Memory Management (Использовать автоматическое управление памятью) в разделе Typical (Типовое).
Чтобы переключиться в режим автоматического управления памятью, необходимо установить параметр MEMORY_TARGET, который устанавливает память для экземпляра. Также можно указать максимальный размер памяти для экземпляра, специфицируя значение параметра инициализации MEMORY_MAX_TARGET.
Прежде чем можно будет выделить соответствующий объем памяти, который нужно назначить базе данных, находящейся под автоматическим управлением памятью, сначала следует определить, сколько памяти в данный момент использует база данных в SGA и PGA. Ваша цель — выделить объем памяти, который примерно равен сумме объемов SGA и PGA, потребляемых базой данных в конкретный момент. Однако это не значит, что для оценки общей потребности базы данных в памяти вы должны просто сложить значения параметров SGA_TARGET и PGA_TARGET. Дело в том, что в отличие от случая с параметром SGA_TARGET, база данных не может немедленно использовать память, которая указана в параметре PGA_TARGET. База данных лишь основывает свое выделение PGA для каждого сеанса на параметре PGA_TARGET. Таким образом, параметру PGA_TARGET можно назначить очень большое значение, но база будет использовать только малую часть этой величины в каждый заданный момент времени.
Чтобы включить автоматическое управление памятью в существующей базе данных, выполните перечисленные ниже простые шаги.
1. Определите текущее значение размера SGA, выполнив следующую команду:
Для получения текущего размера SGA можно также опросить представление V$SGA_STAT (SELECT SUM(BYTES) FROM V$SGA_STAT).
2. Определите максимальное выделение PGA в любой заданный момент времени, применив следующий запрос:
3. Запрос показывает, что база данных выделила максимум примерно 580 Мбайт памяти области PGA. Однако следующий запрос дает неверную оценку PGA:
Памяти PGA было выделено около 6 Гбайт, но база данных использует из них максимум 580 Мбайт одновременно. Таким образом, добавление параметров SGA_TARGET и PGA_AGGREGATE_TARGET, скорее всего, даст сильно завышенную оценку памяти, которую необходимо назначить базе данных для автоматического выделения SGA и PGA.
4. Выберите значение параметра MEMORY_TARGET, сложив значение параметра SGA_TARGET и значение максимального выделенного размера PGA с момента запуска экземпляра. В нашем примере это будет 600 Мбайт (SGA) + 581 Мбайт (максимальный уровень использования PGA в базе данных). То есть для использования автоматического управления памятью в базе данных понадобится около 1200 Мбайт.
При желании можно дополнительно установить параметр MEMORY_MAX_TARGET. Если значение для него не задано, то база данных назначит его равным параметру MEMORY_TARGET.
После выбора необходимых значений внесите соответствующие изменения в SPFILE, как показано ниже:
Установив параметры SGA_TARGET и PGA_AGGREGATE_TARGET в ноль, вы передаете базе полный контроль над управлением значениями объема SGA и PGA в зависимости от текущей рабочей нагрузки базы данных.
На заметку! Включить автоматическое управление памятью можно также с использованием диспетчера Enterprise Manager. Перейдите на домашнюю страницу и выберите ServerMemory Advisors (СерверСоветники по памяти). Щелкните на кнопке Enable (Включить) на странице Memory Advisor (Советник по памяти), чтобы включить автоматическое управление памятью.
Использование Oracle Berkeley DB Java Edition как менеджера хранения объектов для Google Web Toolkit
Стандартное для Java Platform Enterprise Edition (Java EE) решение в Web -приложениях для хранения объектов (OP - object persistence) заключается в использовании Enterprise JavaBeans (EJB), техники объектно-реляционного отображения (object - to - relational mapping - ORM). Java -объекты транслируются в/из SQL -предложения и запоминаются в базе данных реляционной СУБД как строки в таблицах базы данных. Это наиболее типичный подход по следующей причине. Большинство пользователей обнаруживают, что многие аспекты деятельности их организаций зависят от SQL и серверов реляционной СУБД Oracle при управлении критически важной информацией. В этих случаях EJB и интерфейс Java Persistence API (JPA) являются наилучшими подходами для хранения объектов. Пользователи совместно используют Java -приложения и существующие приложения, "говорящие" на одном и том же языке SQL , чтобы получить доступ к одним и тем же данным базы.
Средства диагностики и утилиты отладки в Oracle
Для правильной диагностики проблем СУБД Oracle необходимо знать утилиты отладки, предоставляемые Oracle. Необходимо понимать такие операции, как чтение дампов управляющего файла или файлов трассировки.
Архитектура, проект и конфигурация федерации сервисных шин Oracle - Oracle Service Buses
Потоки данных в Oracle
Некоторые вопросы безопасности в Oracle
Уровень обеспечения информационной безопасности корпоративных систем сегодня заметно вырос, и типовые ошибки встречаются все реже — администраторы регулярно устанавливают обновления и реализуют требования парольной политики на серверах Windows, выполняют требования контроля доступа на сетевом оборудовании, сегментируют сети. Однако существует ряд проблем, которым до сих пор не уделяется должного внимания, и одна из них — защищенность корпоративных систем управления базами данных. В данной статье я хочу проанализовать наиболее критичные уязвимые места на примере систем, построенных на базе данных Oracle.
Кластерные технологии Oracle
Кластерные системы традиционно рассматриваются в качестве альтернативы большим компьютерам, созданным на основе архитектуры симметричной мультипроцессорной обработки (SMP). Объединение вычислительных мощностей множества независимых компьютеров в единую систему для решения одной задачи позволяет вычислительным кластерам получить следующие преимущества над большими ЭВМ
Различные типы управления памятью
Oracle предлагает несколько методов управления памятью, которые перечислены ниже.
- Автоматическое управление памятью. Эта новая опция в Oracle Database 11g и 12c позволяет базе данных полностью автоматически управлять компонентами SGA и PGA.
- Автоматическое управление разделяемой памятью. Этот вариант автоматизирует управление SGA, но не PGA.
- Автоматическое управление памятью PGA. Эта опция автоматизирует только управление памятью PGA.
- Ручное управление разделяемой памятью. Вы устанавливаете размеры индивидуальных компонентов SGA, такие как разделяемый пул и буферный кэш. . Вы вручную настраиваете память PGA.
В Oracle рекомендуют использовать автоматическое управление памятью, при котором база данных динамически подстраивает уровни индивидуальных компонентов SGA наряду с выделениями PGA.
База данных перераспределяет память от SGA к PGA и обратно, в зависимости от текущих потребностей. Ваша задача — установить начальный объем памяти, которую хотите выделить базе данных, и затем позволить базе самой выполнять повседневное управление памятью.
На заметку! На текущий момент операционные системы Linux, Solaris, Windows, HP-UX и AIX поддерживали автоматическое управление памятью.
ASMM в Oracle 10.2, online отключение в RAC окружении
Документация Oracle 10g R2 следующим образом описывает Automatic Shared Memory Management (ASMM) в части управления shared pool
… внутренний алгоритм настройки обычно не пытается уменьшить shared pool из-за наличия открытых курсоров (open cursors), фиксированных в памяти (pinned) PL/SQL пакетов и наличия SQL в различных стадиях выполнения, что делает невозможным нахождение гранул памяти, доступных для освобождения. Следовательно, алгоритм автоматической настройки выполняет только увеличение shared pool небольшими порциями, начиная с определённого размера и стабилизируя размер shared pool на оптимальном с позиции производительности уровне
Понятно, что получается, если один из автоматически управляемых компонентов может только увеличиваться (на примере Oracle 10.2.0.4, 2-node RAC, ASMM включен):
Настройка системной глобальной области (SGA), которая представляет собой память, выделяемую Oracle каждому экземпляру для хранения данных и управляющей информации, не всегда осуществляется легко. Вы можете столкнуться с ситуацией, когда транзакции OLTP доминируют в базе данных в течение дня, а затем — ночью — запускаются трудоемкие пакетные задания. В таком случае понадобится выделить больше памяти буферному кэшу в течение дня, и увеличить компонент большого пула (large pool) SGA для выполнения ночных пакетных заданий.
Разумеется, можно динамически изменять некоторые компоненты SGA, а также использовать сценарии для изменения выделений SGA перед и после выполнения пакетных заданий, но факт остается фактом — вы непосредственно отвечаете за настройку компонентов SGA в соответствии с текущими нуждами экземпляра. Проблемы вроде ORA-4031 (“out of shared pool memory” — нехватка памяти в разделяемом пуле) возникают достаточно часто, когда вы вручную настраиваете различные параметры. Если вы перестрахуетесь и выделите для SGA много памяти, то рискуете впустую потратить важнейшие ресурсы и тем самым вызвать излишний страничный обмен и прочие проблемы, которые плохо повлияют на производительность базы данных.
В Oracle Database 11g и 12c можно полностью автоматизировать сложную задачу управления памятью. Это одно из наиболее существенных усовершенствований Oracle Database 11g, и важный вклад в достижении цели Oracle — автоматического управления базой данных. При автоматическом управлении памятью Oracle автоматически выделяет и освобождает память как для SGA, так и PGA, на основе меняющейся рабочей нагрузки базы данных. Oracle использует внутренние представления и статистику, чтобы выбрать наилучший способ распределения памяти между компонентами SGA.
Автоматическое управление памятью дает следующие преимущества.
- Сокращает шансы исчерпания памяти разделяемого пула.
- Оптимально использует доступную память.
- Повышает производительность базы данных, постоянно сверяя распределение памяти с потребностями экземпляра в памяти.
Тем не менее, при желании можно продолжать вручную управлять компонентами разделяемой памяти Oracle Database 11g.
Сжатие данных в целях экономии места и ускорения работы Oracle
Используйте сжатие данных таблицы для экономии места на диске и повышения производительности запросов oracle. В большинстве систем поддержки принятия решений (СППР) обычно используются большие объемы данных, которые хранятся в нескольких очень больших таблицах oracle. При развитии подобных систем требования к дисковому пространству могут быстро расти. Сейчас хранилища данных oracle объемом сотни терабайт встречаются все чаще.
Когда строки не сохраняются рядом, или если строки разбиты больше чем в один блок, снижается производительность, потому что эти строки требуют дополнительного доступа к блокам.
Таблицы только для чтения в Oracle 11g Release 1
В предыдущих версиях Oracle, сделать таблицу только для чтения, для других пользователей можно было дав объектные привелегии SELECT пользователю. Но для самого владельца таблица оставалась доступной для записи. Oracle 11g позволяет создавать таблицы которые помечаются "только для чтения", используя команду ALTER TABLE.
Сбор и воспроизведение нагрузки базы данных Oracle 11g Database Replay
Статья посвящена описанию использования Database Replay - нового, отличного инструмента в Oracle Database 11 g, который позволяет записывать полную нагрузку на базу данных и затем воспроизводить её по собственному желанию.
Эффективное программирование на PL/SQL
Триггеры, которые срабатывают по несколько раз в зависимости от события, возможность указать триггерам одного типа последовательность срабатывания, новое предложение CONTINUE - вот некоторые из новых возможностей, которые упрощают программирование на PL/ SQL.
Кластерные технологии Oracle
Кластерные системы традиционно рассматриваются в качестве альтернативы большим компьютерам, созданным на основе архитектуры симметричной мультипроцессорной обработки (SMP). Объединение вычислительных мощностей множества независимых компьютеров в единую систему для решения одной задачи позволяет вычислительным кластерам получить следующие преимущества над большими ЭВМ
Защита данных в СУБД Oracle
В наши дни многие традиционные меры обеспечения безопасности информации баз данных oracle, в основном организационные, давно исчерпали себя. Развитие техники и технологий идет ускоренными темпами, вооружение злоумышленников становится все лучше, как технически, так и профессионально, и это заставляет создавать все более совершенные способы охраны конфиденциальных данных.
Как взломать или обойти парольную защиту Oracle
СУБД Oracle, подобно всем, реально конкурирующим с ней, является старой системой, создание которой происходило, как и продолжается ныне развитие, в рыночных условиях. В этой СУБД, как и у конкурентов, есть целый ряд конструктивных решений, принятых в свое время второпях, и со временем ставших неудовлетворительными. Что-то удается усовершенствовать: например механизмы выделения динамической памяти для текущих нужд СУБД, регулирования доступа к общим ресурсам СУБД или буферизации блоков данных. Однако некоторые заложенные на ранних стадиях развития механизмы или же не удается изменить вовсе (недоразвитое понятие схемы БД) или удается, но с большим запозданием. К числу последних относится механизм парольной защиты пользователей (user) и ролей (role). Особенности парольной защиты Oracle, способствующие несанкционированному проникновению в БД, затронуты в этой статье.
Оптимизация Rails для Oracle
Используя инфраструктуру Ruby on Rails, можно относительно просто разработать сложные системы, которые будут поддерживаться базой данныхOracle, но эта простота не освобождает разработчика от необходимости оптимизировать модель данных и код, реализующий модель.
25.11.2010
Управление SQL-планами в Oracle Database 11g
Производительность любого приложения базы данных в большой степени опирается на выполнение им запросов. Хотя оптимизатор Oracle идеально подходит для оценки наилучшего возможного плана без какого-либо вмешательства пользователя, план выполнения SQL-оператора может неожиданно измениться по множеству причин, включая повторный сбор статистики оптимизатора, изменение параметров оптимизатора или определений схемы и/или метаданных.
Эффективное программирование на PL/SQL
Триггеры, которые срабатывают по несколько раз в зависимости от события, возможность указать триггерам одного типа последовательность срабатывания, новое предложение CONTINUE - вот некоторые из новых возможностей, которые упрощают программирование на PL/ SQL.
Архитектура, проект и конфигурация федерации сервисных шин Oracle - Oracle Service Buses
Читайте также: