powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как восстановить базу без применения журналов?
25 сообщений из 29, страница 1 из 2
Как восстановить базу без применения журналов?
    #35867894
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем базу в состоянии после restore database dbname continue. Как теперь перевести базу в online без наката журналов? понятно что все транзакции после этого не накатяться
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #35867934
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndronИмеем базу в состоянии после restore database dbname continue. Как теперь перевести базу в online без наката журналов? понятно что все транзакции после этого не накатятьсяБез саппорта - никак.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #35873568
Фотография 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, однако эта опция запускает восстановление всех журналов а мне надо на момент времени.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #35873737
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andron,

Здесь посмотрите, похоже на ваш случай
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #35873800
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
rollforward db ... to yyyy-mm-dd-hh.mm.ss.nnnnnn using local time ...
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #35874342
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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) при восстановлении остается открытым. Не будешь же каждый раз при восстановлении извлекать журналы на диск, особенно когда их много.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #35874671
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
rollforward db mailrec2 query status
2. У вас, похоже, либо проблема с восстановлением архивных логов из tsm, либо вы неправильную точку во времени задаёте.
Я правильно понял, что в сообщении SQL4970N указан некоторый лог с номером N, а в tsm есть лог с номером N+1?
Если да, то можете ли вы, скопировав все логи из tsm на диск и накатив до конца (но без and stop/complete), проверить что выдаст после этого
rollforward db mailrec2 query status
?
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #35874772
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Т.е. если я сделал rollforward database ... to ... и при этом накат журналов сломался с ошибкой, то чтобы повторно сделать rollforward database на другой момент времени, надо заново делать restore ?

2. В тексте сообщения SQL4970N никаких номеров журналов нет, я привел его полностью выше.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #35874932
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andron1. Т.е. если я сделал rollforward database ... to ... и при этом накат журналов сломался с ошибкой, то чтобы повторно сделать rollforward database на другой момент времени, надо заново делать restore ?Если накат журнала сломался с ошибкой, то это не значит, что команда ничего не выполнила: например, если указать какую-то точку в будущем, то оно дойдет то доступного конца по логам и отвалится с ошибкой, но то, что оно накатило, оно не отменит.
Т.е. "другой момент времени" надо указывать позже, чем в выводе rollforward ... query status.
Andron2. В тексте сообщения SQL4970N никаких номеров журналов нет, я привел его полностью выше.В v8 можно посмотреть log files processed в выводе этой же rollforward query status.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как восстановить базу без применения журналов?
    #39533631
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сейчас занимаюсь аналогичным действием, точнее его настройкой и автоматизацией.
Подскажите.

Резервная копия создается на TSM еженедельно по субботам, в остальные дни только архивация логов.
Нужно:

1. Ежедневно разворачивать актуальную резервную копию на другой сервер с TSM
2. Ежедневно разворачивать актуальную резервную копию на тот же сервер с TSM, но с другим именем базы.

Если с первым я более менее справился
Код: sql
1.
2.
db2 RESTORE DATABASE <имя_базы> use TSM options "-fromode=<имя клиента промышленного сервера>  TAKEN AT 20160409220009 WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING
db2 rollforward db <имя_базы>  to end of logs and stop



То при изменении имени базы, журналы не хотят докатываться - думаю, что они ищут журналы TSM c другим именем БД:
Код: sql
1.
2.
db2 RESTORE DATABASE <имя_базы> use TSM options "-fromode=<имя клиента промышленного сервера>  TAKEN AT 20160409220009 INTO  <новое_имя_базы> WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING
db2 rollforward db <новое_имя_базы>  to end of logs and stop


Так вот как объяснить базе с новым именем, что журналы надо искать на тсм на базе со старым именем?

И второй вопрос:
Можно ли один раз развернуть базу, а всю неделю докатывать журналы без повторного ее разговаривания, т.е. не делать ежедневно restore одного и того же бекапа базы? Возможно ли как то ввести ее в состояние повтора транзакций и докатить журналы? Или придется ежедневно сначала db2 restore db, затем rollforward.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39534373
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitabios,

По вопросу 1:
DB2 fails to find logs to Rollforward during a Redirected Restore.
Наверное, туда ещё надо --fromnode тоже в конец добавить.

По вопросу 2:
Вы можете постоянно накатывать базу без stop в rollforward. Когда вы делаете rollforward stop и активируете базу, то обратно поместить ее в RF-pending вы не сможете, если в базу пойдут транзакции.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39534377
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535003
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

большое спасибо за ответ! завтра попробую.

я верно понял, что новая база может затереть логи старой при использовании -dbname?
если сразу после rollforward сделать update db cfg и убрать - это критично?

можно немного поподробнее про TSM SET ACCESS / db2adutl grant access ?


И про rollforward stop - а если я сделаю rollforward ... and complete ? Таким образом я могу соединиться с БД, но смогу ли я обратно вернуть ее в RF-pending и накатить журналы? если да то как?
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535054
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitabios,

Да, новая база может затереть логи основной, может добавить свои логи так, что основная может начать брать логи от этой, что будет приводить к щошибкам типа "лог не найден".
Про команды вы можете почитать в соответствующем Knowledge Center.
Смысл в следующем: дать права новой системе только читать логи от основной, но не сохранять свои логи в место, куда это делает основная. Иначе, если вы забудете сбросить параметр новой базы перед rollforward stop, и в неё пойдут транзакции, то она может начать архивировать свои логи к основной базе.
Stop и complete в rollforward - это одно и то же.
После того, как вы соединились с новой базой, вы, скорее всего, уже не сможете вернуть базу в RF-pending так, чтобы можно было продолжить накат логов от основной базы.
Утилита db2rfpen может перевести базу в RF-pending, но накатывать логи от основной вы потом все равно не сможете, т.к. при активации базы она начинает выполнять уже свои собственные транзакции, т.е. начинает жить уже свей жизнью, несовместимой с основной базой.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535075
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

спасибо. никак не пойму как дать доступ readonly тестовой ноде?
Я сделал так:
Код: sql
1.
db2adutl grant user <имя_пользователя >on nodename <имя_клиента тестового сервера>for db <имя_базы>


Таким образом понимаю - дал полный доступ.
Нашел описание, но не могу понять, как выдать доступ только на чтение (вероятно из-за плохого знания английского):
https://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0002077.html
Подскажите?
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535076
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а базу восстанавливал вот так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
db2 RESTORE DATABASE <имя_базы> use TSM options "-fromode=<имя ноды промышленного сервера>  TAKEN AT 20160409220009 WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING

db2 update db cfg for  <имя_базы> using logarchmeth1 TSM:DB2DISK
db2 update db cfg for  <имя_базы> using logarchopt1 "'-fromnode=<имя ноды промышленного сервера>'"
db2 update db cfg for  <имя_базы> using VENDOROPT "'-fromnode=<имя ноды промышленного сервера>'"
db2 update db cfg for  <имя_базы> using TSM_MGMTCLASS "''"
db2 rollforward db stop to end of logs and complete
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535143
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitabios,

db2adutl grant access и выдаёт доступ только на чтение.
В командах должно быть -fromnode, а не -fronode.
Уточните у своего TSM админа на всякий случай, как именно дан доступ клиенту на серверные архивы и логи.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535369
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

пытаюсь вот так:
db2 update db cfg for NEWDB using logarchopt1 "'-fromnode=server_pro_db --dbname=OLDDB'"

не находит журналы.
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535385
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitabiosMark Barinstein,

пытаюсь вот так:
db2 update db cfg for NEWDB using logarchopt1 "'-fromnode=server_pro_db --dbname=OLDDB'"

не находит журналы.Там же в ноте написано:
Код: plaintext
1.
NOTE:
    The "--DBNAME" should be in capital letters, preceded by 2 dashes, and must be the first entry in the options list. 
Попробуйте:
Код: plaintext
db2 update db cfg for NEWDB using logarchopt1 "'--DBNAME=OLDDB -fromnode=server_pro_db'"
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535390
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

регистр имеет значение! вроде задумался, и пока не послал. Логи стали появляться в каталоге их хранения. Видно действительно докатывает!
Огромное Вам спасибо за помощь!
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39535392
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и так же он должен быть первым. простите за невнимательность! Спасибо за помощь!
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39537879
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
интересная штука. сегодня восстановил базу, пользователи жалуются что приложение не работает.
полез смотреть. оказывается пару больших таблиц невозможно открыть. т.е. делаешь селект первых десяти записей и таблица намертво повисает, но и ошибку не выдает. такое чувство что он или пытается сделать реорг таблицы, или восстанавливает индексы по ней. как можно продиагностировать, почему произошла такая ситуация?
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39537884
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
2017-10-18-10.33.12.387000+180 E75083995F545      LEVEL: Warning
PID     : 7412                 TID  : 7640        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : ???
APPHDL  : 0-72                 APPID: 10.81.0.34.58271.171018071444
AUTHID  : DB2ADMIN
EDUID   : 7640                 EDUNAME: db2agent (???)
FUNCTION: DB2 UDB, data management, sqldIndexCreate, probe:1
MESSAGE : ADM5541W  Rebuilding index with IID "22" in object with ID "441" and 
          table space ID "2" on table "?????".,



действительно. начал восстанавливать индексы. Но почему он это начал делать после восстановления базы и когда пользователи вызвали процесс, задействующий таблицу?
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39538374
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitabios,

После взятия архива реорганизация таблиц производилась?
После восстановления из этого архива по логам накатывались через эти операции реорга?
...
Рейтинг: 0 / 0
Как восстановить базу без применения журналов?
    #39539053
vitabios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

при повторном восстановлении проблема не воспроизвелась.
скажите а почему накат журналов может очень долго выполняться (2-3 дня за 8 часов)? Возможно ли причина тому, что после снятия онлайн бекапа выполняется сбор статистики и реорганизация и при накате журналов выполняется реорг и ранстат?
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как восстановить базу без применения журналов?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]