|
|
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
Юзер в 13:00 грохнул данные. Есть архив 0-го уровня и далее архивы журналов. Но предыдущий перед удалением данных журнал (например 9025) сархивировался в 8:30, а следующий (9026) в 16:00. Т.е. восстановил я из архива базу, дошёл по журналам до 9025 - 8:30. Если я накачу следующий журнал 9026, то данные естественно пропадут. А хотелось бы накатить, но как-то из него изъять транзакцию на удаление. Я знаю, что в Оракле такую операцию проделать можно. А можно ли в информиксе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 14:59 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
Юзер в 13:00 грохнул данные. Есть архив 0-го уровня и далее архивы журналов. Но предыдущий перед удалением данных журнал (например 9025) сархивировался в 8:30, а следующий (9026) в 16:00. Т.е. восстановил я из архива базу, дошёл по журналам до 9025 - 8:30. Если я накачу следующий журнал 9026, то данные естественно пропадут. А хотелось бы накатить, но как-то из него изъять транзакцию на удаление. Я знаю, что в Оракле такую операцию проделать можно. А можно ли в информиксе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 15:20 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
Чем делал архивы - ontape или onbar? Если ontape то накатить сможешь только на конкретный журнал. Если onbar то можно указать момент времени на который накатывать (point-to-time restore). Т.е. тебе надо указать момент времени до которого произошла фиксация удаления записей (commit), если все делал в одной транзакции, или же перед первым коммитом если в нескольких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 15:29 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
AndronЧем делал архивы - ontape или onbar? Если ontape то накатить сможешь только на конкретный журнал. Если onbar то можно указать момент времени на который накатывать (point-to-time restore). Т.е. тебе надо указать момент времени до которого произошла фиксация удаления записей (commit), если все делал в одной транзакции, или же перед первым коммитом если в нескольких. Делаю ontape. Да-да, вспомнил, что в onbar есть возможность восстановления к указанному времени. Но чегой-то не сложилось у меня с onbar в своё время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 16:59 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
AndronЧем делал архивы - ontape или onbar? Если ontape то накатить сможешь только на конкретный журнал. Если onbar то можно указать момент времени на который накатывать (point-to-time restore). Т.е. тебе надо указать момент времени до которого произошла фиксация удаления записей (commit), если все делал в одной транзакции, или же перед первым коммитом если в нескольких. Сорри, а как это, ontape-ом на конкретный журнал ? А всю дорогу наивно полагал, что ontape восстанавливает лентами, т.е. всеми журналами, которые есть в архиве ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 17:53 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
ontapeСорри, а как это, ontape-ом на конкретный журнал ? А всю дорогу наивно полагал, что ontape восстанавливает лентами, т.е. всеми журналами, которые есть в архиве ... Имеется ввиду, что ontape может накатывать только весь журнал, а не его часть в отличие от onbar. Тобишь в указанном мною примере: 0-й архив, далее 9000, 9001,...,9025 журналы. 9026 уже накатывать нет смысла, т.к. там сидит транзакция на удаление. А onbar всё так же, но ещё может накатить часть 9026 журнала, в зависимости от указанного времени восстановления (до того момента, когда произошло удаление данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 18:38 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
Если удаленные данные были в одной или двух таблицах, то можно восстановиться на резервный сервак и напрямую запросами взять данные и поместить в основную БД. Но на практике, в промышленной среде с ее бизнес-логикой на сервере приложения, триггерами и констрейтами...довольно проблематично :( Проще заставить виноватого юзера руками занести все удаленные данные :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 20:45 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
vasilisЕсли удаленные данные были в одной или двух таблицах, то можно восстановиться на резервный сервак и напрямую запросами взять данные и поместить в основную БД. Но на практике, в промышленной среде с ее бизнес-логикой на сервере приложения, триггерами и констрейтами...довольно проблематично :( Проще заставить виноватого юзера руками занести все удаленные данные :) Так весь вопрос как раз в том как на резервном серваке восстановить эти данные максимально близко к удалению. А перегнать их и скриптами можно. А юзер это и не юзер вовсе, а просто молодой и неопытный программер. Он и не знает толком что удалил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 21:36 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
Rumata EstorskiyЮзер в 13:00 грохнул данные. Есть архив 0-го уровня и далее архивы журналов. Но предыдущий перед удалением данных журнал (например 9025) сархивировался в 8:30, а следующий (9026) в 16:00. Т.е. восстановил я из архива базу, дошёл по журналам до 9025 - 8:30. Если я накачу следующий журнал 9026, то данные естественно пропадут. А хотелось бы накатить, но как-то из него изъять транзакцию на удаление. Я знаю, что в Оракле такую операцию проделать можно. А можно ли в информиксе? нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 21:55 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
Можно. Только для этого нужно знать позицию в логе либо %использования на нужный момент времени. С устройства с архивом логов выбираете необходимый размер архива для восстановления.. Начните с немного меньше требуемого размера. После каждого восстановления логов ontape спрашивает есть ли еще архивы логов для восстановления. Вы, постепенно увеличивая размер файла с архивом логов можете подойти в плотную к нужному вам месту. При повторном использовании того же файла, ontape пропустит уже восстановленные транзакции. Т.е. берете кусок архива логов и постепенно увеличивая его и подсовывая онтейпу подходите к нужному вам месту. Но Василий прав, хлопотно все это. Возможно, что потом еще будете долгое время все это вылизывать и пожалеете о том, что не поручили пользователю заново вбить данные. Так что лучше оцените затраты сейчас, чтобы потом не мучал геморрой. Не всегда такие действия по восстановлению приводят к желаемому результату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 10:42 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
Вернее можно накатить до момента удаления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 10:43 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
cleanerС устройства с архивом логов выбираете необходимый размер архива для восстановления.. Это как я могу выбрать размер? У меня журналы архивируются и складываются на диск в виде файлов. При восстановлении ontape просит только очередной журнал. Никаких размеров я никогда и нигде не видел. Не буду же я двоичный файл руками резать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:34 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
Зачем руками, dd подойдет. Называется "метод ловли льва в Африке". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:49 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
vasilisЕсли удаленные данные были в одной или двух таблицах, то можно восстановиться на резервный сервак и напрямую запросами взять данные и поместить в основную БД. Теперь, когда IBM выпустила замечательную версию информикса IDS10, зачем тратить время на восстановление всего сервера, если надо восстановить только незначительную часть данных? :) В 10 версии Informix есть table-level restore , поэтому можно вытащить данные на момент времени , главное - чтобы таблица существовала до того как сделали level-0. Кстати чем делали архив для этого не имеет значения, table-level restore одинаково работает с ontape и onbar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 12:18 |
|
||
|
Как удалить транзакцию из архивного журнала
|
|||
|---|---|---|---|
|
#18+
cleanerМожно. Только для этого нужно знать позицию в логе либо %использования на нужный момент времени. С устройства с архивом логов выбираете необходимый размер архива для восстановления.. Начните с немного меньше требуемого размера. После каждого восстановления логов ontape спрашивает есть ли еще архивы логов для восстановления. Вы, постепенно увеличивая размер файла с архивом логов можете подойти в плотную к нужному вам месту. При повторном использовании того же файла, ontape пропустит уже восстановленные транзакции. Т.е. берете кусок архива логов и постепенно увеличивая его и подсовывая онтейпу подходите к нужному вам месту. Но Василий прав, хлопотно все это. Возможно, что потом еще будете долгое время все это вылизывать и пожалеете о том, что не поручили пользователю заново вбить данные. Так что лучше оцените затраты сейчас, чтобы потом не мучал геморрой. Не всегда такие действия по восстановлению приводят к желаемому результату. Человек спрашивал, можно ли удалить одну транзакцию из лога, накатив все остальные. Правильный ответ - нельзя. Хоть делением файла, хоть как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 20:29 |
|
||
|
|

start [/forum/topic.php?fid=44&gotonew=1&tid=1608698]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 362ms |

| 0 / 0 |
