|
|
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Привет! Необходимо сконфигурировать failover, в tnsnames написано: MY_FAILOVER = (DESCRIPTION= (ADDRESS_LIST= (LOAD_BALANCE=OFF) (FAILOVER=ON) (ADDRESS=(PROTOCOL=TCP)(PORT=1525)(HOST=DBHOST1)) (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=DBHOST2)) ) (CONNECT_DATA= (SERVICE_NAME=MDM) (INSTANCE_NAME=mdm) (GLOBAL_NAME=mdm) ) ) Работает отлично когда один из хостов в принципе недоступен, но иногда случается такая неприятность: sqlplus my_user/my_password@MY_FAILOVER SQL*Plus: Release 12.1.0.2.0 Production on Thu Apr 19 10:12:25 2018 Copyright (c) 1982, 2014, Oracle. All rights reserved. ERROR: ORA-01033: ORACLE initialization or shutdown in progress Process ID: 0[/b] Session ID: 0 Serial number: 0 Enter user-name: Т.е. первый хост в списке не совсем недоступен, и failover'а на другой хост не происходит. Что здесь можно сделать, существует ли какая-либо опция считать стартующий или закрывающийся инстанс недоступным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 16:33 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Нужно просто гасить/стартовать сервис на нужном узле. Триггерами или софтом grid infrastructure. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 17:36 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
TAF? https://docs.oracle.com/database/121/NETAG/advcfg.htm#NETAG348 sales.us.acme.com= (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=sales1-server) (PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=sales.us.acme.com) (FAILOVER_MODE= (TYPE=select) (METHOD=basic) (RETRIES=20) (DELAY=15)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 10:43 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Alexei S, Спасибо за ссылку - как раз то, что нужно. К моему сожалению добавление (FAILOVER_MODE= (TYPE=select) (METHOD=basic)) не помогает - всё равно получаю ORA-01033: ORACLE initialization or shutdown in progress и никакого failover :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 14:04 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Параметры retries/delay не помогают? https://docs.oracle.com/database/121/NETAG/advcfg.htm#NETAG347 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 10:54 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
IgorMp, авторТ.е. первый хост в списке не совсем недоступен, и failover'а на другой хост не происходит. Т.е. первый в похоже mount? Не юзай default service ( тот где service name = db name ), создай свой с нормальными failover параметрами. Для дефолтного бд в mount это не fail. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:17 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Alexei S, C retries/delay то же самое, с точки зрения клиента первая база в списке жива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 14:22 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
kinky catIgorMp, авторТ.е. первый хост в списке не совсем недоступен, и failover'а на другой хост не происходит. Т.е. первый в похоже mount? Не юзай default service ( тот где service name = db name ), создай свой с нормальными failover параметрами. Для дефолтного бд в mount это не fail. kinky cat, Я не базист, и не совсем понимаю что тут имеется ввиду. Что происходит с первой базой в списке мне до конца неизвестно - это внешняя для меня система, всё что я вижу это ORA-01033: ORACLE initialization or shutdown in progress Скорее всего да, в Mount, - одна из баз в активном, другая в пассивном состоянии, с какой-то репликацией между ними, но это всё вне моего контроля. Ты предлагаешь настроить listener на стороне БД "с нормальными failover параметрами"? Если можно - пример конфигурации или ссылку на доку? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 14:32 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
IgorMpAlexei S, Спасибо за ссылку - как раз то, что нужно. К моему сожалению добавление (FAILOVER_MODE= (TYPE=select) (METHOD=basic)) не помогает - всё равно получаю ORA-01033: ORACLE initialization or shutdown in progress и никакого failover :( Как я понял, один из хостов - это стендбай. КоТТТ дал верный ответ, остальные вообще не читатели. имя сервиса по дефолту, которое совпадает с именем инстанса, в данном случае использовать нельзя. для этого создается отдельный сервис. его имя и прописывается в TNS. а поднимается он триггером... он стартап. праймари - значит поднимаем. а так клиент ломится - сервис сесть - ну и ок. а там облом - база в маунте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 22:39 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Alexey Zhidkov, Спасибо за развёрнутый ответ - всё становится более-менее понятно. Дополнительный вопрос - нельзя ли таким образом (через триггеры) сконфигурировать сервисы так, чтобы со стороны клиента обе базы были представлены одним логическим соединением? Т.е. при наличии двух баз по адресам DB_HOST_1:1521/ORCL DB_HOST_2:1521/ORCL клиент соединялся с SOME_HOST:SOME_PORT/SERVICE_NAME и единый сервис SERVICE_NAME выдавал бы соединение с активной базой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 15:48 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
IgorMpчтобы со стороны клиента обе базы были представлены одним логическим соединением? Этого вы можете достичь просто через алиасы TNS и настройку сервисов в БД. А вот если хочется именно через единый "SOME_HOST:SOME_PORT/SERVICE_NAME", тогда вам в Grid Infrastructure и SCAN. Или может быть удастся провернуть такое через CMAN в середине, не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 17:48 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
IgorMpДополнительный вопрос - нельзя ли таким образом (через триггеры) сконфигурировать сервисы так, чтобы со стороны клиента обе базы были представлены одним логическим соединением? Т.е. при наличии двух баз по адресам DB_HOST_1:1521/ORCL DB_HOST_2:1521/ORCL клиент соединялся с SOME_HOST:SOME_PORT/SERVICE_NAME и единый сервис SERVICE_NAME выдавал бы соединение с активной базой? именно так и работает TAF. требуемый сервис поднимается только на праймари. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 08:39 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Alexey Zhidkov, Просветите плз - TAF это не только клиентская технология - конфигурация на стороне клиента в tnsnames но также и серверная - конфигурация сервиса на стороне базы? Я правильно понимаю? Нагуглил вот такую статью - http://dominicgiles.com/blog/files/859a2dd3f34b49a43e5a39380d39b680-7.html Это примерно о том, что здесь рекомендуют? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 17:15 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
KoTTTIgorMpчтобы со стороны клиента обе базы были представлены одним логическим соединением? Этого вы можете достичь просто через алиасы TNS и настройку сервисов в БД. А вот если хочется именно через единый "SOME_HOST:SOME_PORT/SERVICE_NAME", тогда вам в Grid Infrastructure и SCAN. Или может быть удастся провернуть такое через CMAN в середине, не уверен. Подход с Grid Infrastructure или SCAN может быть реализован без RAC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 17:51 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
IgorMp, Код: plsql 1. 2. 3. Уж больно сервис MDM знакомый.... Как уже сказал KoTTT, настроить можно ездящий сервис через grid, создаётся сервис на primary и standby, который регистрирует бд в прослушивателе если сменилась роль бд(речь идёт о single instance, primary->standby, без scan и cman). Например: Код: plsql 1. Работает очень надёжно. Но возникнет другая проблема, если хост станет в принципе не доступен(ping не проходит), но не такая критичная как ORA-01033, и соединения будут проходить на резерв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 18:03 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Alexey Zhidkovимя сервиса по дефолту, которое совпадает с именем инстанса, в данном случае использовать нельзя. для этого создается отдельный сервис. его имя и прописывается в TNS. а поднимается он триггером... он стартап. праймари - значит поднимаем. Alexey Zhidkov, Вы имеете ввиду, что на одном из хостов базы нужно поднять 2 сервиса с одинаковым именем? И по тригеру один из сервисов гасится, а другой поднимается? Так реализуемо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 18:08 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
[quot IgorMp]KoTTTпропущено... вам в Grid Infrastructure и SCAN. Ну можно и на коленках соорудить что-нибудь. К примеру, сделать выдачу актуального ip из DNS. Для начала - тупо раунд-робином и настроить retry. Потом автоматизировать управление DNS-ом при переключении :) Кроме того, можно пристроить к делу remote listener. Тут есть точка отказа в форме самого remote listener, но раунд-робин из DNS и retry позволят ее обойти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 18:16 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
KamaelIgorMp, Код: plsql 1. 2. 3. Уж больно сервис MDM знакомый.... Как уже сказал KoTTT, настроить можно ездящий сервис через grid, создаётся сервис на primary и standby, который регистрирует бд в прослушивателе если сменилась роль бд(речь идёт о single instance, primary->standby, без scan и cman). Например: Код: plsql 1. Работает очень надёжно. Но возникнет другая проблема, если хост станет в принципе не доступен(ping не проходит), но не такая критичная как ORA-01033, и соединения будут проходить на резерв. Kamael, Спасибо за ответ. Буду с этим разбираться. Как я понимаю - это будут 2 сервиса на разных хостах, которые поднимаются в случае, если роль primary, и гасятся если роль сменилась. Всё верно? Я не специалист в Oracle, так что прошу прощения за наивный вопрос - а нельзя ли таким образом сконфигурировать 2 сервиса с одинаковым именем на одном хосте? Чтобы для клиента было прозрачно соединение в primary инстансом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2018, 18:27 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
IgorMpВы имеете ввиду, что на одном из хостов базы нужно поднять 2 сервиса с одинаковым именем? И по тригеру один из сервисов гасится, а другой поднимается? Так реализуемо? не поднять а создать. а по триггеру он поднимается или гасится в зависимости от роли сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 06:35 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
Со многими деталями разобрался, спасибо всем. Остался, наверное, самый интересный вопрос - Возможность конфигурации с Remote listener и двумя базами, Primary и Standby, одна из которых (та, которая Primary) зарегистрирована на Remote listener, а другая нет. Цель: предоставить единый connection в виде <remote_listener_host>:1521/prime_db Уже реализован подход, при котором база триггером стартует сервис, когда она Primary - примерно так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Таким образом мы регистрируем службу на локальном Listener, а хотелось бы зарегистрировать её на Remote. Возможно ли это? Самостоятельно я не смог найти подходящий пакет с операциями регистрации на Remote listener. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 14:07 |
|
||
|
Конфигурация FAILOVER в TNSNAMES
|
|||
|---|---|---|---|
|
#18+
IgorMp... Таким образом мы регистрируем службу на локальном Listener, а хотелось бы зарегистрировать её на Remote. Возможно ли это? Самостоятельно я не смог найти подходящий пакет с операциями регистрации на Remote listener. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 16:13 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=114&tid=1883965]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 363ms |

| 0 / 0 |
