Oracle: dedicated -> shared

Добрый день, друзья! Столкнулся тут с необходимостью переезда базы данных Oracle. База крупная, нагруженная. Клиентов много. Потому используется через shared подключение. На новом сервере базу установили, но настроена она была на dedicated режим, который нам не подходит. Пришлось потратить не один час, чтобы разобраться, как же именно перевести в shared режим. В общем-то, всё просто.

Импорт данных в другую схему

Сегодня мы поговорим о достаточно редкой ситуации — переносе данных из одной схемы в другую. Я столкнулся с такой ситуацией, когда потребовалось перенести данные из одной базы в другую. Схема во второй базе отличается от первой. Плюс ко всему, новая схема не пуста и перед заливкой данных надо её почистить. Итого, у нас три вопроса:

Оптимизация запросов в ORACLE при помощи плана выполнения

Сразу уточню, что описывать буду на примере использования фри утилиты OraDeveloper Studio. Почему? Потому что обычными запросами этого сделать не удалось, а времени и желания разбираться не было, раз уж есть способ проще. 😉 Итак, для чего это вообще нужно? Опишу вам конкретный пример, из-за которого я и был вынужден проводить оптимизацию.

Oracle. Комментарии в таблицах и ещё кое-что

В целях улучшения качества кода и структуры базы некоторые сознательные личности используют комментарии. Это хорошая практика, особенно если комментарии правильные. Прочесть комментарий в исходном коде не проблема, но как это сделать в Oracle? Обычный DESC или просмотр структуры таблицы в EMC здесь не помощники. Как быть? Использовать вот такие запросы:

для таблиц и

Как из оракла выгрузить всё желаемое?

Как и ожидалось, легко. Вот только нашлось решение почему-то далеко не сразу. Видимо, в прошлые разы не настолько хотелось. Или времени было слишком мало. Для выгрузки из оракла используется утилита expdp. Очень мощная и быстрая утилита, особенно если уметь пользоваться. 🙂 У этой утилиты есть два интересных параметра — EXCLUDE и INCLUDE. В первом параметре

Oracle. Убиение зависшей джобы

В очередной раз столкнулся с зависшими джобами (те, что DBMS_JOB). Перегружать оракл на сервере и поднадоело, и явно не лучший выход. Посему пришлось искать другие пути. Шеф подсказал, что можно убить сессию. Но как найти сессию? Оказалось, не так уж и сложно:

Ищем в столбце job своего висельника, смотрим его sid/serial и расстреливаем на

ORACLE. ORA-12528

Сегодня была довольно странная ситуация. Для меня странная, ибо я не специалист в оракле, но, похоже, начинающий шаман. 🙂 В общем, суть такова. Передо мной стояла задача сменить режим базы обратно на noarchivelog (менял ранее на archivelog чтобы можно было создать горячий бэкап базы RMON’ом). Менять режим базы надо в состоянии mount, но не open.

ORACLE. Финты ушами. Заметка #3

Бывает так, что пользователи не могут подключиться к ораклу. Это может происходить, например по причине того, что база находится в не открытом состоянии. Или пользователь заблокирован (например, после жёсткой остановки оракла посредством команды shutdown abort). Перевод базы в состояние open:

Разблокирование пользователя: