powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / StandBy и ORA-16000 database open for read-only access
6 сообщений из 6, страница 1 из 1
StandBy и ORA-16000 database open for read-only access
    #39492957
AlexanderKz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня

Есть сервер standby в режиме open с запущенным накатом логов. Версии 11.2.0.3.0. Большую часть времени исправно выполняет все запросы, но иногда начинает выдавать ошибку, что база находится в режиме read only на следующий запрос, не использующий ни одного пользовательского объекта:

Код: plsql
1.
2.
with A as (select 1 from dual where rownum<2)
select  (select 1 from A ) from  A 



при этом любой из трех вариантов запросов
Код: plsql
1.
2.
3.
4.
5.
6.
with A as (select 1 from dual)
select  (select 1 from A ) from  A;
with A as (select 1 from dual where rownum<2)
select  (select 1 from A ) from  dual;
with A as (select 1 from dual where rownum<2)
select  (select 1 from dual ) from  A;


продолжает выполняться нормально.

Если этот запрос выполнить на основном сервере и переключить журнальный файл, то после втягивания очередного лога он начинает работать и на standby. Такое впечатление, что двойное использование псевдотаблицы из секции with требует компиляции какого-то объекта. Список невалидных объектов в пользовательской схеме при втягивании лога не меняется. Словари SYS никто не трогает, так что невалидными становиться не должны. Что можно еще проверять?


Версия базы 11.2.0.3.0
...
Рейтинг: 0 / 0
StandBy и ORA-16000 database open for read-only access
    #39492967
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexanderKzдвойное использование псевдотаблицы из секции with требует компиляции какого-то объекта
Скорее банальной материализации.
...
Рейтинг: 0 / 0
StandBy и ORA-16000 database open for read-only access
    #39493083
AlexanderKz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,
не совсем понимаю, как влияет материализация и почему эффект не постоянный. Ведь режим read-only не запрещает создавать временные структуры в TEMP для выполнения запросов. Большую часть времени запрос отрабатывает без проблем.
...
Рейтинг: 0 / 0
StandBy и ORA-16000 database open for read-only access
    #39493098
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexanderKz,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SQL> set autotrace traceonly explain
SQL> set echo on
SQL>
SQL> with A as (select 1 from dual where rownum<2)
  2  select     (select 1 from A ) from  A;

Execution Plan
----------------------------------------------------------
Plan hash value: 1394612257

-----------------------------------------------------------------------------------------------------------
| Id  | Operation                   | Name                        | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |                             |     1 |       |     4   (0)| 00:00:01 |
|   1 |  VIEW                       |                             |     1 |       |     2   (0)| 00:00:01 |
|   2 |   TABLE ACCESS STORAGE FULL | SYS_TEMP_0FD9DBC70_6C4E86B4 |     1 |    13 |     2   (0)| 00:00:01 |
|   3 |  TEMP TABLE TRANSFORMATION  |                             |       |       |            |          |
|   4 |   LOAD AS SELECT            | SYS_TEMP_0FD9DBC70_6C4E86B4 |       |       |            |          |
|*  5 |    COUNT STOPKEY            |                             |       |       |            |          |
|   6 |     FAST DUAL               |                             |     1 |       |     2   (0)| 00:00:01 |
|   7 |   VIEW                      |                             |     1 |       |     2   (0)| 00:00:01 |
|   8 |    TABLE ACCESS STORAGE FULL| SYS_TEMP_0FD9DBC70_6C4E86B4 |     1 |    13 |     2   (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------------



Bug 13847666oracleDescription

Temporary table transformation may be used in plans in a read only database
which leads to ORA-16000 errors.

Rediscovery Notes
If an ORA-16000 error is raised for a database opened in read only mode
and the execution plan involved temporary table transformation then this may
be the issue.
eg: The execution plan shows "TEMP TABLE TRANSFORMATION"

Workaround
Hint the plan so as to avoid the temp table transformation.

Note:
This fix is not correct and has been superseded by the fix in bug 14609690 .
For interim patches please use that fix instead of this one.



Regards

Maxim
...
Рейтинг: 0 / 0
StandBy и ORA-16000 database open for read-only access
    #39493106
AlexanderKz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Demenko,спасибо. Почитаю подробнее про этот баг.
...
Рейтинг: 0 / 0
StandBy и ORA-16000 database open for read-only access
    #39493108
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexanderKz,

WITH анализируется оптимизатором и может быть материализирован (WITH выполняется и результат пишется во временную таблицу) если он считает это более эффективным (например WITH алиас указан в FROM несколько раз). Но это в TEMP tablespace, так-что вроде-бы не должно падать при read only.

SY.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / StandBy и ORA-16000 database open for read-only access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]