|
|
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
Есть таблицы над которыми создано (fast on commit) матвью. Для примера, примитивчик: create table tab_tmp1 ( id number, f1 number, f2 varchar2(10), f3 date ); alter table tab_tmp1 add constraint ptab_tmp1 primary key (ID); create table tab_tmp2 ( id number, f4_id number, f5 varchar2(100) ); alter table tab_tmp2 add constraint ptab_tmp2 primary key (ID); create table tab_tmp3 ( id number, f6_id number, f7 varchar2(50), f8 varchar2(50), f9 varchar2(10) ); alter table tab_tmp3 add constraint ptab_tmp3 primary key (ID); create MATERIALIZED VIEW LOG ON tab_tmp1 WITH ROWID, PRIMARY KEY, SEQUENCE INCLUDING NEW VALUES; create MATERIALIZED VIEW LOG ON tab_tmp2 WITH ROWID, PRIMARY KEY, SEQUENCE INCLUDING NEW VALUES; create MATERIALIZED VIEW LOG ON tab_tmp3 WITH ROWID, PRIMARY KEY, SEQUENCE INCLUDING NEW VALUES; create MATERIALIZED VIEW MV_TAB_TMP refresh fast on commit as select t1.rowid as r1, t2.rowid as r2, t3.rowid as r3, t1.id as id1, t1.f1, t1.f2, t1.f3, t2.id as id2, t2.f5, t3.id as id3, t3.f7, t3.f8, t3.f9 from tab_tmp1 t1, tab_tmp2 t2, tab_tmp3 t3 where t1.id = t2.f4_id and t1.id = t3.f6_id; Далее провожу вставки в таблицы: insert into tab_tmp1 values(1,1,'dfgdfgf',sysdate); insert into tab_tmp1 values(2,2,'sdfsdfs',sysdate); insert into tab_tmp2 values(3,1,'fhgfgh'); insert into tab_tmp2 values(4,1,'fghfgh'); insert into tab_tmp2 values(5,2,'fhfghf'); insert into tab_tmp3 values(6,1,'terter','eter','eterert'); insert into tab_tmp3 values(7,1,'terter','eter','eterert'); insert into tab_tmp3 values(8,2,'terter','eter','eterert'); insert into tab_tmp3 values(9,2,'terter','eter','eterert'); commit; На БД версии 11.2.0.4.0 все проходит без проблем !!! Данные вставляються, вьюха обновляеться. А вот на На Бд версии 11.2.0.3.0 ошибки вида: ORA-12008: error in materialized view refresh path Например, если commit в конце (как в примере), тогда - ORA-01741: illegal zero-length identifier Если commit после каждого инсерта, тогда ORA-00903: invalid table name - при попытке вставить в первые 2 таблицы, и все инсерты проходят нормально, при попытке вставить в третью. На делитах, другие ошибки (для простоты не стал их тут приводить). Насколько я понял, после интенсивного гугления - это БАГ и лечиться патчем 11.2.0.4.0 Вопрос, к тем, кто сталкивался с данной ситуацией - можно ли как то обойти установку патча. прим. Оракл, крутится на 2.6.32-504.elf6.x86_64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 14:09 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
Не воспроизводится: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 14:23 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
странно. А баг обязательно должен строго воспроизводиться на всех устновках данной версии ? К сожалению у меня только одна БД под 11.2.0.3, остальные 11.2.0.4 - на них отрабатывает все ОК. !!! И что самое интересное - на 2-х первых таблицах вставки не проходят, а на 3-й проходят без проблем. То есть нет никакой системы, за которую можно зацепиться. Делал похожие вьюхи, так там могло быть наоборот. К сожалению, доступ на металинк не имею. Поэтому тут вопрос скорее к тем, кто нарывался уже на подобную ситуацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 14:31 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
A KНасколько я понял, после интенсивного гугления - это БАГ и лечиться патчем 11.2.0.4.0 А что дает: Код: plsql 1. 2. 3. 4. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 14:37 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
ни одной строки, пусто - по всем таблицам и по всем БД (и 11.2.0.3 и 11.2.0.4) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 14:49 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
A Kни одной строки, пусто - по всем таблицам и по всем БД (и 11.2.0.3 и 11.2.0.4) А tab_tmp2 и tab_tmp3 проверил? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. Добавлениe RLS после создания MV делает MV не fast refreshable: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 15:17 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
Мда, есть такое впечатление, что это RLS, и на некоторых форумах тоже на это пишут, но к сожалению: Проверил на разных БД (на патчах и 3 и 4 и для всех 3-х таблиц) Скажу более, проверил даже так: SELECT distinct OBJECT_OWNER FROM DBA_POLICIES только 1 MDSYS 2 XDB Сам понимаешь, ни под одной из этих схем я таблиц не создаю И даже вот так (под DBA): SELECT * FROM DBA_POLICIES WHERE lower(OBJECT_NAME) = lower('TAB_TMP1'); (а так же TAB_TMP2 и TAB_TMP3) Пусто ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 15:33 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
А что еще кроме, RLS может быть, но что ведет себя подобно RLS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 16:27 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
Локализовал проблему create table tab_tmp1 ( id number, f1 number, f2 varchar2(10), f3 date ); alter table tab_tmp1 add constraint ptab_tmp1 primary key (ID); create table tab_tmp2 ( id number, f4_id number, f5 varchar2(100) ); alter table tab_tmp2 add constraint ptab_tmp2 primary key (ID); create table tab_tmp3 ( id number, f6_id number, f7 varchar2(50), f8 varchar2(50), f9 varchar2(10) ); alter table tab_tmp3 add constraint ptab_tmp3 primary key (ID); create MATERIALIZED VIEW LOG ON tab_tmp1 WITH ROWID, PRIMARY KEY, SEQUENCE INCLUDING NEW VALUES; create MATERIALIZED VIEW LOG ON tab_tmp2 WITH ROWID, PRIMARY KEY, SEQUENCE INCLUDING NEW VALUES; create MATERIALIZED VIEW LOG ON tab_tmp3 WITH ROWID, PRIMARY KEY, SEQUENCE INCLUDING NEW VALUES; create MATERIALIZED VIEW MV_TAB_TMP refresh fast on DEMAND as select t1.rowid as r1, t2.rowid as r2, t3.rowid as r3, t1.id as id1, t1.f1, t1.f2, t1.f3, t2.id as id2, t2.f5, t3.id as id3, t3.f7, t3.f8, t3.f9 from tab_tmp1 t1, tab_tmp2 t2, tab_tmp3 t3 where t1.id = t2.f4_id and t1.id = t3.f6_id; затем заполняю данными таблицы: insert into tab_tmp1 values(1,1,'dfgdfgf',sysdate); insert into tab_tmp1 values(2,2,'sdfsdfs',sysdate); insert into tab_tmp2 values(3,1,'fhgfgh'); insert into tab_tmp2 values(4,1,'fghfgh'); insert into tab_tmp2 values(5,2,'fhfghf'); insert into tab_tmp3 values(6,1,'terter','eter','eterert'); insert into tab_tmp3 values(7,1,'terter','eter','eterert'); insert into tab_tmp3 values(8,2,'terter','eter','eterert'); insert into tab_tmp3 values(9,2,'terter','eter','eterert'); commit; Затем: execute DBMS_MVIEW.REFRESH('MV_TAB_TMP', 'F') begin DBMS_MVIEW.REFRESH('MV_TAB_TMP', 'F'); end; ORA-12008: error in materialized view refresh path ORA-01741: illegal zero-length identifier ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2563 ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2776 ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2745 ORA-06512: at line 1 То есть БАГ проявляется на Фаст рефреше. Гуглил, пишут, что лечиться обновлением до 11.2.0.4 Если у кого-то была подобная ситуация, решал ли кто-то без обновления ? Очень проблемано его ставить, а фаст рефреш очень нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 18:23 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
A KЛокализовал проблему Не воспроизводится: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 18:42 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
Конечно не воспроизводиться :) У меня тоже нигде не воспроизводится кроме одной единственной БД с патчем 11.2.0.3 и RAC-ом. На то оно и Баг, что бы не везде воспроизводиться. Просто по сравнению с предыдущем случаем, где матвьюха была с ON COMMIT и FAST. В этом примере исключен "ON COMMIT" - как не проблемный. Данные в таблицы все вставились нормально. А вот FAST refresh не проходит по причине бага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 18:56 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
C ON COMMIT также не воспозвoдится. RACa с 11.2.0.3 нет в наличии. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 19:09 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
да, поэтому вопрос на знатока, который с этим сталкивался. как альтернатива - писать на металинк, но доступа к сожалению нет. Можно поставить патч 11.2.0.4, а иначе придется делать костыли или разрабатывать обходные пути. :) - чем, наверное и займемся, если с патчем не выгорит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 19:17 |
|
||
|
ORA-12008: на вставках и удалениях в таблицы над которыми создано (fast on commit) матвью
|
|||
|---|---|---|---|
|
#18+
A K, Попробуйте Код: plsql 1. Если поможет, есть патчи для некоторых платформ и версий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 19:36 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39709495&tid=1883408]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
183ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 498ms |

| 0 / 0 |
