Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Очистка TSM от старых бэкапов и журналов / 23 сообщений из 23, страница 1 из 1
25.02.2016, 17:50
    #39179209
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Здравствуйте всем!

На сервере DB2 9.7 настроено архивное журналирование и резервное копирование БД на TSM. Раз в неделю выполняется полный онлайн-бэкап (с опцией INCLUDE LOGS). Необходимо настроить, чтобы на TSM оставались только 3 последние копии БД.

Удаление полных онлайн-бэкапов выполняется командой:
Код: plsql
1.
db2adutl delete full keep 3 db MYDB nodename MYNODENAME



Эта команда оставляет только 3 последние резервные копии БД, но не удаляет архивные логи.

Отсюда вопросы:
1. Есть ли смысл хранить архивные логи, сохраненные до первой из трех полных онлайн-копий?
2. Существует ли возможность отката базы на время, раньше отметки первой сохраненной полной онлайн-копии?
3. db2adutl query full выдает список резервных копий с отметкой времени и значением Oldest log (я понимаю, это последний включенный в резервную копию лог). Существует команда удаления логов
Код: plsql
1.
db2adutl delete logs older than <Oldest log> db MYDB nodename MYNODENAME


Она удаляет все архивные логи, созданные ранее Oldest log, включая сам Oldest log. Насколько будет правильно, если мы имеем полный онлайн-бэкап (INCLUDE LOGS) и удалим все архивные журналы, включая последний Oldest log?

С уважением, Семен Попов
...
Рейтинг: 0 / 0
25.02.2016, 22:45
    #39179373
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Semen Popov,

Добрый день.

Выставьте такие параметры базы:

rec_his_retentn=-1
num_db_backups=3
auto_del_rec_obj=ON

Все объекты старше 3-х последних полных архивов (сами старые архивы и логи для них) будут удаляться автоматически, и recovery history file будет очищаться от информации о них.
...
Рейтинг: 0 / 0
25.02.2016, 22:48
    #39179376
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Виноват, надо:
rec_his_retentn=0
...
Рейтинг: 0 / 0
26.02.2016, 11:23
    #39179602
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
А можно ли имея бэкап на 30 января и комплект логов, по логам откатится на 20 января. Т.е. можно ли по логам откатываться назад или же только вперед?
...
Рейтинг: 0 / 0
26.02.2016, 11:48
    #39179631
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Mark Barinstein, спасибо. Получается, отдельными командами удалять с TSM ничего не нужно.

Еще Guzya задает вопрос. Если мы имеем полный онлайн бэкап (INCLUDE LOGS), то в него уже будут включены все архивные логи по Oldest log включительно? И тогда при восстановлении базы из этой копии мы сможем восстановиться на отметку времени, которая раньше отметки создания бэкапа? То есть восстановить бэкап и накатить журналы не до конца, а по состоянию на несколько дней раньше? И другой вопрос. Нужны ли для этого архивные логи на сервере, которые были сохранены до момента создания полного онлайн бэкапа (до Oldest log)?
...
Рейтинг: 0 / 0
26.02.2016, 15:07
    #39179909
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Semen PopovЕсли мы имеем полный онлайн бэкап (INCLUDE LOGS), то в него уже будут включены все архивные логи по Oldest log включительно? И тогда при восстановлении базы из этой копии мы сможем восстановиться на отметку времени, которая раньше отметки создания бэкапа? То есть восстановить бэкап и накатить журналы не до конца, а по состоянию на несколько дней раньше?В архиве находятся журналы, которые позволят вам накатиться после восстановления до минимально возможной точки во времени - до момента окончания архива.
Semen PopovНужны ли для этого архивные логи на сервере, которые были сохранены до момента создания полного онлайн бэкапа (до Oldest log)?В архив помещаются логи, которые были активными на момент начала архивирования + все последующие до окончания архивирования. Остальные для наката по ним до конца архива после восстановления не нужны.
...
Рейтинг: 0 / 0
29.02.2016, 15:51
    #39181570
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Mark Barinstein, спасибо. Прошу немного пояснить, чтобы уже окончательно разобраться.
Рассмотрим пример:
На ТСМ настроено копирование и архивирование журналов. Полный онлайн бэкап (INCLUDE LOGS) выполняется раз в декаду (1, 10 и 20 числа месяца). Кроме этого, на ТСМ периодически сохраняются архивные логи.
Вопросы:
1. Получится ли восстановить базу, например на 8 число, воспользовавшись бэкапом от 10? То есть восстановить базу от 10 числа и накатить журналы на момент времени 8 числа. Нужны ли для этого архивные логи, которые были сохранены на ТСМ ранее 10 числа, или полный онлайн бэкап уже содержит необходимые журналы для восстановления на 8 число?
2. Вытекает из первого вопроса. Если полный онлайн бэкап уже содержит все журналы, позволяющие восстановиться на любую отметку до 10 числа, то есть ли смысл хранить на ТСМ архивные логи, которые были созданы ранее oldest log?
...
Рейтинг: 0 / 0
29.02.2016, 17:14
    #39181711
A.Panskikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Semen Popov Полный онлайн бэкап (INCLUDE LOGS) выполняется раз в декаду (1, 10 и 20 числа месяца). Кроме этого, на ТСМ периодически сохраняются архивные логи.


Значит у нас есть возможность восстановить из бэкапов на 1/10/20 число . Если логи отправляются на tsm, то отвечая на

Semen Popov
Вопросы:
1. Получится ли восстановить базу, например на 8 число, воспользовавшись бэкапом от 10?


Конечно нет! НАКАТ журналов делается ВПЕРЕД. Нужен бэкап от 1 (ПЕРВОГО) числа и журналы до 9 числа. Команда

db2 ROLLFORWARD DATABASE DB query status

даст информацию о последней транзакции и минимальном номере журнала, который необходим для начала наката.

Код: plaintext
1.
2.
3.
4.
Rollforward status                     = DB  working
Next log file to be read               = S0124511.LOG
Log files processed                    = S0122180.LOG - S0124510.LOG
Last committed transaction             = 2016-02-29-09.59.27.000000 UTC

Semen Popov
2. Вытекает из первого вопроса. Если полный онлайн бэкап уже содержит все журналы, позволяющие восстановиться на любую отметку до 10 числа, то есть ли смысл хранить на ТСМ архивные логи, которые были созданы ранее oldest log?


Онлайновый бэкап с опцией include logs - сохраняет журналов ровно столько, чтобы можно было из него восстановить базу до консистентного состояния. Считайте, что это равно оффлайновому бэкапу с неизвестным временным срезом - поскольку пока мы давали команду, выполняли бэкап на базе происходили изменения.

Andy
...
Рейтинг: 0 / 0
01.03.2016, 15:41
    #39182693
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
A.Panskikh, спасибо. Из вашего сообщения понимаю, что если я не имею полного онлайн-бэкапа на 1 число, то восстановить на 8 число у меня уже не получится, даже если у меня есть все архивные логи с 1 по 10 число и полная онлайн копия от 10 числа. Отсюда вывод, хранение архивных логов, созданных до самой старшей имеющейся полной онлайн копии (например, если я храню только 3 последних онлайн бэкапа), смысла не имеет. Так? И тогда можно с сервера ТСМ удалить все архивные логи до того лога, что был включен в самую старшую онлайн копию (это oldest log).
...
Рейтинг: 0 / 0
01.03.2016, 17:01
    #39182807
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Semen PopovОтсюда вывод, хранение архивных логов, созданных до самой старшей имеющейся полной онлайн копии (например, если я храню только 3 последних онлайн бэкапа), смысла не имеет. Так? И тогда можно с сервера ТСМ удалить все архивные логи до того лога, что был включен в самую старшую онлайн копию (это oldest log).
Да.
Именно это и происходит, когда вы параметрами настраиваете, что хотите хранить только N последних полных архива и только те журналы, которые необходимы для наката по ним после восстановления из любого из этих архивов.
...
Рейтинг: 0 / 0
03.03.2016, 16:16
    #39185150
A.Panskikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
На заметку.

У нас требования к бэкапам на ленте сформулировалось таким образом: бэкап-онлайн ежедневный (не используем инкрементального), месяц храним все 30 с логами (быстрое восстановление на месяц назад до любого момента времени), все старше храним 1 на первое число (условно, потому что может что-нибудь случиться и бэкапа именно на первое не будет или есть бэкапы на еженедельной основе).
Соответственно написан микроскрипт, который парсит output от db2adutl query db и генерит команды на очистку

db2adutl delete full taken at TS_BACKUP db DB_NAME without prompting
db2adutl delete logs older than SXXXXXXX.LOG db DB_NAME without prompting

По идее, мне почему-то кажется, это должен был бы уметь tsm...
...
Рейтинг: 0 / 0
03.03.2016, 17:51
    #39185275
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Mark Barinstein, спасибо.

A.Panskikh, мы тоже под Linux родили скрипт. Хотя, как говорит Mark Barinstein, эту возможность можно реализовать средствами DB2, но в скрипте это тоже было реализовано. Только не уверен правильное ли решение в нем заложено.
Код: plaintext
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.
# Backup delete script
WORK_PATH="/delete_backup"
WORK_FLOG="$WORK_PATH/delete_log.txt"
WORK_DB="ASV"
NODE_NAME="sl00700008016_db"
KEEPBP_NUM="5"

ADUTL_FLOG="$WORK_PATH/adutl_log.txt"


echo "Job start at $(date '+%y.%m.%d %H:%M:%S')" > $WORK_FLOG

/home/db2inst/sqllib/bin/db2adutl query full db $WORK_DB nodename $NODE_NAME > $ADUTL_FLOG

#TAKEN_AT=$(/home/db2inst/sqllib/bin/db2adutl query full db $WORK_DB nodename $NODE_NAME | grep '3 Time' | cut -c 13-26)
TAKEN_AT=$(grep "$KEEPBP_NUM Time" $ADUTL_FLOG | cut -c 13-26)
LOGSC_AT=$(grep "$KEEPBP_NUM Time" $ADUTL_FLOG | cut -c 41-52)

echo "$TAKEN_AT" >> $WORK_FLOG
echo "$LOGSC_AT" >> $WORK_FLOG

if test "$TAKEN_AT" 
then 
echo "Correct!"

echo "Delete full start at $(date '+%y.%m.%d %H:%M:%S')" >> $WORK_FLOG
/home/db2inst/sqllib/bin/db2adutl delete full keep $KEEPBP_NUM db $WORK_DB nodename $NODE_NAME without prompting >> $ADUTL_FLOG
echo "Delete full finish at $(date '+%y.%m.%d %H:%M:%S')" >> $WORK_FLOG

echo "Delete logs start at $(date '+%y.%m.%d %H:%M:%S')" >> $WORK_FLOG
/home/db2inst/sqllib/bin/db2adutl delete logs older than $LOGSC_AT db $WORK_DB nodename $NODE_NAME without prompting >> $ADUTL_FLOG
echo "Delete logs finish at $(date '+%y.%m.%d %H:%M:%S')" >> $WORK_FLOG
fi

if [ ! "$TAKEN_AT" ]
then
echo "Error! Requist backup not exist!"
fi


echo "Job finish at $(date '+%y.%m.%d %H:%M:%S')" >> $WORK_FLOG
...
Рейтинг: 0 / 0
03.03.2016, 18:16
    #39185294
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Semen Popov... Только не уверен правильное ли решение в нем заложено.
Время покажет.

Извините, не удержался. :)
...
Рейтинг: 0 / 0
15.03.2016, 09:48
    #39191931
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Какой командой, кроме backup, можно запустить механизм автоочистки старых бэкапов?

Т.е. настроено на 6 бд:

rec_his_retentn=14
num_db_backups=14
auto_del_rec_obj=ON

При этом на двух бд зачистка идет нормально, а на остальных выкидывает ошибки.

Код: 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.
2016-03-14-21.18.24.466000+180 E30608F508         LEVEL: Error
PID     : 1160                 TID  : 3056        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : BIUD
APPHDL  : 0-41                 APPID: *LOCAL.DB2.160314181525
AUTHID  : DB2ADMIN
EDUID   : 3056                 EDUNAME: db2agent (BIUD)
FUNCTION: DB2 UDB, database utilities, sqluvdel, probe:1369
DATA #1 : TSM RC, PD_DB2_TYPE_TSM_RC, 4 bytes
TSM RC=0x000007F9=2041 -- see TSM API Reference for meaning.

2016-03-14-21.18.24.466000+180 E31118F952         LEVEL: Error
PID     : 1160                 TID  : 3056        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : BIUD
APPHDL  : 0-41                 APPID: *LOCAL.DB2.160314181525
AUTHID  : DB2ADMIN
EDUID   : 3056                 EDUNAME: db2agent (BIUD)
FUNCTION: DB2 UDB, database utilities, sqluhVendorDelete, probe:1304
MESSAGE : SQL2062N  An error occurred while accessing media "".  Reason code: 
          "".
DATA #1 : String, 32 bytes
Error returned by vendor delete.
DATA #2 : Vendor RC, PD_DB2_TYPE_VENDOR_RC, 4 bytes
Vendor RC=0x0000001A=26 -- see DB2 API Guide for meaning.
DATA #3 : Hexdump, 48 bytes
0x00000001A67C59D8 : F907 0000 3133 3639 2032 3034 3100 0000    ....1369 2041...
0x00000001A67C59E8 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001A67C59F8 : 0000 0000 0000 0000 0000 0000 0000 0000    ................

2016-03-14-21.18.24.512000+180 E32072F518         LEVEL: Error
PID     : 1160                 TID  : 3056        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : BIUD
APPHDL  : 0-41                 APPID: *LOCAL.DB2.160314181525
AUTHID  : DB2ADMIN
EDUID   : 3056                 EDUNAME: db2agent (BIUD)
FUNCTION: DB2 UDB, database utilities, sqluhPruneHistoryDeleteFile, probe:1594
MESSAGE : ADM8507N  Unable to delete the backup image with timestamp 
          "20160218211505".



Провожу манипуляции для исправления ситуации, и хотелось бы видеть результат сразу.
...
Рейтинг: 0 / 0
15.03.2016, 09:50
    #39191932
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Все 6 бд находятся на одном сервере (win2008R2 x64, 7.1.4.0-TIV-TSMBAC-WinX64). Ежедневные бэкапы идут нормально.
...
Рейтинг: 0 / 0
15.03.2016, 10:49
    #39191979
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Guzya,

2041 E - DSM_RC_BAD_CALL_SEQUENCE
Надо со стороны TSM посмотреть, что ему не нравится...
...
Рейтинг: 0 / 0
15.03.2016, 10:59
    #39191997
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Не могу понять, где на сервере смотреть логи. Среди тех, что нашел ни чего нет.
...
Рейтинг: 0 / 0
15.03.2016, 11:04
    #39192005
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
А вот сообщение о нормальном удалении с того же сервера

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
2016-03-15-02.34.43.320000+180 E1762172F521       LEVEL: Info
PID     : 1160                 TID  : 6244        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : UPD2
APPHDL  : 0-65                 APPID: *LOCAL.DB2.160314181549
AUTHID  : DB2ADMIN
EDUID   : 6244                 EDUNAME: db2agent (UPD2)
FUNCTION: DB2 UDB, database utilities, sqluhPruneHistoryDeleteFile, probe:1583
MESSAGE : ADM8504I  Successfully deleted the backup image with timestamp 
          "20160228211534".
...
Рейтинг: 0 / 0
13.04.2016, 16:54
    #39214880
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Ситуация с автоматическим удалением бэкапов не разрешилась.
Автоматом ночью бэкап не удаляется, а сейчас запускаю

Код: sql
1.
db2 prune history 20160323233024 and delete



и все отрабатывает нормально.
Где вилы, куда смотреть?

Прикладываю два файла db2diag.log один ночной другой текущий.
...
Рейтинг: 0 / 0
13.04.2016, 17:48
    #39214977
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Товарищи, а это что за происки иностранных спецслужб?
...
Рейтинг: 0 / 0
13.04.2016, 17:48
    #39214978
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
...
Рейтинг: 0 / 0
13.04.2016, 21:47
    #39215111
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Guzya http://www.progtown.com/topic2021201-cleaning-tsm-from-old-and-logs.html Guzya, прикольно! Признаюсь, тоже сильно удивлен. Может, кто-нибудь прояснит, что происходит?
...
Рейтинг: 0 / 0
15.04.2016, 08:17
    #39216253
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистка TSM от старых бэкапов и журналов
Эксперимент показал, что проблема автоматического удаления возникает когда происходит одновременное резервное копирование более одной бд. Почему-то db2 или TSM не могут провести автоудаление бэкапа если в это время идет бэкап с этой ноды другой бд.

Разнес параллельное выполнение бэкапов, теперь вроде удаляет.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Очистка TSM от старых бэкапов и журналов / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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