|
|
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Добрый день! Задача - сделать разделение секции P_DEFAULT таблицы MYTEST_IN_DOC , не прерывая работу системы. Нужен результат, как после: Код: plsql 1. 2. На таблицах выполнятеся только INSERT . Какой последовательностью действий можно решить задачу? Исходные данные: Код: plsql 1. 2. 3. 4. 5. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 06:46 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
rename table + create view + "instead of insert" trigger + складываешь в сторонке + параллельно курочишь как хочешь исходные таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 07:24 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
потом сливаешь обратно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 07:24 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 07:48 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Вадиманrename table + create view + "instead of insert" trigger + складываешь в сторонке + параллельно курочишь как хочешь исходные таблицы Я правильно понял суть? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. А триггер для чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 08:08 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Щукина Анна dbms_redefinition отменили? Спасибо, сейчас гляну как это используется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 08:09 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Примерно. Если вьюха - простой SELECT * FROM table - то триггер не нужен. online_redef - нет, не отменили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 08:10 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, из докиPrivileges Required for the DBMS_REDEFINITION Package Execute privileges on the DBMS_REDEFINITION package are granted to EXECUTE_CATALOG_ROLE. In addition to having execute privileges on this package, you must be granted the following privileges: CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE LOCK ANY TABLE SELECT ANY TABLE The following additional privileges are required to execute COPY_TABLE_DEPENDENTS: CREATE ANY TRIGGER CREATE ANY INDEX К сожалению таких привилегий у меня нет, так что пока не удалось этот пакет "пощупать" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 12:04 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Если в новой секции не будет записей, то просто выполнить split Это будет чисто операция над словарем + создание новых пустых секций А вот кто догадался делать секционированный индекс ik_mytest_in_doc$doc_date глобальным -- заслуживает отдельного восхищения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 13:35 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
rushchelК сожалению таких привилегий у меня нет, так что пока не удалось этот пакет "пощупать" Значит ты не DBA. А DBMS_REDEFINITION девелоперам незачем заниматься (нормальный DBA никогда не даст). А на "пощупать" - Oracle на домашний комп можно качать бесплатно. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 13:57 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровЕсли в новой секции не будет записей, то просто выполнить split Это будет чисто операция над словарем + создание новых пустых секций А вот кто догадался делать секционированный индекс ik_mytest_in_doc$doc_date глобальным -- заслуживает отдельного восхищенияВ новой секции P_2018 будут данные. Попробую, как Вадиман посоветовал. А есть еще идеи? Если не трудно, можно про индекс развернуть мысль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 15:20 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
SY, да не DBA, буду дома тренироваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 15:24 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
rushchelВ новой секции P_2018 будут данные.А в P_DEFAULT ? Если нет, то выполнится просто переименование на уровне словаря P_DEFAULT на P_2017 и создастся новая пустая секция P_DEFAULT rushchelЕсли не трудно, можно про индекс развернуть мысль.Зачем делать секционированный индекс глобальным если ключ и границы секционирования одинаковы с таблицей? Сейчас тебе придется также делать SPLIT секции индекса (отдельным оператором), а будь он локальным, все бы сделалось автоматом Ну и локальный меньше места занимает :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 15:32 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровА в P_DEFAULT ? Если нет, то выполнится просто переименование на уровне словаря P_DEFAULT на P_2017 и создастся новая пустая секция P_DEFAULTВ P_DEFAULT не будет данных. Ну так-то вроде логично. Поделаю тесты. По идее на уровне словаря это же быстро и не должно быть простоя? Вячеслав ЛюбомудровЗачем делать секционированный индекс глобальным если ключ и границы секционирования одинаковы с таблицей? Сейчас тебе придется также делать SPLIT секции индекса (отдельным оператором), а будь он локальным, все бы сделалось автоматом Ну и локальный меньше места занимает :-)Ок учту. Значит в обслуживании локальный проще чем глобальный, по крайней мере в этом случае. Ну дома потренируюсь. А локальный индекс тоже будет по секциям и имена секций от таблицы будут браться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 16:20 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Я ведь правильно понимаю, если получил такое: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. То значит для таблицы нельзя выполнить online redefinition? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 19:33 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
rushchel, В 12.2 split может быть online ведь doc Partition maintenance with SPLIT operations are supported as online operations with the keyword ONLINE for heap organized tables, enabling concurrent DML operations while a partition maintenance operation is ongoing. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 21:19 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
rushchelТо значит для таблицы нельзя выполнить online redefinition? Скорее всего IN_DOC имeет child таблицы. Online redefinition тут невозможен, придется drop FK, redefinition, create FK. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 21:53 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
SYrushchelТо значит для таблицы нельзя выполнить online redefinition? Скорее всего IN_DOC имeет child таблицы. Не човчем. Она является базовой для partition by reference. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 00:49 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousSYпропущено... Скорее всего IN_DOC имeет child таблицы. Не човчем. Она является базовой для partition by reference.Да, так и есть. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 11:26 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Rb-Sr, Да, я пробовал использовать опцию ONLINE, но ORACLE отфутболил по причине, как в сообщении выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 11:30 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
Итак, мои выводы по исходной задаче: 1) split partition online не доступен 2) нужно делать split partition во время минимальной активности в системе Если бы в результате разбиения новая секция P_DEFAULT стала не пустой, то для минимизации простоя использовал бы советВадиманrename table + create view + "instead of insert" trigger + складываешь в сторонке + параллельно курочишь как хочешь исходные таблицыПоскольку в результате разбиения новая секция P_DEFAULT будет пустой, то просто выполню оператор Код: plsql 1. 2. Запланирую работу на час ночи. Спасибо всем за советы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 15:15 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
rushchel1) split partition online не доступен Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 11:37 |
|
||
|
Как сделать split partition online?
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, а с данными получится? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 13:13 |
|
||
|
|

start [/forum/topic.php?fid=52&gotonew=1&tid=1883246]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
143ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 436ms |

| 0 / 0 |
