|
Восстановление по логу
|
|||
---|---|---|---|
#18+
В IBExpert'e есть генерация триггеров для логирования удаления. А есть где-то пример скрипта, как по логу восстанавливать удаленные строки? Или у кого-то есть опыт такового восстановления? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 09:18 |
|
Восстановление по логу
|
|||
---|---|---|---|
#18+
CyberMax, Если ты про протоколирование операций, то IBE просто в свою таблицу логов пишет сам факт изменения данных, но не данные. Т.е. в лог попадает только основная информация - имя таблицы, операция, время и значение PK. Чтобы организовать восстановление данных - их нужно самому писать. Т.е. при удалении к примеру выставлять какой-то флаг типа ISDELETED == 1 в таблице и создавать таблицу- зеркало в которую писать старые версии данных при UPDATE. Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 14:26 |
|
Восстановление по логу
|
|||
---|---|---|---|
#18+
CyberMaxВ IBExpert'e есть генерация триггеров для логирования удаления. А есть где-то пример скрипта, как по логу восстанавливать удаленные строки? Или у кого-то есть опыт такового восстановления? INSERT вроде не проблема по данным таблиц протоколирования составить. Только в общем случае это не будет работать, ибо по логике протоколирования восстанавливать нужно все начиная с последней запротоколированной операции, в обратном порядке. И хорошо, если протоколировалось все. А если частично? В общем, эти логи, скорее, для посмотреть, кто, что и когда менял. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 15:06 |
|
Восстановление по логу
|
|||
---|---|---|---|
#18+
IBExpert, А разве в лог IBE все ланные попадают? Ну составит он INSERT скрипт из лога, повставляет ID (как PK) - дальше чего? Пусть строит зеркальные таблицы для логирования всего, что нужно, а потом откатывает назад (по метке времени к примеру). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 18:44 |
|
Восстановление по логу
|
|||
---|---|---|---|
#18+
DarkMasterIBExpert, А разве в лог IBE все ланные попадают? Ну составит он INSERT скрипт из лога, повставляет ID (как PK) - дальше чего? Эксперт только триггеры соответствующие создает. Да, можно протоколировать изменения любых полей. Какие галки в интерфейсе натыкаешь, то и попадет в триггер. Ну и руками туда дописать что угодно тоже не возбраняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2016, 04:28 |
|
Восстановление по логу
|
|||
---|---|---|---|
#18+
IBExpert, Так ведь при восстановлении (INSERT) надо указать то содержимое полей, которое было зафиксировано при удалении - этого достаточно. Решил проблему в два этапа - перегонку во временную таблицу логов (для ускорения операции) и восстановление строк. Получилось вот так: Код: 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.
Если когда-нибудь в IBE появится генерация подобного скрипта, было бы очень удобно. Но потребность в этом неизвестна. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2016, 01:33 |
|
Восстановление по логу
|
|||
---|---|---|---|
#18+
CyberMaxТак ведь при восстановлении (INSERT) надо указать то содержимое полей, которое было зафиксировано при удалении - этого достаточно. В каких-то случаях - да, достаточно. Но восстанавливаемая запись может ссылаться на записи в других таблицах, которые тоже могут быть удалены. И тогда сначала нужно восстанавливать их, иначе твой INSERT обломается. Я об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2016, 05:44 |
|
|
start [/forum/topic.php?fid=42&fpage=20&tid=1599173]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 144ms |
0 / 0 |