Например, бизнес логика — вставить запись в таблицу платежей (insert) и обновить баланс клиента (update), зафиксировать изменения (commit).
Теперь поясните, если таблицы платежей и балансы лежат в разных БД — как Вы сможете гарантировать, во-первых, что не окажется зафиксирован только insert или только update в случае сбоев, во-вторых, при нормальной работе другие процессы, читающие данные по этому клиенту не получат расхождение в данных платежей и баланса по клиенту?
ACID для БД не иллюзия. Наборот, БД без ACID — это не БД :)
Суть в том, что невозможно увидеть эту рассогласованость. Максимум, что может быть — потеря незакомиченных транзакций.
Разные локации используются не только для распределения нагрузки, а в основном для резервирования, что организуется за счет возможностей репликации на уровне дисковых массивов или возможностей репликации самой БД, что обеспечивает опять же целостность за исключением незакомиченных транзакций.
Про амазон ничего не скажу, не в курсе их архитектуры — я 14 лет oracle dba больших БД.
>Бизнес-логика не должна быть завязана на способ хранения.
>Я могу половину данных держать в MongoDB, а другую половину в PostgreSQL
Даже если держат данные в нескольких oracle БД — это уже гарантия поиметь массу неприятностей из-за распределенности.
Есть такая штука — ACID-тест для БД. Если Вы собираетесь хранить данные в нескольких БД, то о целостности данных можно смело забыть!
>Ну и третье — транзакции. В оракле, накатывая обновление, вы можете начать транзакцию, внести изменения в структуру БД, протестировать свежую версию своего клиентского софта, и если что-то не так — откатить транзакцию, как будто ничего и не было. То есть гарантированный даунтайм не превысит нескольких минут.
Это Вы где такое прочитали ?! :)))
Повеселили от души :)
Честно говоря, по моему опыту администрирования ничего хорошего про этот ACS сказать не могу.
В теории все красиво, а на практике регулярно получаешь кривые планы и практически лежащую БД.
В идеале, если у нас OLTP система, то запросов с x=2 из примера не должно быть в принципе, а для использования индекса достаточно было было и старого доброго rule-based плана :)
А если у нас DWH, то там ресурсы на парсинг несоизмеримо меньше, чем на выполнения и эффектвнее иметь актуальную статистику и использовать литералы, отказавшись от СП.
Для oracle тоже актуально.
Поэтому в DWH и OLAP часто не рекомендуют не использовать СП, в отличие от OLTP систем, где литералы положат систему парсингом.
Отличный анализ.
Я бы попытался поменять fast_start_mttr_target — этим можно значительно повысить активность dbwr.
Ну и ручной alter system checkpoint.
Вообще не понятно такое снижение производительности dbwr без снижения скорости lgwr.
По своему опыту администрирования oracle >20Тб могу сказать, что самый лучший вариант бэкапа — split mirror на уровне дисковых массивов (HP,Hitachi...).
Копия синхронизируется с основной БД с использованием внутренних механизмов массивов с минимальной нагрузкой на БД. Далее выполняется begin backup для online бэкапа или shutdown для холодного на БД и split копии на массиве.
При необходимости восстановления можно подняться с копии (что не очень хорошо, т.к теряется бэкап) либо выполнить обратную синхронизацию с копии на основные группы и затем подняться.
В такой конфигурации бэкап и восстановление укладываются в несколько минут.
Из минусов — при online бэкапе не должен идти ASM rebalance и для datafiles весьма желателен autoextend off. И еще очевидный минус — дисков надо много :)
Можно SMB, можно NFS — большой разницы по скорости нет.
a110 у меня уже три года, иногда притормаживает на некоторых 1080p в конейнере mkv. Надо будет проапгрейдится, когда выйдет A-400.
Расстояние просмотра небольшое, где-то 2.7м, так что экран шириной 1.8метра сделал — самое то.
На кухне можно отдельный медиаплеер поставить — они нынче не дороги, разве что ethernet тянуть… хотя можно и wi-fi для невысокого битрейта.
Отличная статья! В качестве практической части приведу свою конфигурацию:
TP-Link TL-WR1043ND
HP MicroServer с 5x2Tb HDD + Unraid software (8Tb доступного пространства)
Popcorn a110
Onkyo TX-SR578
Optoma HD20
7 колонок+саб
Спасибо, весьма полезно.
Могу ошибаться, но perl, вроде, входит всегда в установленный софт Oracle Server. Посмотрел в 10g и 11g —
лежит в %ORACLE_HOME%\perl, правда, немного в разных подкаталогах.
Про девятку не скажу — нет под рукой.
Да, так точно.
NT тоже надежно работала, но на том же железе тормозила, вроде, заметно сильнее OS/2.
И часть специфичных приложений мне только на OS/2 удалось настроить, под NT не шли, насколько я помню.
У меня под полуоськой в 96-ом фидошная нода на две линии крутилась + еще куча банковского софта :) Месяцами не перегружали — вот, была надежность по сравнению с виндой :)
что мешает поставить EM?
Что касается GC:
Oracle Enterprise Manager (OEM) Database Control and Grid control is provided free of charge, however, the management packs needs to be licensed for the number of users or CPU's that you «monitor» with it.
Может быть лучше изучить возможности штатного EM и не изобретать велосипед? ;)
Вроде, история там есть. Контроль тоже легко настраивается.
А еще лучше, конечно, EM grid control…
Теперь поясните, если таблицы платежей и балансы лежат в разных БД — как Вы сможете гарантировать, во-первых, что не окажется зафиксирован только insert или только update в случае сбоев, во-вторых, при нормальной работе другие процессы, читающие данные по этому клиенту не получат расхождение в данных платежей и баланса по клиенту?
Суть в том, что невозможно увидеть эту рассогласованость. Максимум, что может быть — потеря незакомиченных транзакций.
Разные локации используются не только для распределения нагрузки, а в основном для резервирования, что организуется за счет возможностей репликации на уровне дисковых массивов или возможностей репликации самой БД, что обеспечивает опять же целостность за исключением незакомиченных транзакций.
Про амазон ничего не скажу, не в курсе их архитектуры — я 14 лет oracle dba больших БД.
>Я могу половину данных держать в MongoDB, а другую половину в PostgreSQL
Даже если держат данные в нескольких oracle БД — это уже гарантия поиметь массу неприятностей из-за распределенности.
Есть такая штука — ACID-тест для БД. Если Вы собираетесь хранить данные в нескольких БД, то о целостности данных можно смело забыть!
Это Вы где такое прочитали ?! :)))
Повеселили от души :)
В теории все красиво, а на практике регулярно получаешь кривые планы и практически лежащую БД.
В идеале, если у нас OLTP система, то запросов с x=2 из примера не должно быть в принципе, а для использования индекса достаточно было было и старого доброго rule-based плана :)
А если у нас DWH, то там ресурсы на парсинг несоизмеримо меньше, чем на выполнения и эффектвнее иметь актуальную статистику и использовать литералы, отказавшись от СП.
Поэтому в DWH и OLAP часто не рекомендуют не использовать СП, в отличие от OLTP систем, где литералы положат систему парсингом.
Я бы попытался поменять fast_start_mttr_target — этим можно значительно повысить активность dbwr.
Ну и ручной alter system checkpoint.
Вообще не понятно такое снижение производительности dbwr без снижения скорости lgwr.
Копия синхронизируется с основной БД с использованием внутренних механизмов массивов с минимальной нагрузкой на БД. Далее выполняется begin backup для online бэкапа или shutdown для холодного на БД и split копии на массиве.
При необходимости восстановления можно подняться с копии (что не очень хорошо, т.к теряется бэкап) либо выполнить обратную синхронизацию с копии на основные группы и затем подняться.
В такой конфигурации бэкап и восстановление укладываются в несколько минут.
Из минусов — при online бэкапе не должен идти ASM rebalance и для datafiles весьма желателен autoextend off. И еще очевидный минус — дисков надо много :)
a110 у меня уже три года, иногда притормаживает на некоторых 1080p в конейнере mkv. Надо будет проапгрейдится, когда выйдет A-400.
Расстояние просмотра небольшое, где-то 2.7м, так что экран шириной 1.8метра сделал — самое то.
На кухне можно отдельный медиаплеер поставить — они нынче не дороги, разве что ethernet тянуть… хотя можно и wi-fi для невысокого битрейта.
В качестве пульта советую попробовать взять на e-bay недорогую модельку logitech типа
www.ebay.com/itm/Logitech-Harmony-520-Remote-Control-/220788723059?pt=LH_DefaultDomain_0&hash=item3368088d73
У меня такой уже давно, офигенно удобно. Суть в том, что управляешь не отдельными устройствами, а процессами.
TP-Link TL-WR1043ND
HP MicroServer с 5x2Tb HDD + Unraid software (8Tb доступного пространства)
Popcorn a110
Onkyo TX-SR578
Optoma HD20
7 колонок+саб
Могу ошибаться, но perl, вроде, входит всегда в установленный софт Oracle Server. Посмотрел в 10g и 11g —
лежит в %ORACLE_HOME%\perl, правда, немного в разных подкаталогах.
Про девятку не скажу — нет под рукой.
Очень помогло 4-го марта.
NT тоже надежно работала, но на том же железе тормозила, вроде, заметно сильнее OS/2.
И часть специфичных приложений мне только на OS/2 удалось настроить, под NT не шли, насколько я помню.
Что касается GC:
Oracle Enterprise Manager (OEM) Database Control and Grid control is provided free of charge, however, the management packs needs to be licensed for the number of users or CPU's that you «monitor» with it.
Вроде, история там есть. Контроль тоже легко настраивается.
А еще лучше, конечно, EM grid control…
market.android.com/details?id=com.foobnix
Но статья в любом случае весьма толковая получилась.
forums.oracle.com/forums/thread.jspa?threadID=555102