|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
Имеем базу в состоянии после restore database dbname continue. Как теперь перевести базу в online без наката журналов? понятно что все транзакции после этого не накатяться ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2009, 15:46 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
AndronИмеем базу в состоянии после restore database dbname continue. Как теперь перевести базу в online без наката журналов? понятно что все транзакции после этого не накатятьсяБез саппорта - никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2009, 15:59 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
При тестировании восстановления не получается накатить журналы: ROLLFORWARD DATABASE mailrec2 to 2009-02-01 and complete SQL4970N Roll-forward recovery on database "MAILREC2" cannot reach the specified stop point (end-of-log or point-in-time) because of missing log file(s) on node(s) "0". Посмотрел в tsm - журналы есть. Почему тогда ошибка? В описании ошибки сказано что попробовать rollforward с опцией query status, однако эта опция запускает восстановление всех журналов а мне надо на момент времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2009, 11:55 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2009, 12:40 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
AndronПри тестировании восстановления не получается накатить журналы: ROLLFORWARD DATABASE mailrec2 to 2009-02-01 and complete SQL4970N Roll-forward recovery on database "MAILREC2" cannot reach the specified stop point (end-of-log or point-in-time) because of missing log file(s) on node(s) "0". Посмотрел в tsm - журналы есть. Почему тогда ошибка? В описании ошибки сказано что попробовать rollforward с опцией query status, однако эта опция запускает восстановление всех журналов а мне надо на момент времени.Вам надо timestamp указать в формате yyyy-mm-dd-hh.mm.ss.nnnnnn Кроме того, по умолчанию оно в UTC этот timestamp воспринимает. Если хотите, чтоб оно воспринимало этот timestamp как локальное время, используйте Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2009, 12:56 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
mitekAndron, Здесь посмотрите, похоже на ваш случай Там описывается пример cross-node восстановления (т.е. на другом сервере), а у меня сервер тот же, только база другая. Я прочитал статью, там случай когда надо выдать в tsm разрешения на доступ к журналам с другой машины и другому пользователю. Mark Barinstein ... Если хотите, чтоб оно воспринимало этот timestamp как локальное время, используйте ... При указании опции using local time получил ошибку: ROLLFORWARD DATABASE mailrec2 to 2009-02-01 using local time SQL1266N Database "MAILREC2" has been rolled forward to "2009-02-20-00.00.00.000000", which is past the specified point-in-time. т.е. время указано неверно (находится в прошлом) ? совсем непонятно. Но есть нюанс: до этого я пробовал сделать rollforward на другой момент времени, который находится позже. Сделал снова такой же и получил опять ту же ошибку про отсутсвующие журналы. Решил попробовать извлечь эти журналы из tsm на диск и указать их при накате журналов. Использовал в rollforward опции overflow log path для того чтобы указать где лежат извлеченные журналы и noretrieve чтобы db2 не лезла в tsm. Такое восстановление прошло нормально. Тем не менее вопрос с поиском журналов в tsm (ошибка SQL4970N) при восстановлении остается открытым. Не будешь же каждый раз при восстановлении извлекать журналы на диск, особенно когда их много. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2009, 15:31 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
AndronПри указании опции using local time получил ошибку: ROLLFORWARD DATABASE mailrec2 to 2009-02-01 using local time SQL1266N Database "MAILREC2" has been rolled forward to "2009-02-20-00.00.00.000000", which is past the specified point-in-time. т.е. время указано неверно (находится в прошлом) ? совсем непонятно. Но есть нюанс: до этого я пробовал сделать rollforward на другой момент времени, который находится позже. Сделал снова такой же и получил опять ту же ошибку про отсутсвующие журналы.1. Вы не можете указать точку восстановление раньше, чем в выводе команды (она, кстати, накат по логам не запускает) Код: plaintext
Я правильно понял, что в сообщении SQL4970N указан некоторый лог с номером N, а в tsm есть лог с номером N+1? Если да, то можете ли вы, скопировав все логи из tsm на диск и накатив до конца (но без and stop/complete), проверить что выдаст после этого rollforward db mailrec2 query status ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2009, 16:41 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
1. Т.е. если я сделал rollforward database ... to ... и при этом накат журналов сломался с ошибкой, то чтобы повторно сделать rollforward database на другой момент времени, надо заново делать restore ? 2. В тексте сообщения SQL4970N никаких номеров журналов нет, я привел его полностью выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2009, 16:59 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
Andron1. Т.е. если я сделал rollforward database ... to ... и при этом накат журналов сломался с ошибкой, то чтобы повторно сделать rollforward database на другой момент времени, надо заново делать restore ?Если накат журнала сломался с ошибкой, то это не значит, что команда ничего не выполнила: например, если указать какую-то точку в будущем, то оно дойдет то доступного конца по логам и отвалится с ошибкой, но то, что оно накатило, оно не отменит. Т.е. "другой момент времени" надо указывать позже, чем в выводе rollforward ... query status. Andron2. В тексте сообщения SQL4970N никаких номеров журналов нет, я привел его полностью выше.В v8 можно посмотреть log files processed в выводе этой же rollforward query status. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2009, 17:43 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
сейчас занимаюсь аналогичным действием, точнее его настройкой и автоматизацией. Подскажите. Резервная копия создается на TSM еженедельно по субботам, в остальные дни только архивация логов. Нужно: 1. Ежедневно разворачивать актуальную резервную копию на другой сервер с TSM 2. Ежедневно разворачивать актуальную резервную копию на тот же сервер с TSM, но с другим именем базы. Если с первым я более менее справился Код: sql 1. 2.
То при изменении имени базы, журналы не хотят докатываться - думаю, что они ищут журналы TSM c другим именем БД: Код: sql 1. 2.
Так вот как объяснить базе с новым именем, что журналы надо искать на тсм на базе со старым именем? И второй вопрос: Можно ли один раз развернуть базу, а всю неделю докатывать журналы без повторного ее разговаривания, т.е. не делать ежедневно restore одного и того же бекапа базы? Возможно ли как то ввести ее в состояние повтора транзакций и докатить журналы? Или придется ежедневно сначала db2 restore db, затем rollforward. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2017, 18:39 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
vitabios, По вопросу 1: DB2 fails to find logs to Rollforward during a Redirected Restore. Наверное, туда ещё надо --fromnode тоже в конец добавить. По вопросу 2: Вы можете постоянно накатывать базу без stop в rollforward. Когда вы делаете rollforward stop и активируете базу, то обратно поместить ее в RF-pending вы не сможете, если в базу пойдут транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 00:16 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
vitabios, Ну и будьте очень внимательны к замечанию: --- The "--DBNAME" work around has the potential for log archives from the new db2newdb database to get stored on the Tivoli Storage Manager server under the old database (db2db) name. --- Наверное, это лучше с помощью TSM SET ACCESS / db2adutl grant access делать, а не с proxynode. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 00:20 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
Mark Barinstein, большое спасибо за ответ! завтра попробую. я верно понял, что новая база может затереть логи старой при использовании -dbname? если сразу после rollforward сделать update db cfg и убрать - это критично? можно немного поподробнее про TSM SET ACCESS / db2adutl grant access ? И про rollforward stop - а если я сделаю rollforward ... and complete ? Таким образом я могу соединиться с БД, но смогу ли я обратно вернуть ее в RF-pending и накатить журналы? если да то как? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 19:47 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
vitabios, Да, новая база может затереть логи основной, может добавить свои логи так, что основная может начать брать логи от этой, что будет приводить к щошибкам типа "лог не найден". Про команды вы можете почитать в соответствующем Knowledge Center. Смысл в следующем: дать права новой системе только читать логи от основной, но не сохранять свои логи в место, куда это делает основная. Иначе, если вы забудете сбросить параметр новой базы перед rollforward stop, и в неё пойдут транзакции, то она может начать архивировать свои логи к основной базе. Stop и complete в rollforward - это одно и то же. После того, как вы соединились с новой базой, вы, скорее всего, уже не сможете вернуть базу в RF-pending так, чтобы можно было продолжить накат логов от основной базы. Утилита db2rfpen может перевести базу в RF-pending, но накатывать логи от основной вы потом все равно не сможете, т.к. при активации базы она начинает выполнять уже свои собственные транзакции, т.е. начинает жить уже свей жизнью, несовместимой с основной базой. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 21:44 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
Mark Barinstein, спасибо. никак не пойму как дать доступ readonly тестовой ноде? Я сделал так: Код: sql 1.
Таким образом понимаю - дал полный доступ. Нашел описание, но не могу понять, как выдать доступ только на чтение (вероятно из-за плохого знания английского): https://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0002077.html Подскажите? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 23:15 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
а базу восстанавливал вот так: Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 23:19 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
vitabios, db2adutl grant access и выдаёт доступ только на чтение. В командах должно быть -fromnode, а не -fronode. Уточните у своего TSM админа на всякий случай, как именно дан доступ клиенту на серверные архивы и логи. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 08:00 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
Mark Barinstein, пытаюсь вот так: db2 update db cfg for NEWDB using logarchopt1 "'-fromnode=server_pro_db --dbname=OLDDB'" не находит журналы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 13:57 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
vitabiosMark Barinstein, пытаюсь вот так: db2 update db cfg for NEWDB using logarchopt1 "'-fromnode=server_pro_db --dbname=OLDDB'" не находит журналы.Там же в ноте написано: Код: plaintext 1.
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 14:13 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
Mark Barinstein, регистр имеет значение! вроде задумался, и пока не послал. Логи стали появляться в каталоге их хранения. Видно действительно докатывает! Огромное Вам спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 14:19 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
и так же он должен быть первым. простите за невнимательность! Спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 14:21 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
интересная штука. сегодня восстановил базу, пользователи жалуются что приложение не работает. полез смотреть. оказывается пару больших таблиц невозможно открыть. т.е. делаешь селект первых десяти записей и таблица намертво повисает, но и ошибку не выдает. такое чувство что он или пытается сделать реорг таблицы, или восстанавливает индексы по ней. как можно продиагностировать, почему произошла такая ситуация? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 10:29 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
действительно. начал восстанавливать индексы. Но почему он это начал делать после восстановления базы и когда пользователи вызвали процесс, задействующий таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 10:37 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
vitabios, После взятия архива реорганизация таблиц производилась? После восстановления из этого архива по логам накатывались через эти операции реорга? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 19:06 |
|
Как восстановить базу без применения журналов?
|
|||
---|---|---|---|
#18+
Mark Barinstein, при повторном восстановлении проблема не воспроизвелась. скажите а почему накат журналов может очень долго выполняться (2-3 дня за 8 часов)? Возможно ли причина тому, что после снятия онлайн бекапа выполняется сбор статистики и реорганизация и при накате журналов выполняется реорг и ранстат? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 18:14 |
|
|
start [/forum/topic.php?fid=43&fpage=8&tid=1600387]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 163ms |
0 / 0 |