|
|
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
Всем привет. Возникла задача делать регулярный дупликейт базы через медленное и нестабильное соеденинение. Я написал парочку скриптов, которые делают бекап исходной базы, копируют файлы бэкапов на другом сервере и там с помощью команды дупликейт ресторят базу. Обе базы фурычат в archivelog mode Так как канал узкий, делаю инкрементальные бэкапы, планируется раз в неделю уровня 0, и каждый день уровня 1 Вот такой командой: Код: plsql 1. 2. Потом на auxiliary сервере делаю дупликейт: Код: plsql 1. 2. noredo - потому что копию можно делать не сто процентной, и я не добавляю в бекапы архивлоги. nofilenamecheck - так как у баз одинаковая структура файлов. В данный момент для проверки я создаю бекап уровня 0, через минуту создаю уровня 1, копипащу и на другом сервере накатываю. В итоге НЕрегулярно возникает следующая проблема: при накатываении бекапа уровня 1, после рековери, при открытии базы получаю ошибку: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Каждый раз это undo датафайл. Проблема еще в том, что если я создам новый бекап и накачу его, то база откроется. И после этого попробую накотить проблемный бекап, то все отработает хорошо. Это меня и сбивает с толку, так как я поначалу думал, что проблема в том, что бекап контрол файла создается на секунду позже, и возможно в этот момент он уже знает о изменения в анду, о которых еще не знал бекап самого файла. Так же прошу учесть, что это делается автоматом, то есть в идеале не починить текущее состояние, а узнать в чем проблема и не допустить её в будущем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2018, 13:18 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
версия какая? есть например такой Bug 22360720 - RMAN duplicate on Standby fails with RMAN-6136 ORA-1194 (Doc ID 22360720.8) > Range of versions believed to be affected Versions BELOW 12.1 Обходится Код: plsql 1. 2. 3. 4. 5. и установкой этого SCN для восстановления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2018, 14:44 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
Модест, Автомат для восстановления можно реализовать, формируя командную строку rman через sql*plus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2018, 14:59 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
Vadim Lejnin, Версия на обоих базах 12.1.0.2 И целевая база не находится в стендбай режие. В стендбай режиме может находится база источник, но я её проверяю, да и сам бекап ругается на контрол файл, который не current. Но я попробую ваш совет, только хочу кое что прояснить:) Я правильно понимаю, я получаю запросом scn, а потом вместо Код: plsql 1. выполняю свой набор команд, который будет почти таким же как сгенерированные дупликейтом, только вместо Код: plsql 1. 2. 3. 4. 5. должен быть Код: plsql 1. 2. 3. 4. 5. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2018, 16:21 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
О, я забыл сказать, что самая первая попытка дупликейта закончилась другой ошибкой:) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. но это делал не я, поэтому деталей не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2018, 16:24 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
Модестnoredo - потому что копию можно делать не сто процентной, и я не добавляю в бекапы архивлоги. Собственно, если это происходит на открытой БД, после этого разговаривать просто не о чем. То что тебе иногда везет и с простаивающей БД ты успеваешь снять инкрементальный бэкап между чекпоинтами/записями DBWR -- так это просто везет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 08:48 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, спасибо за подсказку. Можете чуток поподробнее объяснить?:) Если я вас правильно понял, проблема в том, что инкрементальный бекап (кстати есть разница 0-го или 1-го уровня?) снимается во время записи буфера на диск? Из-за этого они не консистенты что ли? Как вообще тогда снимать бекапы с открытой базы? И я не очень понимаю, почему проблема возникает с инкрементальными бекапами? Почему проблема из-за отсутствия архивлогов? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2018, 23:27 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
Во время горячего бэкапа работа с БД не прекращается. Соответственно есть вероятность, что в бэкап данные с разных операций, совершенных за время собственно копирования файлов, могут попасть, могут не попасть, могут попасть частично и т.п. Например, у тебя начался бэкап, ты уже скопировал блоки 1-50, тут бухгалтер выполняет UPDATE, который затрагивает блоки 2, 10, 100, 1000, 10000 и много других. Буферный кеш маленький и все эти изменения сброшены на диск. Ты продолжаешь бэкапить файл и добрался до 5000 блока. Тут бухгалтер решает попить чайку, врубает чайник... Короче, транзакция откатывается. А ты все бэкапишь... В файле у тебя данные: -- до UPDATE (блок 2, 10) -- после UPDATE (100, 1000) -- после ROLLBACK (10000) Вот чтобы привести все к одному знаменателю (состоянию на конец бэкапа) необходимо накатить логи как минимум с момента начала бэкапа и до его окончания. Информация об этих двух моментах хранится в заголовке файла. RMAN для этого идет на хитрость -- заголовок файла (0 блок) копируется последним ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 02:05 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, Ясно, спасибо. А я был уверен что он делает слепок на начало бекапа, а в случае изменения блоков данных использует те же undo логи. Не подскажите, как кошернее всего добавить в бекап архивлоги, которые сгененировались с момента начала бекапа до момента окончания? Выражение Код: plsql 1. я использовать не хочу, так как архивлоги не архивируются, и мои бекапы становятся слишком большими. Да и насколько я понимаю, если есть отдельный процесс, бекапирующий архивлоги, то я в него вмешаюсь, и мои логи для бекапа он пропустит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 12:53 |
|
||
|
duplicate и ora 01194
|
|||
|---|---|---|---|
|
#18+
Вобщем, я решил проблему примерно так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. Всем спасибо за советы. Они очень помогли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 17:11 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=101&tid=1883448]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 403ms |

| 0 / 0 |
