|
|
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
Всем, привет! Коллеги, поделитесь, пожалуйста, своим опытом кто как делает переключение БД в высоконагруженных системах. Т.е. интересен именно опыт OLTP баз под нагрузкой. Суть проблемы такая - нужно переключиться на стендбай с минимальным даунтаймом. 1) Делаешь подготовку к переключению (стендбай в маунт, посвичить логи, откатить все длинные транзакции, если такие есть) 2) Отстрелить сессии, посвичить логи еще раз, убедиться что они применились. 3) Нажать alter database commit to switchover to physical standby with session shutdown... И вот тут может получиться ситуация, когда команда повисает, при этом ее никто не блокирует, в v$session_wait можно увидеть RFS сессии, которые пытаются переслать на стендбай какие-то старые логи, при этом в сеть машина не упирается и редо в логах не очень много. Праймари никак не может сформировать end of redo и получается, что переключение не может выполниться, а даунтайм уже идет. Рестарт команды commit to switchover не помогает, помогает грубый рестарт праймари в restricted с повтором commit to switchover. Хочется услышать кто как подготавливается к переключению и что делает в подобных случаях повисания (использует какой-нибудь специальный event или параметр чтобы "прочистить" мозги процессу формирования end of redo). Уточню еще раз, это не проблема блокировок от пользовательских сессий или отката транзакций, это проблема на уровне MRP/RFS/чего-то еще. База 12.1 linux_64 Как один из вариантов - перевыставление dest_x туда, куда переключаешься. Спасибо заранее за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2018, 16:03 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
еще желательно перед переключением на праймари выставить job_queue_processes=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2018, 09:52 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
mrp, Использую Broker, сам все делает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2018, 14:25 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
oracloudmrp, Использую Broker, сам все делает да, удобно. но мож он его не юзает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2018, 16:04 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
звучит так как будто автор считает данное поведение документированным и в саппорт не обращается. или данная высоконагруженная система не на поддержке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 02:48 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
Коллеги, broker это еще одно звено в цепи, которая итак "зависает". Может у кого-то есть в закромах чьи-нибудь pdf'ки про "internals" механизма switchover ? Поделитесь, пожалуйста. В саппорт не надо отправлять, там все медленно и до реально знающих core людей там трудно достучаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 16:34 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
mrpКоллеги, broker это еще одно звено в цепи, которая итак "зависает". ну как-то ни разу он не подводил. да, он может "подвиснуть", если у тебя tnsping до стендбая отваливается с фразой "...timeout" соответственно и "show database ..." будет подвисать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 17:18 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
mrpМожет у кого-то есть в закромах чьи-нибудь pdf'ки про "internals" механизма switchover ? Поделитесь, пожалуйста. support.oracle.com: 11.2 Data Guard Physical Standby Switchover Best Practices using SQL*Plus (Doc ID 1304939.1) не благодари. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 17:21 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
Q.TarantinomrpМожет у кого-то есть в закромах чьи-нибудь pdf'ки про "internals" механизма switchover ? Поделитесь, пожалуйста. support.oracle.com: 11.2 Data Guard Physical Standby Switchover Best Practices using SQL*Plus (Doc ID 1304939.1) не благодари. Спасибо, там кроме, пожалуй, log_archive_trace=8191 ничего интересного :) И все же может у кого-нибудь есть более internal файлики? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 17:37 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
mrp, в транзакции заглядывали? Может там что-то долгоиграющее-неприбиваемое висит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 18:16 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
oracloudmrp, в транзакции заглядывали? Может там что-то долгоиграющее-неприбиваемое висит 1.откатить все прибитое 2.отролбачить все умершее и разрулить распределенное 3.сделать чекпоинт 4.передать все на стендбай 5.дождаться пока накатится это чисто навскидку А вот старые логи хз нафиг они ему понадобились ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 19:46 |
|
||
|
Быстрый switchover
|
|||
|---|---|---|---|
|
#18+
mrp3) Нажать alter database commit to switchover to physical standby with session shutdown... И вот тут может получиться ситуация, когда команда повисает, при этом ее никто не блокирует, в v$session_wait можно увидеть RFS сессии, которые пытаются переслать на стендбай какие-то старые логи, при этом в сеть машина не упирается и редо в логах не очень много. Праймари никак не может сформировать end of redo и получается, что переключение не может выполниться, а даунтайм уже идет. Рестарт команды commit to switchover не помогает, помогает грубый рестарт праймари в restricted с повтором commit to switchover. База 12.1 linux_64 Где вы такие команды берете? Все же просто : 1) Проверяем на primary: alter database switchover to stand_db_name verify; Например: alter database switchover to stand_db_name verify * ERROR at line 1: ORA-16475: succeeded with warnings, check alert log for more details -- все OK. Или ALTER DATABASE SWITCHOVER TO stand_db_name VERIFY * ERROR at line 1: ORA-16470: Redo Apply is not running on switchover target Возможно на standby остановлен накат - , тогда на стендбае : alter database recover managed standby database using archived logfile disconnect; (здесь асинхронный накат через архивные журналы) --------------------------------------------------------------------------------------- На primary дальше проверяем : select open_mode, switchover_status from v$database; OPEN_MODE SWITCHOVER_STATUS -------------------- -------------------- READ WRITE TO STANDBY И переключаемся: alter database switchover to stand_db_name ; Загвоздка может получиться , если вы не используете standby logs. Тогда их следует создать на обоих БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2018, 14:48 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39614135&tid=1883943]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
200ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 490ms |

| 0 / 0 |
