Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
eml78
Member

Откуда:
Сообщений: 648
Пробую использовать DBMS_LOGMNR, на 9.2.0.4 EE под Windows
begin
  SYS.DBMS_LOGMNR.end_logmnr();
  SYS.DBMS_LOGMNR.add_logfile(LOGFILENAME=>'D:\ORACLE\ORADATA\BDGT\ARC00256.001', OPTIONS=>SYS.DBMS_LOGMNR.NEW);
  SYS.DBMS_LOGMNR.start_logmnr(OPTIONS=>SYS.DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
end;
/
select SQL_REDO, SQL_UNDO
from v$LOGMNR_CONTENTS
where ROWNUM <100
/
Получил
ORA-04031: невозможно выделить 8389132 байт разделяемой памяти ("large pool","unknown object","krvxiphd: priv","redo read buffer")

Запрос
select NAME, ROUND(BYTES / 1024 / 1024, 1) from v$sgastat where POOL='large pool'
Вернул
free memory 175,9
session heap 0,1

Т.е. память свободная в large pool вроде есть

Кто-нибудь знает в чем тут проблема и как сделать чтобы выборка заработала?
13 мар 08, 18:15    [5407643]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
Это баг оракла, возникающий, имха, при открытии какого-то там числа (большого) курсоров. Уменьшай границы выборки или занимайся патчингом оракла
13 мар 08, 18:21    [5407669]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
Консерва
Это баг оракла, возникающий, имха, при открытии какого-то там числа (большого) курсоров. Уменьшай границы выборки или занимайся патчингом оракла
Oracle bug 3150705.
13 мар 08, 18:21    [5407674]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
eml78
Member

Откуда:
Сообщений: 648
Установил 9.2.0.8 - ошибка та же.
Я с таким поведением Log Mainer не первый раз сталкиваюсь. Он вообще нормально работать может?
14 мар 08, 15:49    [5411840]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
eml78
Member

Откуда:
Сообщений: 648
Попробовал уменьшить размер выборки до 1 записи
select SQL_REDO, SQL_UNDO
from v$LOGMNR_CONTENTS
where SCN=62997035
Тоже не помогло
14 мар 08, 15:53    [5411884]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
nixo
Member

Откуда:
Сообщений: 57
eml78
Попробовал уменьшить размер выборки до 1 записи
select SQL_REDO, SQL_UNDO
from v$LOGMNR_CONTENTS
where SCN=62997035
Тоже не помогло


Если попробовать использовать flat-file, будет тоже самое?
14 мар 08, 15:56    [5411922]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
CREATE ТABLE TEST_TABLE_123 AS SELECT * FROM V$LOLGNR_CONTENTS не проходит?
14 мар 08, 18:10    [5412976]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
Консерва
CREATE ТABLE TEST_TABLE_123 AS SELECT * FROM V$LOLGNR_CONTENTS не проходит?

CREATE ТABLE TEST_TABLE_123 AS SELECT * FROM V$LOGMNR_CONTENTS;
fixed bug.
14 мар 08, 18:11    [5412979]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
eml78
Попробовал уменьшить размер выборки до 1 записи
select SQL_REDO, SQL_UNDO
from v$LOGMNR_CONTENTS
where SCN=62997035
Тоже не помогло
Реду лог насколько большой?
14 мар 08, 18:14    [5412997]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
eml78
Member

Откуда:
Сообщений: 648
Попробовал флат-файл не помогло.
Я даже пробовал ограничить по SCN
SYS.DBMS_LOGMNR.start_logmnr(..., STARTSCN=>64028672, ENDSCN=>64028682);

А вот
CREATE TABLE TEST_TABLE_123 AS
  SELECT * FROM V$LOGMNR_CONTENTS
Сработало, причем как для флат, так и для текущего каталога и ограничивать по SCN не пришлось (я правда только один LOG-файл просматривал).

Размер редо-лога 100МБ (в 9-ке это по дефолту).
18 мар 08, 11:47    [5422863]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
Хммм... ну, не так плохо, имхо, сливать в таблицу - работать с информацией удобнее.
18 мар 08, 11:50    [5422887]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
eml78
Member

Откуда:
Сообщений: 648
Консерва
Хммм... ну, не так плохо, имхо, сливать в таблицу - работать с информацией удобнее.

Вопрос в том насколько все это стабильно, мы хотим использовать чтение логов в программе (задача специфичная, и ее выполнение предполагается в нерабочее время, т.е. ночью).
Поэтому хотелось бы найти достаточно стабильный вариант, который будет работать для разных БД.

Кстати всем большое спасибо за помощь.
18 мар 08, 12:20    [5423115]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
eml78
Консерва
Хммм... ну, не так плохо, имхо, сливать в таблицу - работать с информацией удобнее.

Вопрос в том насколько все это стабильно, мы хотим использовать чтение логов в программе (задача специфичная, и ее выполнение предполагается в нерабочее время, т.е. ночью).
Поэтому хотелось бы найти достаточно стабильный вариант, который будет работать для разных БД.
Я тоже люблю считать ворон и изобретать велосипед.
18 мар 08, 12:22    [5423134]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
eml78
Member

Откуда:
Сообщений: 648
Консерва
Я тоже люблю считать ворон и изобретать велосипед.

Не очень понял про ворон и велосипед - я ведь всего лишь пытаюсь использовать стандартные функции СУБД? Причем для решения абсолютно конкретной задачи (отслеживание изменений в данных). Есть и другие варианты решений - но этот вроде наиболее стандартный (так что изобретать велосипед я вроде как раз и не хотел).
18 мар 08, 12:53    [5423368]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
eml78
Консерва
Я тоже люблю считать ворон и изобретать велосипед.

Не очень понял про ворон и велосипед - я ведь всего лишь пытаюсь использовать стандартные функции СУБД? Причем для решения абсолютно конкретной задачи (отслеживание изменений в данных). Есть и другие варианты решений - но этот вроде наиболее стандартный (так что изобретать велосипед я вроде как раз и не хотел).
Стандартный аудит не устроил? http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/audit.htm#1196
18 мар 08, 13:09    [5423573]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
eml78
Member

Откуда:
Сообщений: 648
Консерва
Стандартный аудит не устроил? http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/audit.htm#1196

Ну тут есть сразу два возражения :)
1. Раз сделали LogMiner - то видимо он не только меня не устраивает
2. LogMiner средство не менее стандартное чем Audit Trail

А если серьезно, то стандартный аудит позволяет определить например, что Вася Пупкин ЧТО-ТО поменял в таблице. А вот что именно он менял - это увы остается за кадром, а это-то самое интересное и есть.
18 мар 08, 14:21    [5424127]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при выборке из V$LOGMNR_CONTENTS  [new]
Консерва
Member

Откуда:
Сообщений: 2794
eml78
Консерва
Стандартный аудит не устроил? http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/audit.htm#1196

Ну тут есть сразу два возражения :)
1. Раз сделали LogMiner - то видимо он не только меня не устраивает
2. LogMiner средство не менее стандартное чем Audit Trail

А если серьезно, то стандартный аудит позволяет определить например, что Вася Пупкин ЧТО-ТО поменял в таблице. А вот что именно он менял - это увы остается за кадром, а это-то самое интересное и есть.
Ну, блин. О журналировании определенных событий должно заботиться само приложение. Обычно для этого пишут всякие журналы. Как долго вы сможете хранить реду? Насколько удобно работать с реду? Как много в реду именно той информации, которая Вам нужна? Гммм... Как думаете, что легче - зафиксировать определенное событие:
А. настроив стандартный аудит (триггер).
или же
Б. Используя лог майнер?
Логмайнером Вы получите (да и получите ли) тот же самый результат, которого могли бы добиться стандартным аудитом, но лог майнер потребует больших усилий и бесполезных действий. Я бы дал разработчикам в рог и попросил бы их не появляться более на мои глаза в течение по крайней мере ближайшей недели.
18 мар 08, 15:46    [5424840]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить