Вопрос

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

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

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

Как бы вы приступили к созданию "Установщика базы данных Oracle"?

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

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

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

Спасибо.

Это было полезно?

Решение

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

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

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

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top