|
|
|
Oracle. Загрузка sqlldr direct. Работает ли откат при ошибке?
|
|||
|---|---|---|---|
|
#18+
Грузим большие объемы (порядка 500 тыс. записей) каждые 5 минут с помощью sqlldr в секционированную таблицу. Секции по часам, плюс есть еще подсекции (12 штук). Контрол файл: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Иногда при загрузке возникает deadlock. При этом обнаружили непонятную проблему. Ожидаем, что при возникновении ошибки Oracle должен выполнить rollback всех загруженных строк. Но проверка данных в целевой таблице показала, что данные не откатились, а были загружены. Как такое можно объяснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 15:34:49 |
|
||
|
Oracle. Загрузка sqlldr direct. Работает ли откат при ошибке?
|
|||
|---|---|---|---|
|
#18+
snopovКак такое можно объяснить? Промежуточными commit - см. лог работы лодыря ("Commit point reached"). Обратите внимание на http://emrebaransel.blogspot.ru/2008/10/sql-loader-performance-using-larger.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 16:56:29 |
|
||
|
Oracle. Загрузка sqlldr direct. Работает ли откат при ошибке?
|
|||
|---|---|---|---|
|
#18+
В том-то и дело, что промежуточных коммитов не должно быть. ROWS параметр у нас не задан. А судя по документации "You can use the ROWS parameter to specify the frequency of the commit points. If the ROWS parameter is not specified, the entire load is rolled back." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 17:06:31 |
|
||
|
Oracle. Загрузка sqlldr direct. Работает ли откат при ошибке?
|
|||
|---|---|---|---|
|
#18+
snopovВ том-то и дело, что промежуточных коммитов не должно быть. ROWS параметр у нас не задан. Лог лодыря уже посмотрите, что попусту интернеты сотрясать... ROWS по умолчанию, если мне не изменяет склероз, что-то вроде 64 - если столько строк в bind array помещается. Если не помещается - то, соответственно, меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 17:52:11 |
|
||
|
Oracle. Загрузка sqlldr direct. Работает ли откат при ошибке?
|
|||
|---|---|---|---|
|
#18+
В логе лоадера промежуточных коммитов нет. И из документации я привел это "If the ROWS parameter is not specified, the entire load is rolled back.". Насколько я понимаю, тут сказано, что если параметр ROWS не определен, то все данные должны быть откачены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 21:12:33 |
|
||
|
Oracle. Загрузка sqlldr direct. Работает ли откат при ошибке?
|
|||
|---|---|---|---|
|
#18+
И все же интересно было бы взглянуть лог загрузки Поведение, которое ты описываешь, указано в доке для Discontinued Direct Path Loads Because of Space errors when loading data into an unpartitioned table, one partition of a partitioned table, or one subpartition of a composite partitioned table А это не очень похоже на Deadlock, да и 12 подсекций -- это HASH? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 02:59:34 |
|
||
|
Oracle. Загрузка sqlldr direct. Работает ли откат при ошибке?
|
|||
|---|---|---|---|
|
#18+
12 секций - HASH А не такое должно быть поведение (для фатал еррор)? http://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_control_file.htm#SUTIL1097 Вот лог загрузки: Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 10:37:51 |
|
||
|
Oracle. Загрузка sqlldr direct. Работает ли откат при ошибке?
|
|||
|---|---|---|---|
|
#18+
Да я и говорю, непохоже Но в доке такое поведение описано в одном случае А тут и одновременно несколько секций и ошибка совсем не по нехватке места А deadlock из-за чего? Можно в трейсе посмотреть граф блокировок и выполняемые операторы Может это действительно рекурсивный оператор по выделению места (хотя нужны ли они, наверняка ведь LMT) и он считает это Space error? Но с 12 секциями все равно не получается натянуть на глобус ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 12:15:58 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39301378&tid=1887555]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 535ms |

| 0 / 0 |
