|
|
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
После деплоймента нам необходимо проверить что все ок - нет инвалидных объектов. Т.к. часть объектов в базе инвалидируется из-за деплоймента, то мы запускаем dbms_utility.compile_schema которая должна по идее все такие объекты вернуть в состояние valid. Тем не менее это происходит не всегда - на практике остаются инвалидные объекты, даже если запускать несколько ранов dbms_utility.compile_schema - по-видимому дело в циклических зависимостях. Существует ли 100% надежный способ откомпилировать схему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 12:18 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
ValergradПосле деплоймента нам необходимо проверить что все ок - нет инвалидных объектов. Т.к. часть объектов в базе инвалидируется из-за деплоймента, то мы запускаем dbms_utility.compile_schema которая должна по идее все такие объекты вернуть в состояние valid. Тем не менее это происходит не всегда - на практике остаются инвалидные объекты, даже если запускать несколько ранов dbms_utility.compile_schema - по-видимому дело в циклических зависимостях. Существует ли 100% надежный способ откомпилировать схему? Я, возможно, непонятно написал - объекты на самом деле валидные, у них нет ошибок в dba_errors, они становятся валидными при первом использовании, но до этого они имеют статус INVALID в dba_objects. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 12:19 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
utl_recomp? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 13:00 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
при shema := null комилируются все инвалидные обьёкты в базе Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 13:04 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
Viewer при shema := null комилируются все инвалидные обьёкты в базе Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Я открыл код dbms_utility.compile_schema, и на самом деле он вызывает именно sys.utl_recomp.recomp_serial(schema); Так что это ничего не изменит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 13:27 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
открой код ?/rdbms/admin/utlrp.sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 13:29 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
Valergrad, появляется возможность выполнить компиляцию не просто схемы, но тотальную компиляцию инвалидных объектов по всей базе с учётом зависимостей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 13:32 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудровоткрой код ?/rdbms/admin/utlrp.sql Это из DBMS_UTILITY: Код: 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. Как видим - внутри вызывается UTL_RECOMP.RECOMP_SERIAL. Я глянул мельком код и этой процедуры, там делается топологическая сортировка, но циклические зависимости суда по всему не обрабатываются. Хотя там непросто разобраться, поэтому я и спросил - может кто-то уже экперт в этом вопросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 13:56 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
Дык я тебе и намекнул где смотреть Правда, обычно этот скрипт вызывается с правами SYSDBA, но по-идее процедурка может быть вызвана любым, на кого распределены права ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 14:06 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, что-то мы друг друга не понимаем. Вот что я нагуглил: авторThe utlrp.sql and utlprp.sql scripts are provided by Oracle to recompile all invalid objects in the database. They are typically run after major database changes such as upgrades or patches. They are located in the $ORACLE_HOME/rdbms/admin directory and provide a wrapper on the UTL_RECOMP package. The utlrp.sql script simply calls the utlprp.sql script with a command line parameter of "0". The utlprp.sql accepts a single integer parameter that indicates the level of parallelism as follows. 0 - The level of parallelism is derived based on the CPU_COUNT parameter. 1 - The recompilation is run serially, one object at a time. N - The recompilation is run in parallel with "N" number of threads. Both scripts must be run as the SYS user, or another user with SYSDBA, to work correctly. Таким образом utlrp вызывает процедуру UTL_RECOMP.RECOMP_SERIAL. Dbms_utility.compile_schema вызывает ее же. Раз не работает Dbms_utility.compile_schema, значит не сработает и UTL_RECOMP.RECOMP_SERIAL и не сработают файлы utlrp.sql и utlprp.sql. Или я где-то неправ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 15:40 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
Valergrad, Вы компилируете только одну схему или несколько? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 15:46 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
Valergrad я нагуглил Почитать сам utlrp.sql религия не позволяет? Зовет он utlprp.sql Внутри скрипта - гайд для юзверей. и собственно вызовы utl_recomp.recomp_parallel @@?/rdbms/admin/reenable_indexes.sql и dbms_registry_sys.validate_components ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 15:52 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousValergrad я нагуглил Почитать сам utlrp.sql религия не позволяет? Не религия, а отсутствие доступа напрямую на машину - у разработчиков доступ туда бывает редко. andrey_anonymousи собственно вызовы utl_recomp.recomp_parallel В непараллельном скрипте я так понимаю с параметром threads = 1? А это сводится опять же ( если посмотреть код UTL_RECOMP ) к вызову этой самой функции utl_recomp.recomp_serial. Про которую я уже трижды написал что она не работает. Вот вам далась эта функция, елы-палы. andrey_anonymousdbms_registry_sys.validate_components А это что за зверь? Про него не удалось нагуглить ничего кроме того что эта недокументированная функция. На первый взгляд непохоже чтобы она имела хоть какое-то отношение к инвалидации пакетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:44 |
|
||
|
dbms_utility.compile_schema оставляет инвалидные объекты
|
|||
|---|---|---|---|
|
#18+
ValergradНе религия, а отсутствие доступа напрямую на машину - у разработчиков доступ туда бывает редко. Ви таки будете смеяться, но эти скрипты в клиентской инсталляции тоже могут лежать - зависит от варианта установки клиента. Лично я на сервер за ними не ходил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:56 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39641940&tid=1884018]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
208ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 554ms |

| 0 / 0 |
