Если вы создаете сеть Microsoft .NET, а серверная часть использует базу данных Oracle, вам следует перенести серверную часть на SQL Server. Суть этого вопроса заключается не в сравнении производительности базы данных, а в том, чтобы найти наиболее подходящий для вас инструмент. Чтобы ответить на эти два вопроса в рамках архитектуры .NET, есть только один ответ: .NET Server. В этой статье мы сначала исследуем, почему в вашей сети есть сервер Oracle, затем обсудим, как перенести его на SQL Server, и, наконец, объясним плюсы и минусы этого перехода.
Oracle в вашей системе
Если в вашей сети есть сервер Oracle, вам необходимо выяснить, зачем он вам нужен – кто его использует, какие приложения его используют, какие приложения на нем работают и т. д.
Кто его использует?
Сначала вам следует выяснить, кто использует сервер Oracle. В противном случае спешка с перемещением сервера до того, как вы получите ответ, скорее всего, приведет к большой ошибке. Конечно, если вы действительно хотите это сделать, это быстрый способ найти пользователя базы данных. Но мы все же советуем вам этого не делать.
Сетевые администраторы могут иметь процедуры для мониторинга или регистрации использования Oracle. Разработчики могут захотеть использовать существующие серверы для разработки приложений. Менеджерам может потребоваться создавать аналитические отчеты на основе данных, хранящихся в базе данных, или использовать серверную часть Oracle для принятия бизнес-решений. А пользователи базы данных могут быть по всему миру. Вы должны учитывать все эти возможности при определении того, каких пользователей затронет процесс миграции с Oracle на SQL Server.
Какие приложения будут его использовать?
Теперь предположим, что вы по одному просите всех пользователей выяснить, кто использует Oracle? И их ответ — нет, тогда вам следует проверить файл журнала, чтобы понять, какие рабочие станции обращаются к базе данных. Проверив эти файлы журналов, вы можете обнаружить, что не только рабочая станция обращается к базе данных, но и другие серверы также обращаются к базе данных.
Хорошо, возьмите ручку и запишите серверы, которые обращаются к базе данных, а затем выясните, из каких конкретных приложений эти серверы обращаются к базе данных. Такие приложения можно идентифицировать путем сравнения данных, хранящихся в таблице данных, с приложениями, работающими на сервере.
Какие приложения работают на сервере Oracle?
Теперь, когда вы знаете пользователей и внешние приложения, которые обращаются к базе данных, вам необходимо выяснить, какие приложения работают на самом сервере базы данных. Эти приложения могут быть хранимыми процедурами базы данных (и соответствующими триггерами, пользовательскими типами данных, настройками безопасности и т. д.) или независимыми приложениями, которые не работают в Oracle. Особенно следует обратить внимание на добавленные на сервер средства разработки Oracle.
Переход на SQL Server
Никогда не следует поддаваться искушению немедленно отключить сервер Oracle и установить SQL Server. Вы должны дважды подумать, прежде чем мигрировать критически важные серверы. Почему этот процесс назван миграцией? И дело не в том, что миграция не всегда происходит внезапно. Если вы предпримете несколько простых и разумных шагов, процесс миграции может пройти без каких-либо препятствий.
Чтобы перенести приложения всобственные и внешние приложения,
выполните следующие действия:
1. Установите в сети новый SQL Server.
2. Создайте «устройства» и таблицы данных, используемые приложением.
3. Запретить приложению доступ к базе данных и перевести приложение в оффлайн.
4. Скопируйте текущие данные из Oracle в SQL Server.
5. Направьте все приложения на новую базу данных.
6. Разрешите приложениям доступ к новым данным в таблицах данных и устройствах.
Прирассмотрении миграции SQL
между SQL Server и Oracle возникает фатальная проблема: они говорят на двух разных диалектах SQL: SQL-PL/SQL (Oracle) и Transact-SQL (Microsoft).
В большинстве случаев, если вы можете использовать один язык SQL, вы, вероятно, сможете использовать и другой язык SQL. С учетом SQL-функций, операторов, операторов и т. д. я специально составил «Справочник программиста SQL». В этой информации показаны возможности, поддерживаемые различными СУБД. Конечно, если эти американские поставщики продуктов SQL честно соблюдают американский стандарт SQL (ANSI-SQL), почему может возникнуть такая большая проблема!
Кроме того, вы также можете столкнуться со следующими проблемами:
Двойная таблица Oracle — на SQL Server вы можете столкнуться с такими операторами, как select 'x';. В Oracle этот оператор необходимо преобразовать в select 'x' из Dual;. Dual — это системная таблица, созданная Oracle. Помимо этой проблемы с синтаксисом SQL, вы не можете скопировать эту таблицу на свой SQL Server, поскольку это системная таблица Oracle.
Усечение. Обе СУБД поддерживают функции FLOOR и ROUND, но Oracle также имеет дополнительную функцию TRUNC. Если ваша система Oracle использует функцию TRUNC, вам придется повторно отредактировать задействованные части — возможно, вам придется подумать об изменении ее на функцию FLOOE или ROUND.
Конкатенация — SQL Server 7 не поддерживает метод соединения ANSI ||, но SQL Server 2000 поддерживает. Обе базы данных теперь используют знак плюса (+) для обозначения соединений, но лучше использовать этот символ для арифметических операций!
Это зависит от конкретных версий двух серверов, которые вы используете. Проблемы с миграцией языка SQL почти всегда возникают внезапно и неожиданно.
Экономическое обоснование отказа от Oracle
Эта миграция баз данных — не простая эмоциональная игра, и выбор продуктов Microsoft вместо Oracle подкрепляется экономическим обоснованием. Oracle потратила значительные ресурсы на то, чтобы победить Microsoft в судебных и пропагандистских битвах. Однако с экономической точки зрения Oracle не является более рентабельным. Кроме того, у Oracle есть только один основной продукт, который пока менее уверен в себе, чем Microsoft. Помимо сложного процесса продаж, вам лучше найти более впечатляющую компанию для поддержки. Компания должна быть здоровой и процветающей, а ее продукция должна пользоваться широкой популярностью. Это должно гарантировать, что компания будет очень сильной в течение как минимум нескольких лет, прежде чем столкнется с более сильными противниками.
Что вы получите от перехода на SQL Server?
Во-первых, вы получаете систему, которая полностью соответствует архитектуре вашей сети. Вам не нужен специальный человек для управления вашей системой UNIX. Инструменты управления, адаптированные для СУБД, оптимально работают с инструментами сетевых операционных систем.
Во-вторых, в системе реализована встроенная поддержка .NET-приложений. Архитектура .NET не требует использования SQL Server, но этот сервер является базой данных по умолчанию. Драйверы ODBC для Oracle, конечно, хороши, но они всегда являются потенциальной точкой отказа.
В-третьих, стоимость использования Oracle в сети .NET выше, чем стоимость использования SQL Server. Вы можете получить скидки при покупке дополнительных серверных лицензий Win2K, а также лицензий VS.NET и Office.
Наконец, даже если вы покупаете систему SQL Server отдельно, она может оказаться дешевле, чем Oracle. В наши дни торг по поводу лицензии Oracle может напоминать вырывание зубов. Я помню, как спросил у торгового представителя цену, и он на самом деле сказал: «Можете ли вы себе это позволить?»
Резюме
Если вы строите сеть .NET, имеет смысл использовать SQL Server в качестве СУБД, потому что это Microsoft .NET. Основной компонент. пакет серверных приложений. Миграция с одной платформы на другую — важный процесс, который необходимо тщательно продумать и спланировать. Прежде чем переключать платформы, вам необходимо иметь единую, эффективную, простую в управлении и надежную основу .NET.