Pull to refresh

Comments 32

Спасибо. Вот по таким вещам реально трудно искать информацию с обяснениями.
Отлично. Спасибо. Как раз на работе поднимаем standby.
Спасибо за статью, бывает очень полезно прочесть именно аналитический взгляд на задачу, а не на простую последовательность действий, представленных в документации
Там где перевод базы в NOARCHIVELOG:

SQL> shutdown immediate;
SQL> startup mount;     <-- забыта команда
SQL> alter database archivelog;
SQL> alter database open;

Пардон, читать «там где был перевод базы в ARCHIVELOG»
Спасибо, поправил.
«содержащие последовательность команд, без особого описания их смысла и, главное, без рекомендаций, что делать, если что-то идет не так.»
Воистину!
Мне кажется, что причина этого в том что люди, разбирающиеся в предмете (oracle, СУБД, *nix) в подавляющем большинстве случаев «технари» не владеют литературными навыками, увы.
Побольше бы таких статей как Ваша.
Скажите, а возможно сделать так, чтоб основная база ORACLE работала на запись (пользователи вносят данные), а резервная(ые) на чтение — другие пользователи запускают «тяжелые» выборки-отчеты?
Но практика показала что лучше разносить стендбай и отчетность.
Получается, для снижения нагрузки на OLTP базу надо применять сторонние костылирешения? Или городить кластер?
Горизонтально не масштабируется?
Ну как сторонние, все от Oracle. Типовой вариант Active+Standby, а чуть в стороне стоит база для DWH.
Почему отдельно, потому что нагружать OLTP построением отчетности нецелесообразно. У Оракла есть отдельный документ посвященный конфигурации DWH.
download.oracle.com/docs/cd/B19306_01/server.102/b14223.pdf
Так же есть решение ETL (Extract-Transform-Load).
Дороговато получается по лицензиям правда.
Можно запустить standby в read-only mode:
SQL> alter database recover managed standby database cancel;
SQL> alter database open;

Standby по-умолчанию откроется в read-only mode. Можно выполнять запросы.
Но! Пока мы работаем со standby, накатка логов не происходит!
Это значит, что мы теряем то, ради чего standby и создавался — возможность быстрого запуска системы на резервном сервере при аварии основного.
11.1 умеет накатывать логи в режиме r/o standby
в подобной ситуации вам возможно есть смысл реализовать логический стендбай, там накат изменений идет иначе и дает работать с базой хоть на апдейт, но специалисты рекомендуют использовать версию не ниже 10, а еще лучше 11 для реализации подобной конструкции. Более ранние версии глючны.
Процессы переключения ролей между экземплярами (switchover) и перевода standby базы в режим primary в случае падения основной базы (failover) имеют множество своих подводных камней, поэтому это тема отдельной статьи.

С нетерпением буду ждать отдельной статьи на эту тему. Спасибо.
Проясните момент, пожалуйста. Это реализуемо на Standard Edition или необходимо потратиться на Enterprise?
Насколько мне известно, для использования Data Guard нужен Enterprise Edition.
Для Standard Edition можно создать скрипты, которые будут копировать архивные журналы на standby, а затем запускать процесс их наката на резервную базу.
В данном случае нужно лицензировать оба сервера, т.е. дополнительная лицензия Standard Edition, но это все равно дешевле чем покупать Enterprise + Dataguard.
У меня другие данные. Когда мы брали лицензию, нам четко сказали, что лицензируются только продакшен-сервера. А Standby instance он по-определению не в продакшене. Лицензировать его надо только если (не дай б-г, придет пушной зверь песец) и придется переходить на Standby (т.е. когда standby instance станет вашим новым продакшен-сервером). Точно также как и куча тестовых и development серверо фактически находятся под бесплатной лицензией OTN.
Может я ошибаюсь, но в Software Investment Guide от Oracle (http://www.oracle.com/us/corporate/pricing/sig-070616.pdf) сказано, что если вы используете Standby, то «In this environment, both the primary and the standby databases must be fully licensed». Но в Standard Edition нет понятия Standby (только в EE), тут можно скорее приминить классификацию Remote Mirroring, но и тут нам говорят «In this environment, both the primary and the remote mirrored databases must be fully licensed.»
Посмотрите по сцилке llustration #5: Standby и Illustration #6: Remote Mirroring.
«Если вы используете» имеется ввиду продакшен-использование. Вы же не используете stadby для продакшен-задач? Нет.
Девелоперские сервера ты тоже используешь, но они не в продакшене.
Вчитайтесь
Standby – In this method, one or more copies of a primary database are
maintained on a standby server(s). The sites in a standby configuration may be
dispersed geographically and are connected by Oracle Net Services. As the
primary database is modified, log information generated by the changes are
sent to the standby database(s) and subsequently applied to the standby
database. If the primary database fails, a standby database can be activated to
be the new primary database. Solutions like Oracle Data Guard (included with
Oracle Database EE) or customer-generated scripts can be used. In this
environment, both the primary and the standby databases must be fully
licensed.

И сдесь ни слова не сказано продакен или девелоперския база, на сколько я понимаю это относиться ко всему.
Но тут же выше написано «If the primary database fails, a standby database can be activated to be new primary database».
Короче, у меня есть информация, что пока standby не «activated», сервер по сути не в продакшене, а лицензировать надо только если стендбай активируется (т.е. становится продакшен сервером).

В принципе, тут достаточно мутный момент. Я думаю, если у вас средства позволяют, вы можете купить сразу две лицензии. Однако никто вас не будет, если вы лицензию на стендбай купите, только после активации его в продакшен.

Лицензировать, к сожалению, нужно все.
Без лицензии даже девелоперские не могут быть. Официально только в образовательных целях бесплатно можно использовать или в личных non-profit.
Оно все и лицензировано. Только не-продакшен (т.е. все девелоперские) они под бесплатной OTN лицензией.
Имел ввиду лицензировать «стендбай». Так как любой бекап (пусть это даже ручная накатка логов) несет в себе бизнес ценность для продакшена.
Нам когда считали, то считали все. Другое дело что Ораклу обычно нет дела до аудита маленьких инсталяций. (А иногда даже лицензии у них приходится выпрашивать и 40ядер я не думаю что она маленькая...)

Девелоперские — согласен про OTN.
Угу, нас тоже когда «считали», сказали что надо все, потом правда долго объясняли почему. В целом политика лицензирования — полная муть, черт ногу сломит что и как надо.
Для себя мы сделали так, если продакшен то все лицензировать per cpu, а если test/development то per user.
Очень Хорошая, Понятная, Полезная статья.
Жду продолжения с нетерпением.
Жалко что нельзя плюсануть дважды =)
SQL> shutdown immediate;
SQL> startup nomount;

можно одной командой:
SQL> startup force nomount;
Sign up to leave a comment.

Articles