18июлRBO или CBO?
Автор статьи: Михайлов Владимир Васильевич, разработчик баз данных Oracle, Москва.
Конечно же, обширная документация Oracle пестрит подобного рода замечаниями в отношении RBO: "Oracle Corporation strongly advises the use of cost-based optimization. Rule-based optimization will be deprecated in a future release." Однако, реальность диктует свои условия, и на сегодняшний день OPTIMIZER_MODE=RULE является её неизменной частью, и тем самым касается непосредственно меня, обыкновенного разработчика баз данных.
далее
Добавил dbstalker в 18 июля 2008 г. [Ссылка | Комментарии (1) ]
07июлARCHIVELOG или NOARCHIVELOG? Вот в чем вопрос?
Самая ПЕРВАЯ обязанность администратора – поддержка базы данных в рабочем состоянии. Даже если в системе происходит сбой (пропало питание, носитель пришел в непригодность и т.д.), администратор должен в максимально сжатые сроки поднять базу без потерь данных. Значит, к сбоям администратор должен готовиться загодя.
далее
Добавил dbstalker в 7 июля 2008 г. [Ссылка | Комментарии (0) ]
27июнORA-01846: not a valid day of the week
Сегодня во время работы некоего пз получили сообщение ORA-01846: not a valid day of the week. Порывшись в этой программке, нашли команду, которая вызывала эту ошибку. Приблизительно она выглядит таким образом:
select next_day(SYSDATE,'SUNDAY') from dual;
далее
Добавил dbstalker в 27 июня 2008 г. [Ссылка | Комментарии (0) ]
26июнПредставление и хранение чисел в Oracle.
Автор статьи: Михайлов Владимир Васильевич, разработчик баз данных Oracle, Москва.
Случайно наткнулся на статьи в Oracle Magazine.Честно говоря, даже не думал, что Oracle может хранить числовой тип данных в своём внутреннем формате, но, как говорится, "век живи - век учись!" Первые две статьи Стива Адамса не вызвали затруднений в понимании, из них можно почерпнуть много полезного в плане оперирования числами Oracle'ом, их округлением и хранением.
далее
Добавил dbstalker в 26 июня 2008 г. [Ссылка | Комментарии (0) ]
25июнИспользование представления v$db_cache_advice
В СУБД Oracle9i появилась консультативная справка по кешу буферов (Buffer Cache Advisory). Данные этой справки (представление V$DB_CACHE_ADVICE ) - это результат внутреннего моделирования, основанного на текущей рабочей нагрузке. Справка предсказывает частоту неудачных обращений к кешу для различных размеров кеша буферов в диапазоне от 10% до 200% текущего размера кеша. При этом параметр STATISTICS_LEVEL должен принимать значения TYPICAL или ALL. Или можно установить в параметре db_cache_advice файла init.ora значение "on" или "ready".
далее
Добавил dbstalker в 25 июня 2008 г. [Ссылка | Комментарии (0) ]
24июнГетерогенный сервис.
В первый раз довелось настраивать гетерогенный сервис для ORACLE 8. С того времени сохранилась инструкция (я её приведу ниже). По ней настраивался гетерогенный сервис для ORACLE 9 и 10. Так как ORACLE 10g у меня под Linux, то были некоторые отличительные моменты, о которых я упомяну в конце поста. Сервис настраивался для работы с dbf-файлами. Для работы с файлами excel пользовались инструкцией .А здесь есть описание настройки для работы с Microsoft SQL Server и приведены решения возможных проблем.
далее
Добавил dbstalker в 24 июня 2008 г. [Ссылка | Комментарии (1) ]
17июнКаков размер SGA? X$KSMFSV,X$KSMMEM
Основная структура памяти Oracle – System Global Area (SGA, системная глобальная область). Размер SGA вычисляется по определенным параметрам инициализации.
SGA разбивается на четыре раздела:
- фиксированный раздел,
- переменный раздел,
- журнальный буфер,
- пул буферов блоков базы данных.
далее
Добавил dbstalker в 17 июня 2008 г. [Ссылка | Комментарии (0) ]
11июнДвунаправленный список (Double Linked Lists)
Вам, наверняка, в англоязычной документации по ORACLE встречалось такое понятие как Double Linked Lists. Вы так же знаете, что буфера в буферном кэше управляются тремя типами списков: cache buffer chains, LRUW(dirty) списком и LRU списком. О списках можно немного почерпнуть из этого поста. Все эти структуры организованы как двунаправленные списки. Мне попались настолько красивые и наглядные рисунки, что захотелось их поместить на своем блоге.
далее
Добавил dbstalker в 11 июня 2008 г. [Ссылка | Комментарии (0) ]
22майДиагностика буферного кеша.
Для этого обычно используются следующие представления V$SYSSTAT и V$SESSTAT.Основным показателем эффективности работы буферного кэшем является коэффициент попадания в буфер данных при обращении к блокам (Hit ratio).
далее
Добавил dbstalker в 22 мая 2008 г. [Ссылка | Комментарии (0) ]
16майЧто такое этот Buffer Cache (буферный кеш)?
- Это составная часть SGA
- Используется для быстрого доступа к данным
- Использует LRU алгоритм, для того чтобы лишаться непопулярных данных
- Содержит внутренние структуры: Default buffer pool, Keep buffer pool и Recycle buffer pool
- Параметром DB_CACHE_SIZE устанавливается размер
далее
Добавил dbstalker в 16 мая 2008 г. [Ссылка | Комментарии (0) ]
15майФоновый процесс: DBWR
Database Writer (DBWR) - основные задачи, которые этот процесс решает:
- Выполняет запись буферов в файлы данных.
- Отвечает за управление буферным кешем (ведение LRU списка).
- Обновляет заголовки файлов данных информацией о контрольной точке (до 8.0 версии).
далее
Добавил dbstalker в 15 мая 2008 г. [Ссылка | Комментарии (0) ]
07майTable fetch continued row
Эта статистика накапливается с момента старта экземпляра, и показывает сколько раз во время выборки пришлось иметь дело со строками, находящимися больше, чем в одного блоке. Обычно это называется цепочкам записей ("chained rows") . Начиная с Oracle8 добавилось еще новое понятие - мигрирующие строки ("migrated rows").
Статистика "table fetch continued row" (chained row fetch) увеличивается по следующим причинам:
- PCTFREE слишком мал, поэтому в блоке осталось недостаточно места для размещения обновленной записи в случае, если длина обновленной записи увеличилась.
- Raw, long raw, BLOB or CLOB поля – в результате получается, что запись длиннее блока.
- Табличка имеет больше 255 полей - эти строки Oracle разбивает на несколько частей, но хранит их по возможности в одном блоке.
Посмотрите у себя значение этой статистики:
select value from v$sysstat where name = 'table fetch continued row';
Добавил dbstalker в 7 мая 2008 г. [Ссылка | Комментарии (0) ]
13февLGWR: Archivelog for thread xx sequence xxxx will NOT be compressed
В файле трассировки были обнаружены сообщения:
LGWR: Archivelog for thread 1 sequence 7061 will NOT be compressed
*** 2008-02-13 03:20:53.582
LGWR: Archivelog for thread 1 sequence 7062 will NOT be compressed
*** 2008-02-13 03:38:32.362
LGWR: Archivelog for thread 1 sequence 7063 will NOT be compressed
Как выяснилось, это сообщение не указывает ни на проблему в базе данных, ни на ошибку в конфигурации, ни на ошибку в установке параметров. Просто сжатие архивных файлов не доступно в ORACLE 10g. Вроде бы оно уже доступно в версии 10.2.0.3.0.
Это все. Если у Вас больше информации, то поделитесь. Будем благодарны.
Добавил dbstalker в 13 февраля 2008 г. [Ссылка | Комментарии (1) ]
12февHeap size … exceeds notification threshold (2048K). Параметр инициализации _kgl_large_heap_warning_threshold
В журнале оповещения alert_my_db.log появились сообщения типа:
Memory Notification: Library Cache Object loaded into SGA
Heap size 2725K exceeds notification threshold (2048K)
Details in trace file /opt/oracle/admin/my_db/bdump/my_db_j003_20259.trc
KGL object name :select /*+ no_parallel(t) no_parallel_index(t) dbms_stats cursor_sharing_exact use_weak_name_resl dynamic_sampling(0) no_monitoring */ count(*),……
Это сообщение memory manager является информационным, угрозы базе данных не несет. Но если вас оно нервирует, то можно поступить таким образом:
Sqlplus /nolog
SQL> Conn / as sysdba
SQL> alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ;
SQL> shutdown immediate
SQL> startup
_kgl_large_heap_warning_threshold (maximum heap size before KGL writes warnings to the alert log) – новый недокументированный параметр Oracle 10g
Пожалуй, это все. Если у Вас больше информации, то поделитесь. Будем благодарны.
Добавил dbstalker в 12 февраля 2008 г. [Ссылка | Комментарии (0) ]
01февИнсталляция ORACLE 10g. ORA-12547: TNS:lost contact ORA-27102: out of memory
Проблемы при инсталляции ORACLE 10g Release 2 (10.2) for Linux x86-64, операционная система Red Hat Enterprise Linux AS release 4 (Nahant Update 4) 2.6.9 42.ELlargesmp (64-bit), платформа x86_64.
Возникло две проблемы:
- error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
ERROR: ORA-12547: TNS:lost contact
- startup nomount pfile="/opt/oracle/product/10.2.0/db_1/admin/my_db/scripts/init.ora";ORA-27102: out of memory Linux-x86_64 Error: 28: No space left on device
А теперь, как побороли эти проблемы.
далее
Добавил dbstalker в 1 февраля 2008 г. [Ссылка | Комментарии (1) ]
25янвEnterprise Manager is not able to connect to the database instance
Инсталлировали на новом сервере ORACLE 10g. Все получилось прекрасно: сервер работает, клиенты подключаются. Но администратор страдает: Database contol не запускается: Enterprise Manager is not able to connect to the database instance. The state of the components are listed below. К тому же показывает, что Agent Connection to Instance, Listener, Database Instance в нерабочем состоянии. Картинка более чем странная.
далее
Добавил dbstalker в 25 января 2008 г. [Ссылка | Комментарии (0) ]
24янвГде находиться Alert.log?
Сегодня пришлось на чужой базе искать журнал оповещений (предупреждений). В той папочке, где у меня лежит этот журнал, файлика не нашлось. Где он? За это отвечает параметр background_dump_dest. Его значение можно посмотреть в файле параметров init.ora .
Добавил dbstalker в 24 января 2008 г. [Ссылка | Комментарии (0) ]
24янвIMP-00098: INTERNAL ERROR: impccr2
Задача была поставлена так:
импортировать дамп (сделанный на оракле 10g, не известно где, кем, на какой ОС) в схему на Oracle Database 10g 10.2.0.1.0, операционная система -Red Hat Enterprise Linux AS release 3 (Taroon Update 4) 2.4.21 27.EL (64-bit).
Проблема: IMP-00098: INTERNAL ERROR: impccr2
Решение: Перейти в каталог /home/oracle, в файле .bash_profile пришлось убрать NLS_LANG=RUSSIAN_RUSSIA.UTF8; export NLS_LANG.Потом перегрузить сервер.
Добавил dbstalker в 24 января 2008 г. [Ссылка | Комментарии (0) ]
11янвCKPT — обработка контрольной точки
Этот процесс отвечает за синхронизацию заголовков файлов данных и управляющего файла в момент прохождения контрольной точки. CKPT записывает SCN контрольной точки в заголовки ONLINE файлов данных, находящихся в режиме READ/WRITE, а также вносит изменения в управляющий файл. О поведении процесса CKPT для инкрементальной контрольной точки можно почитать здесь, а для нормальной контрольной точки – здесь.
далее
Добавил dbstalker в 11 января 2008 г. [Ссылка | Комментарии (0) ]
20декLGWR — запись журнала
Сервер Oracle для переноса пакетов записей о транзакциях из буфера журнала повторного выполнения на диск использует выделенный процесс обязательный для нормального функционирования БД Oracle, называемый писателем журнальных файлов (redo log writer, LGWR).
далее
Добавил dbstalker в 20 декабря 2007 г. [Ссылка | Комментарии (0) ]
13декV$Instance_Recovery,V$MTTR_Target_Advice,$TARGETRBA
Представление V$Instance_Recovery
С помощью этого представления можно выполнять мониторинг действующего в системе механизма поддержания необходимого времени восстановления экземпляра в случае сбоя.
Время, необходимое для восстановления экземпляра – это время необходимое для перевода файла из состояния его последней контрольной точки к состоянию, соответствующему самому последнему SCN , хранимому в управляющем файле.
Косвенно данное представление интересно для наблюдения за частотой выполнения инкрементальной контрольной точки.
далее
Добавил dbstalker в 13 декабря 2007 г. [Ссылка | Комментарии (0) ]
11декFAST_START_MTTR_TARGET
В Oracle9i появился новый параметр инициализации FAST_START_MTTR_TARGET, который призван заменить FAST_START_IO_TARGET. Новый параметр устанавливает желаемое максимальное время восстановления после сбоя экземпляра (MTTR – Mean Time To Recover). Желаемое время задается в секундах от 0 до 3600, причем значение 0 запрещает этот механизм.
далее
Добавил dbstalker в 11 декабря 2007 г. [Ссылка | Комментарии (0) ]