powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
12 сообщений из 12, страница 1 из 1
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022788
igaraev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день форумчане. Есть такой вот вопросик по технологии стендбай.

Какое-то время в прошлом написал я скрипт, который успешно обновлял тестовую БД из бекапов RMAN на протяжении минимум года.
При этом тестовая БД никоим образом не была напрямую связана с боевой. Только файлы бекапа архивлогов накатывались на тестовую БД.

Вот упрощенный код скрипта

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
sqlplus / as sysdba << ENDPLUS
shutdown immediate
startup mount
alter database convert to physical standby;
exit;
ENDPLUS

rman target / << ENDRMAN
shutdown immediate
startup mount
catalog start with '/mnt/backup/db_rman/' NOPROMPT;
recover database;
exit;
ENDRMAN

sqlplus / as sysdba << ENDPLUS2
alter database convert to snapshot standby;
alter database open;
exit;
ENDPLUS2



Бекап на боевом сервере изменили. Теперь он бекапит на виртуальное ленточное устройство.
И команду "catalog start with" не запустишь.

Переделал я скрипт. Я вначале восстанавливаю controlfile который знает где и какие файлы есть на виртуальном ленточном устройстве. А потом уже обновляю БД.

упрощенный код нового скрипта.
Код: plsql
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.
sqlplus / as sysdba << ENDPLUS
shutdown immediate
startup mount
alter database convert to physical standby;
exit;
ENDPLUS

rman target / << ENDRMAN
shutdown abort
startup nomount
set dbid 9999999999;
RUN {
ALLOCATE CHANNEL a1 TYPE sbt_tape PARMS "SBT_LIBRARY=/opt/veeam/VeeamPluginforOracleRMAN/libOracleRMANPlugin.so";
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F_RMAN_AUTOBACKUP.vab';
RESTORE standby CONTROLFILE FROM AUTOBACKUP maxdays 10;
}
exit;
ENDRMAN

rman target / << ENDRMAN
shutdown abort;
startup mount;
CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
recover database;
exit;
ENDRMAN

sqlplus / as sysdba << ENDPLUS2
alter database convert to snapshot standby;
alter database open;
exit;
ENDPLUS2



Новый скрипт после recover database;
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
channel ORA_SBT_TAPE_1: starting archived log restore to default destination
channel ORA_SBT_TAPE_1: restoring archived log
archived log thread=1 sequence=22187
channel ORA_SBT_TAPE_1: restoring archived log
archived log thread=1 sequence=22188
channel ORA_SBT_TAPE_1: reading from backup piece e1f778c6-2771-4005-817b-2f146ace1fb1/arclog_RMAN_2142714001_GRP_20201123_javg96k8_1_1.vab
channel ORA_SBT_TAPE_1: piece handle=e1f778c6-2771-4005-817b-2f146ace1fb1/arclog_RMAN_2142714001_GRP_20201123_javg96k8_1_1.vab tag=ARCHIVELOG_VEEAM
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:07:35
archived log file name=/ora/admin/grp/archivelogs/1_22187_1030018271.dbf thread=1 sequence=22187
archived log file name=/ora/admin/dbgrp/archivelogs/1_22188_1030018271.dbf thread=1 sequence=22188
unable to find archived log
archived log thread=1 sequence=22189
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 11/23/2020 21:50:42
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 22189 and starting SCN of 10663310202



И преобразование в snapshot вываливается с ошибкой
Код: plsql
1.
2.
3.
4.
5.
6.
SQL> alter database convert to snapshot standby
*
ERROR at line 1:
ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_11/23/2020
21:50:42'.
ORA-38788: More standby database recovery is needed


Вручную это лечится легко. Архивируем лог 22189 на боевом сервере копируем его на тестовой сервер. команда "catalog archivelog".
А далее тестовая база успешно обновляется, конвертится и открывается.

Но мне нужен скрипт который обновлял тестовую БД автоматически из виртуального ленточного устройства. Без ручного вмешательства. Может кто знает как это сделать?
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022793
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igaraev,

найти сиквенс для последнего доступного архивлога в библиотеке и выполнять

Код: plsql
1.
2.
3.
4.
run {
set until sequence <sequence_no>;
recover database ;
}
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022796
igaraev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
landy,

Это вручную. Я и написал что так я могу.
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022803
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте catalog базу данных
Она для этого предназначена

Код: plsql
1.
rman target / catalog rman/***@omsrepo



Только не забудьте сделать sync перед recover
Использование Oracle для такой базы бесплатно, часто ее делают общей с OMS repository

и размещают на виртуалке
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022814
igaraev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

Не думаю что catalog БД решит проблему. Так как после восстановления контрольника, скрипт успешно накатывает все имеющиеся архивлоги. Но стендбай отказывается конвертится без следующего, который еще не появился - он еще redolog не архивированный. То есть как бы бекап для него не консистентный. Почему для меня загадка. Ведь если я не восстановлю контрольник, а просто добавлю последующие архивлоги командой catalog, то бекап консистентный. А так новый контрольник знает о существовании еще чегото что находится в REDOLOG и это не дает сконвертировать БД в снепшот.
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022818
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igaraev

Это вручную.


после восстановления контрольника

Код: plsql
1.
RMAN> list backup of archivelog all;



вторая колонка в последней строке. Точно так же можешь распарсить в скрипте и подставить в команду наката в RMAN
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022820
igaraev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
landy,

Да могу. Но он и без этого восстанавливает все до последнего архивлоги. Проблема в том что контрольник знает про данные которые есть в REDOLOG и они еще не заархивированы. А вот когда на боевом он заархивируется и я его добавлю вручную без обновления контрольника и автобекапа, то все получится. А если опять обновлю контрольник из автобекапа, то свежий архивлог успешно накатится, но для конвертации он будет ждать свежую порцию данных, которые есть в REDOLOG, и опять ничего не получится.
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022821
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну или перед восстановлением контрольника прочитать из стендбая последний scn,
а после восстановления контрольника
Код: plsql
1.
RMAN> list backup of archivelog from sequence <scn>;


чтобы уменьшить ввод/вывод из библиотеки

ЗЫ. т е заскриптовать все это
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022822
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
которые есть в REDOLOG и они еще не заархивированы.

И что? Вы утверждаете, что нельзя восстановить БД(стендбай) на момент до последнего scn?
А как же PITR?
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022847
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igaraev,

1) В 11g был жук/фича, когда не отрабатывался последний archivelog при backup
не выполнялся alter database archivelog current
Возможно, Вы в него наступили:

MOSHowto make a consistent RMAN backup in an Standby database in Active DataGuard mode (Doc ID 1419923.1)
RMAN-06820 ORA-17629 During Backup at Standby Site (Doc ID 1616074.1)


Аналогичная проблема возникала у меня когда создавал master copy базу (нужна была база которую можно поднять без archivelog) созданную как каскадный standby

Поднял скрипты по моему помогло:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
run {

# from read-only state
shutdown immediate;

resync catalog;
startup mount;
sql 'alter database recover managed standby database until consistent';

# clean logfile
sql "begin for g in (select distinct group# from  v$logfile) loop execute immediate ''alter database clear logfile group ''||g.group#;end loop; end;";
}



Для 19с уже в rman можно напрямую использовать until consistent тынц ,
но в 11g по моему только из sql работало, уже не помню
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022848
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
resync catalog разумеется после mount
...
Рейтинг: 0 / 0
Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
    #40022866
igaraev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

Спасибо большое. Попробую.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Тестовая БД (snapshot standbay) на Oracle 11G через RMANовский бекап
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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