Как сделать переход с SQL Server DBA на Oracle?

30

В качестве интереса, если бы мне пришлось перейти от администратора базы данных SQL Server к Oracle, что мне придется делать в основном для обучения или отучения?

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

darwindeeds
источник
1
немного юмора (извините, если OT), вы встречались? dba.stackexchange.com/questions/16884/…
booyaa

Ответы:

40

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

  • Oracle не имеет прямого эквивалента tempdb. Глобальные временные таблицы являются постоянными объектами, и вы не создаете их на лету, как если бы вы использовали временную таблицу в SQL Server.

  • Идиоматический PL / SQL гораздо более процедурный, чем идиоматический T-SQL. С другой стороны, PL / SQL имеет функции для поддержки операций быстрого курсора, включая конструкции параллельных циклов. Часто результаты промежуточного курсора используются способами, подобными тем, для которых можно использовать временные таблицы в SQL Server. Посмотрите, как использовать «%», чтобы получить полиморфизм в типах переменных курсора.

  • SQL * Plus - это инструмент командной строки, похожий на SQLCMD. На ванильной установке это может быть все, что у вас есть. Если вам нужен инструмент с графическим интерфейсом, такой как SSMS, вы можете получить SQL Developer или сторонние инструменты, такие как TOAD. Жаба довольно дорогая.

  • Изучите роль сегментов отката (используется в Oracle MVCC) и радости ошибки «снимок слишком старый».

  • Получить учетную запись Metalink, если это возможно.

  • Прочитайте руководство по концепциям. В нем много полезной стартовой информации.

  • Табличные пространства примерно эквивалентны файловым группам.

  • SQL и диалект SQL, встроенные в PL / SQL, не совсем одно и то же в Oracle.

  • Oracle не поддерживал рекурсивные CTE до недавнего времени. Вы можете делать рекурсивные запросы с помощью CONNECT BY.

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

  • Словарь системных данных содержит версии таблиц «ALL», «USER» и «DBA». USER_ показывает объекты, принадлежащие логину. 'ALL_ ' показывает все объекты, которые может прочитать логин. 'DBA_ *' - это глобальное представление, но вы должны иметь соответствующие разрешения, чтобы это увидеть. Вероятно, вы будете использовать словарь данных больше с Oracle, чем с SQL Server, так что ознакомьтесь с ним.

  • Кластерные таблицы в Oracle называются индексированными упорядоченными таблицами. «Таблицы кластеризации» в Oracle относятся к совсем другой функции. В Oracle кластеризованная таблица - это средство, которое позволяет осуществлять физическое хранение основных / подробных таблиц на основе общего ключа. Функция не широко используется.

  • Индексированные представления называются «материализованными представлениями» в Oracle. Они работают несколько иначе, с достаточным количеством нюансов, чтобы заслужить свой вопрос.

  • У Oracle нет концепции, эквивалентной «базе данных» в SQL Server. В Oracle схема является просто владельцем некоторых объектов базы данных.

  • PL / SQL имеет явную структуру модулей, называемую «пакеты».

  • Посмотрите на использование последовательностей вместо идентичных столбцов.

  • Получение плана запроса немного сложнее в старых версиях Oracle (до 10g). Вам нужно создать таблицу (в правильном формате), в которую нужно вывести план, затем «ОБЪЯСНИТЕ ПЛАН» запрос в таблицу, чтобы получить план запроса. Затем вы можете получить план запроса обратно из таблицы. У всех и их собак есть любимые запросы плана запроса. Сделайте поиск в Google и найдите его, а затем добавьте его по вкусу. 10g добавил пакет с именем dbms_xplan , который упрощает работу с планами запросов.

  • Если вы работаете с Oracle на хосте Unix или Linux, то знание рабочих сценариев оболочки не повредит.

  • В Oracle есть поддержка автономных транзакций - вы можете зафиксировать внутреннюю автономную транзакцию и ожидать, что она останется зафиксированной, если родительский объект откатится. Вложенные транзакции SQL Server не являются истинными вложенными транзакциями и имеют разную семантику. Вы можете эмулировать это поведение с помощью хранимой процедуры CLR в SQL Server, открыв независимое соединение и выполнив автономную операцию через него.

Oracle поставляется с меньшим набором инструментов BI, хотя Oracle и продают OLAP-серверы, инструменты отчетности и инструменты ETL.

  • Oracle объединяет инструмент массовой загрузки под названием SQL * Loader, который по своей функции похож на bcp.

  • Ближайшим эквивалентом SSIS является Oracle Warehouse Builder (OWB), но это отдельный элемент, не связанный с базовой системой.

  • Oracle создает инструмент отчетности под названием Oracle Reports , но он также не входит в базовую систему. Это самый близкий эквивалент к службам отчетов.

  • Oracle также создает инструмент ROLAP под названием Discoverer . Это самый близкий продукт к построителю отчетов, который производит Oracle. Более поздние версии (Drake) поддерживают Oracle OLAP engine.

  • У Oracle раньше был продукт OLAP под названием Express. В какой-то момент они встроили его в ядро ​​СУБД Oracle, храня его собственные структуры данных в непрозрачных двоичных объектах. Он не полностью совместим с Express и имеет собственный интерфейс с минимальной поддержкой сторонних интерфейсных инструментов OLAP.

  • Oracle BI Enterprise Edition - это то, что раньше было Siebel Analytics. У этого есть некоторая функциональность OLAP, но я не знаком с этим. Может быть, кто-то, кто использовал это, возможно, хотел бы прокомментировать. Без прямого признания того, что Siebel является совершенно отдельным продуктом от своего собственного инструментария BI, Oracle заявила, что «нет пути обновления» с Oracle BI Standard Edition до Enterprise Edition. Обратите внимание, что как Standard, так и Enterprise BI Suite являются отдельными продуктами и не связаны с базовой системой.

  • На практике ближе всего к SSAS, продаваемому Oracle, является Essbase (ранее Hyperion). Это отдельный продукт и не входит в базовую систему.

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

Вероятно, есть и другие вещи, которые я не могу вспомнить об OTOH; Я добавлю их, как я думаю о них.

ConcernedOfTunbridgeWells
источник
1
Вау, это очень близко к тому, что я искал. Отличная информация! Я читал, что у Oracle есть задания типа сервера SQL, которые можно запускать автоматически. Что-нибудь эквивалентное SSIS в Oracle?
darwindeeds
1
Наиболее близким к SSIS в Oracle является Oracle Warehouse Builder (OWB), но он не связан с базовой системой. Вы должны приобрести его отдельно. Существует инструмент массовой загрузки, похожий на bcp, который называется SQL * Loader.
ConcernedOfTunbridgeWells
6
Вещи, которые я бы добавил в этот список: в Oracle читатели никогда не блокируют писателей, а писатели никогда не блокируют читателей. Насколько я понимаю, это по-другому в установке по умолчанию в SQL Server. Oracle никогда не позволяет читать непереданные данные. Вы редко используете временные таблицы в Oracle - очень часто все выполняется одним большим оператором. Частые коммиты замедляют массовую загрузку. В идеале нужно просто выполнить один коммит, как только все будет сделано.
a_horse_with_no_name
1
@a_horse_with_no_name ваше понимание верно
Джек Дуглас
10

Мы работаем как с Oracle, так и с SQL Server, и наш ведущий администратор баз данных Мишель Малчер часто помогает коллегам в этом переходе. Основываясь на этом опыте, она написала книгу под названием «Администрирование базы данных Oracle для администраторов баз данных Microsoft SQL Server (Oracle Press)». Мне понравилась эта книга.

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

Аляска
источник
2
Я помню, как участвовал в разговоре о саморекламе на meta.stackoverflow.com и отвечал, что серая область вокруг саморекламы в порядке, если она имеет отношение к вопросу. Джефф Этвуд согласился.
ConcernedOfTunbridgeWells
2
Я не работаю с Мишель, но мне очень понравилась эта книга. Я действительно нашел такой способ объяснения - сравнивать архитектуру SQL Server с архитектурой Oracle интереснее, чем, скажем, читать стандартную книгу Oracle DBA.
РК Куппала