|
Восстановление БД с онлайн-копии + накат журналов на тестовом сервере
|
|||
---|---|---|---|
#18+
Доброго времени года. Конфиг журналов (и для прода, и для теста): Код: plaintext 1. 2. 3. 4. 5. 6.
Что хочу: например, в пятницу восстановить на тестовом сервере онлайн-копию БД с прода и накатить журналы до состояния "на сейчас" . При этом, на про Что делал: На проде в понедельник: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
На тестовом сервере в пятницу: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
И получается так, что на тестовом сервере не накатываются часть данных с прода, выполненные с понедельника по пятницу. Что здесь не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2021, 21:30 |
|
Восстановление БД с онлайн-копии + накат журналов на тестовом сервере
|
|||
---|---|---|---|
#18+
Shipovnix, Добрый день. 1. Если это не опечатка, и вы действительно вставили команду операционной системы (xcopy) вот так в скрипт SQL команд для выполнения его командным процессором db2, то эта команда просто не выполнится. Чтоб команды ОС в SQL скриптах выполнять, надо перед ними знак ! ставить. 2. Если "на сейчас" хочется восстанавливаться, то можно и активные логи тоже копировать в overflow log path, например, чтоб по ним накатываться. 3. После rollforward ... to end of logs поставьте rollforward ... query status и смотрите, накатилось оно по всем доступным логам - архивным и тем, что в overflow. Если нет, ищите почему rollforward их не нашёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2021, 22:27 |
|
Восстановление БД с онлайн-копии + накат журналов на тестовом сервере
|
|||
---|---|---|---|
#18+
Mark Barinstein 1. Если это не опечатка, и вы действительно вставили команду операционной системы (xcopy) вот так в скрипт SQL команд для выполнения его командным процессором db2, то эта команда просто не выполнится. Чтоб команды ОС в SQL скриптах выполнять, надо перед ними знак ! ставить. Все нормально, это выжимка из скрипта db2clp, команда xcopy выполняется. Mark Barinstein 2. Если "на сейчас" хочется восстанавливаться, то можно и активные логи тоже копировать в overflow log path, например, чтоб по ним накатываться. "Можно" активные логи копировать или "нужно"? Только архивными логами здесь не обойтись? Вообще, как быстро db2 скидывет в архивный лог журналы? Пока тестировал на копеечной базе, по ощущениям — моментально, и в целом скрипт работал нормально . На более-менее крупной БД как будто далеко не сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2021, 07:24 |
|
Восстановление БД с онлайн-копии + накат журналов на тестовом сервере
|
|||
---|---|---|---|
#18+
Shipovnix "Можно" активные логи копировать или "нужно"? Только архивными логами здесь не обойтись? Зависит от того, конечно, сколько транзакций вы хотите восстановить. Db2 работает примерно так: как только очередной файл лога (размер его задается параметром базы LOGFILSIZ в 4K страницах) заполнился, то он поступает в очередь на архивирование. Журналирование продолжается в новый файл. Причем лог может быть и заархивирован, и остаться в активном пути, т.к. db2 не удаляет заархивированный файл из активного пути, пока он всё еще нужен для восстановления после сбоя (т.е. пока он активен). Вы должны понимать, что если вы этот новый файл не скопируете, то информация из него не применится на восстановленной базе. Много там информации или мало, зависит, конечно, от нагрузки, размера файла лога и т.д. Если у вас, например, низкая нагрузка в базе и большой размер лога, то может получиться, что в том логе, в который в данный момент идет запись, может накопиться информация за довольно большой промежуток времени. Поэтому - обойтись одними архивными логами, конечно, можно. Но какую-то часть последних транзакций вы не восстановите. Shipovnix Вообще, как быстро db2 скидывет в архивный лог журналы? Информация об архивировании логов записывается в диагностический журнал. Этот текстовый файл или файлы (db2diag.log*) можно смотреть как на сервере, так и запросом в базу. Например, за последний день: Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2021, 12:36 |
|
Восстановление БД с онлайн-копии + накат журналов на тестовом сервере
|
|||
---|---|---|---|
#18+
Mark Barinstein, Спасибо большое! Каша в голове более-менее разлеглась по полочкам. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2021, 18:19 |
|
Восстановление БД с онлайн-копии + накат журналов на тестовом сервере
|
|||
---|---|---|---|
#18+
Mark Barinstein, И всё равно осталась масса вопросов. Делаю резервную копию на проде: Код: sql 1. 2.
То есть, подразумевается, что INCLUDE LOGS включает все журналы, необходимые для восстановления из бэкапа. Тем не менее, при восстановлении на удаленном сервере я получаю: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Так чего же ей не хватает, если по описанию директивы INCLUDE LOGS включенных в бэкап журналов должно хватать для восстановления? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 10:00 |
|
Восстановление БД с онлайн-копии + накат журналов на тестовом сервере
|
|||
---|---|---|---|
#18+
Shipovnix, По умолчанию логи из архива не копируются из него при RESTORE. См. описание опции LOGTARGET команды RESTORE DATABASE RESTORE DATABASELOGTARGET directory Non-snapshot restores: The absolute path name of an existing directory on the database server to be used as the target directory for copying active log files from a backup image. If this option is specified, any active log files that are contained within the backup image will be copied into the target directory. If this option is not specified, active log files that are contained within a backup image will not be copied. Ну и в опции OVERFLOW LOG PATH команды ROLLFORWARD надо потом указать этот каталог явно, если он не является тем каталогом, в которых ROLLFORWARD эти логи и так ищет (активные и архивные пути, указанный путь в параметре базы OVERFLOWLOGPATH). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2021, 11:50 |
|
|
start [/forum/topic.php?fid=43&tid=1600104]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
others: | 308ms |
total: | 414ms |
0 / 0 |