Как развернуть базу данных Oracle?

У меня есть приложение 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 ответа

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам