Как развернуть базу данных Oracle? - PullRequest
6 голосов
/ 22 декабря 2008

У меня есть приложение ASP .NET, которое подключается к базе данных Oracle или SQL Server. Был разработан установщик для установки новой базы данных на существующий SQL Server с использованием команд sql, таких как «restore database ...», которые просто восстанавливают файл «.bak», который мы держим под контролем исходного кода.

Я очень плохо знаком с Oracle, и наше приложение только недавно было портировано для совместимости с 10g.

В настоящее время мы используем инструмент «exp.exe» для создания файла «.dmp», а затем «imp.exe» для его импорта в окно разработчика.

Как бы вы занялись созданием "Oracle Database Installer"?

Не могли бы вы создать базу данных с использованием файлов сценариев, а затем заполнить базу данных обязательными данными по умолчанию?

Не могли бы вы запустить инструмент imp.exe за кулисами?

Нужно ли нам предоставлять чистый интерфейс для системных администраторов, чтобы они могли просто выбрать конечный сервер и сделали это, или мы должны просто предоставить им файл ".dmp"? Каковы лучшие практики?

Спасибо.

Ответы [ 4 ]

7 голосов
/ 22 декабря 2008

Вопрос в том, что ваши клиенты знают об Oracle?

  • Ничего? Вы, вероятно, должны переосмыслить эту позицию. Oracle очень большой и сложный. Если вы предполагаете, что ваши клиенты ничего не знают, тогда вы начнете предоставлять учебные пособия и помощь, которая неуместна.

  • Минимально компетентен? Если они компетентны, они знают достаточно, чтобы самим управлять бесом. Кроме того, они знают достаточно, чтобы запустить скрипт, который выполняет SQL.

  • Фактические администраторы баз данных? Большинство организаций, которые могут позволить себе Oracle, могут позволить себе настоящих администраторов баз данных. Настоящие администраторы баз данных могут справиться со многими вещами - им не нужно много рук. Некоторым из них нравится назначать параметры хранения в соответствии со своими стандартами магазина.

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

Ваши исходные данные могут быть через экспорт / импорт или через скрипт. Я предпочитаю сценарий.

5 голосов
/ 23 декабря 2008

Я неоднократно делал это с обеих сторон (потребитель и поставщик) как администратор баз данных, разработчик и архитектор.

Как поставщик, одним из моих великих достижений (в 1996 году) было создание установочного компакт-диска для программного продукта управления страховыми претензиями, предназначенного для крупнейших страховых компаний (предмет стоимостью в несколько миллионов долларов). На этом установочном компакт-диске были установлены ядро ​​СУБД Oracle 7.2, оптическая система хранения FileNet (сканирует бумажные документы и создает каталогизированные двоичные версии) и наше специальное приложение для обработки заявок (встроенное в VB 4.0), все они интегрированы и готовы к работе. В рамках процесса установки пользователь может пропустить установку программного обеспечения Oracle или настроить его, а пользователь может настроить / переопределить конфигурацию базы данных во всех ее основных деталях (база данных, схемы, табличные пространства, размеры, диски и т. Д.).

Я также предоставил полевой сервис для этого продукта, который при необходимости включал в себя посещение сайта клиента. Я тестировал установочный компакт-диск буквально сотни раз при каждом мыслимом сценарии, который я мог воспроизвести, и у нас НИКОГДА не было полевого отказа, который требовал даже телефонного звонка, не говоря уже о поездке (я путешествовал четыре раза, но для предпродажных вещей вместо этого).

Совсем недавно (2007) я написал сценарий создания базы данных Oracle 10g для внутренней системы в мегакорпусе. На производстве размер базы данных составлял 8 ТБ, в основном для одной таблицы транзакций с большим объемом данных. В тесте база данных была размером около 1 ТБ для скромного сервера. В процессе разработки размер базы данных составлял около 100 МБ для работы на моем ноутбуке. Точно такие же сценарии создали все три среды, и я мог бы расширить их для обработки новой среды / машины примерно за пять минут. Эта база данных включала в себя экстремальную настройку производительности, поэтому настройка всех соответствующих характеристик была абсолютно необходима.

Вернемся к продукту обработки страховых требований - позвольте мне добавить, что я был первоначально нанят, чтобы вести его преобразование из базы данных SQL Server в базу данных Oracle. Это преобразование было определено как бизнес-необходимость, поскольку большинство потенциальных клиентов не рассматривали продукт на базе SQL Server как профессиональное серьезное решение. Это не так часто встречается сегодня, но все же применяется в целом: программный продукт имеет больше шансов на проникновение на рынок, если он может работать с несколькими вариантами баз данных, как предпочитают целевые клиенты (особенно клиенты корпоративного класса).

Кроме того, установочный компакт-диск также рассматривался как существенный элемент. Однако эта и многие другие ситуации показали мне, что большинство «настоящих» администраторов баз данных не принимают установку баз данных на основе импорта. Как администратор баз данных и архитектор, я знаю, что определенно не буду по тем же причинам.

Проще говоря, установка базы данных на основе импорта практически не контролирует полученную базу данных. Это непрозрачно для клиента, оставляя его под сомнение, что он сделал. Это вынуждает клиента прилагать огромные усилия, чтобы попытаться использовать как можно меньше контроля. Он общеизвестно хрупок и подвержен ошибкам (импорт Oracle хорошо известен своими проблемами с правами собственности и разрешениями, проблемами с ограничениями и т. Д.). Принимая во внимание все эти последствия, установка базы данных на основе импорта непрофессиональна - она ​​не ставит потребности клиентов на первое место.

Сценарии установки базы данных обеспечивают правильную прозрачность, конфигурируемость, выборочную повторяемость и общий контроль клиента, который требует профессионализм. Это также побуждает вас правильно понимать влияние ваших решений по разработке базы данных так, как это не делает импорт.

С наилучшими пожеланиями.

1 голос
/ 22 декабря 2008

Лично я предпочитаю сценарии SQL для создания базы данных и загрузки данных, где это возможно. Я склонен использовать PL / SQL Developer . У него есть несколько хороших опций для генерации скриптов из существующей базы данных. Получив их, вы можете запускать сценарии с использованием sqlplus или любого кода приложения, который может выполнять произвольный SQL (например, JDBC с Java). Toad - более распространенный (и более дорогой) инструмент для разработки Oracle.

Единственное ограничение экспорта SQL - невозможность экспорта полей CLOB / BLOB. Если они у вас есть, вам нужно либо делать их отдельно (как экспорт PL / SQL), либо делать все это как экспорт PL / SQL. С этим ничего не поделаешь, за исключением того, что файл фактически является двоичным экспортом (расширение .pde) и более ограничен в том, как вы можете его выполнить.

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

Инструменты импорта и экспорта для Oracle, я думаю, более применимы для операций резервного копирования и восстановления.

Теперь, что касается доставки этого клиенту, из ваших комментариев кажется, что вы дадите это администраторам баз данных. Практически в любой установке Oracle будут задействованы администраторы баз данных. Они будут в порядке с SQL-скриптами для создания схемы и загрузки данных. Они будут выполнять много специфичных для сайта настроек (например, настраивать SGA, временные табличные пространства, количество одновременных соединений и т. Д. В зависимости от ожидаемой нагрузки).

Вы, как поставщик, можете дать рекомендации по любой соответствующей конфигурации, и вы можете принять участие в поддержке и, возможно, установке, но в конечном итоге они сами должны выяснить, что работает для них. Oracle работает на большом количестве операционных систем и вариантов оборудования с бесконечными вариациями в топологии сети и конфигурации брандмауэра. Вы не можете учесть все это для установщика или даже для набора инструкций (кроме упомянутых ранее рекомендаций).

0 голосов
/ 22 декабря 2008

В последний раз, когда я принимал участие в создании (оракула) БД (для достаточно крупной компании с собственными администраторами баз данных), администраторы баз данных хотели знать такие вещи, как:

  • что мы хотели назвать БД,
  • какие табличные пространства нам понадобятся, и оценка количества данных в каждом из них
  • сколько пользователей будет подключаться.

(из памяти) они установили db и табличные пространства, затем мы предоставили комбинацию простых сценариев, которые они могли запустить (или четкие инструкции, если задачу было нелегко автоматизировать)
Как я сказал, это было для внутреннего приложения, поэтому ваш пробег может отличаться, но в моем случае они хотели, чтобы все инструкции были четко прописаны, чтобы (а) не было никакого недопонимания, приводящего к неправильной работе, и (б) никакой ответственности с их стороны, если что-то не сработало («мы просто следовали инструкциям»)

...