Wie mache ich einen Übergang von SQL Server DBA zu Oracle?

30

Wenn ich von einem SQL Server-DBA zu Oracle wechseln würde, was wäre dann das wichtigste Lernen oder Verlernen, das ich tun müsste?

Ich würde annehmen, dass die Konzepte gleich sind und der Unterschied lediglich in der Programmiersprache liegt, aber ich habe die andere Seite der Tür nicht gesehen.

darwindeeds
quelle
1
bisschen Humor (sorry wenn OT), hast du getroffen? dba.stackexchange.com/questions/16884/…
booyaa

Antworten:

40

Oracle und SQL Server weisen eine Reihe von architektonischen und idiomatischen Unterschieden auf, und in der Dokumentation werden verschiedene wichtige Begriffe unterschiedlich verwendet. Es ist einige Jahre her, dass ich das getan habe, aber einige der wichtigsten idiomatischen Unterschiede sind:

  • Oracle hat keine direkte Entsprechung zu Tempdb. Globale temporäre Tabellen sind beständige Entitäten, und Sie erstellen sie nicht im laufenden Betrieb wie bei einer temporären Tabelle in SQL Server.

  • Idiomatisches PL / SQL ist viel prozeduraler als idiomatisches T-SQL. Auf der anderen Seite bietet PL / SQL Funktionen zur Unterstützung schneller Cursoroperationen, einschließlich paralleler Schleifenkonstrukte. Häufig werden Cursor-Zwischenergebnisse auf ähnliche Weise wie die Sortiervorgänge verwendet, für die temporäre Tabellen in SQL Server verwendet werden. Lesen Sie nach, wie Sie mit '%' einen Polymorphismus in Cursor-Variablentypen erhalten.

  • SQL * Plus ist ein Befehlszeilentool, das SQLCMD ähnelt. Bei einer Vanille-Installation ist möglicherweise alles vorhanden, was Sie haben. Wenn Sie ein GUI-Tool wie SSMS benötigen, können Sie SQL Developer oder Tools von Drittanbietern wie TOAD erwerben. TOAD ist ziemlich teuer.

  • Lernen Sie die Rolle von Rollback-Segmenten (in MVCC von Oracle verwendet) und die Vorzüge des Fehlers "Snapshot zu alt" kennen.

  • Besorgen Sie sich wenn möglich einen Metalink-Account.

  • Lesen Sie den Konzeptleitfaden. Es enthält viele nützliche Starterinformationen.

  • Tablespaces entsprechen in etwa Dateigruppen.

  • SQL und der in PL / SQL eingebettete SQL-Dialekt sind in Oracle nicht dasselbe.

  • Oracle hat bis vor kurzem keine rekursiven CTEs unterstützt. Sie können mit CONNECT BY rekursive Abfragen durchführen.

  • Lesen Sie die Dokumentation für RMAN, um zu erfahren, wie Sie Sicherungen durchführen. Sie können einige nützliche Tricks ausführen, z. B. differenzielle Sicherungen in einer einzigen wiederherstellbaren Sicherung zusammenführen.

  • Das Systemdatenwörterbuch enthält die Tabellenversionen 'ALL', 'USER' und 'DBA'. 'USER_ ' zeigt Objekte an, die dem Login gehören. 'ALL_ ' zeigt alle Objekte an, die der Login lesen kann. 'DBA_ *' ist eine globale Ansicht, aber Sie müssen über die entsprechenden Berechtigungen verfügen, um dies zu sehen. Sie werden das Datenwörterbuch wahrscheinlich häufiger mit Oracle als mit SQL Server verwenden. Lernen Sie es daher kennen.

  • In Oracle werden gruppierte Tabellen als indexierte Tabellen bezeichnet. 'Clustereed Tables' in Oracle verweisen auf eine ganz andere Funktion. In Oracle ist eine gruppierte Tabelle eine Funktion, mit der die physische Speicherung von Master- / Detailtabellen auf der Grundlage eines gemeinsamen Schlüssels bereitgestellt werden kann. Die Funktion wird nicht häufig verwendet.

  • Indizierte Ansichten werden in Oracle als materialisierte Ansichten bezeichnet. Sie arbeiten etwas anders, mit genügend Nuancen, um ihre eigene Frage zu beantworten.

  • Oracle hat kein Konzept, das einer 'Datenbank' in SQL Server entspricht. In Oracle ist ein Schema nur der Eigentümer einiger Datenbankobjekte.

  • PL / SQL verfügt über eine explizite Modulstruktur namens "Packages".

  • Betrachten Sie die Verwendung von Sequenzen anstelle von Identitätsspalten.

  • Das Abrufen eines Abfrageplans ist in älteren Versionen von Oracle (vor 10g) etwas umständlicher. Sie müssen eine Tabelle (mit dem richtigen Format) erstellen, in die der Plan kopiert werden soll, und dann die Abfrage 'EXPLAIN PLAN' in die Tabelle einfügen, um den Abfrageplan zu erhalten. Sie können den Abfrageplan dann wieder aus der Tabelle entfernen. Jeder und sein Hund haben bevorzugte Fragen zum Abfrageplan. Mache eine Google-Suche und finde eine, dann frig es nach Geschmack. 10g fügte ein Paket mit dem Namen dbms_xplan hinzu , das die Arbeit mit Abfrageplänen vereinfacht.

  • Wenn Sie Oracle auf einem Unix- oder Linux-Host ausführen, schaden Ihnen Kenntnisse in Shell-Skripten nicht.

  • Oracle unterstützt autonome Transaktionen - Sie können eine interne autonome Transaktion festschreiben und erwarten, dass sie festgeschrieben bleibt, wenn der übergeordnete Vorgang rückgängig gemacht wird. Geschachtelte SQL Server-Transaktionen sind keine echten geschachtelten Transaktionen und haben unterschiedliche Semantik. Sie können dieses Verhalten mit einer in SQL Server gespeicherten CLR-Prozedur emulieren, indem Sie eine unabhängige Verbindung herstellen und den autonomen Vorgang ausführen.

Oracle wird mit weniger BI-Tools ausgeliefert, obwohl Oracle OLAP-Server, Berichterstellungstools und ETL-Tools verkauft.

  • Oracle bündelt ein Massenladetool namens SQL * Loader , das in seiner Funktion bcp ähnelt.

  • Das nächste Äquivalent zu SSIS ist Oracle Warehouse Builder (OWB). Dies ist jedoch ein separates Element, das nicht mit dem Basissystem gebündelt ist.

  • Oracle erstellt ein Berichterstellungstool namens Oracle Reports , das jedoch nicht im Basissystem enthalten ist. Dies entspricht am ehesten Reporting Services.

  • Oracle stellt auch ein ROLAP-Tool namens Discoverer her . Dies ist das Produkt, das dem von Oracle erstellten Berichts-Generator am nächsten kommt. Neuere Versionen ('Drake') unterstützen die OLAP-Engine von Oracle.

  • Oracle hatte früher ein OLAP-Produkt namens Express. Irgendwann bauten sie es in die zentrale Oracle DBMS-Engine ein und speicherten ihre nativen Datenstrukturen in undurchsichtigen Blobs. Es ist nicht vollständig mit Express kompatibel und verfügt über eine eigenständige Schnittstelle, die von OLAP-Front-End-Tools von Drittanbietern nur sehr wenig unterstützt wird.

  • Oracle BI Enterprise Edition war früher Siebel Analytics. Dies hat einige OLAP-Funktionen, aber ich bin damit nicht vertraut. Vielleicht möchte jemand, der es benutzt hat, einen Kommentar abgeben. Ohne direkt zuzugeben, dass Siebel ein völlig separates Produkt von seinem eigenen BI-Tool ist, gab Oracle an, dass es keinen Upgrade-Pfad von Oracle BI Standard Edition zu Enterprise Edition gibt. Beachten Sie, dass sowohl die Standard- als auch die Enterprise BI-Suite separate Produkte sind und nicht im Basissystem enthalten sind.

  • In der Praxis ist Essbase (ehemals Hyperion) der von Oracle vertriebene SSAS am nächsten . Dies ist ein separates Produkt, das nicht im Basissystem enthalten ist.

Es überrascht nicht, dass die BI-Strategie von Oracle von Branchenexperten als eine Art Hundefrühstück angesehen wird.

Es gibt wahrscheinlich andere Dinge, an die ich bei OTOH nicht denken kann. Ich werde sie hinzufügen, wenn ich an sie denke.

Betroffen vonTunbridgeWells
quelle
1
Wow, das ist sehr nah an dem, wonach ich gesucht habe. Tolle Informationen! Ich habe gelesen, dass Oracle Jobs vom Typ SQL Server hat, die automatisiert ausgeführt werden können. Entspricht etwas SSIS in Oracle?
Darwindeeds
1
In Oracle ist SSIS am nächsten an Oracle Warehouse Builder (OWB), es wird jedoch nicht mit dem Basissystem gebündelt. Sie müssen es separat kaufen. Es gibt ein Massenladetool, das bcp ähnelt und SQL * Loader heißt.
ConcernedOfTunbridgeWells
6
Dinge, die ich dieser Liste hinzufügen würde: In Oracle blockieren Leser niemals Autoren und Autoren blockieren niemals Leser. Ich verstehe, dass dies bei einer Standardinstallation in SQL Server immer noch anders ist. Oracle erlaubt niemals das Lesen nicht festgeschriebener Daten. Sie verwenden in Oracle kaum temporäre Tabellen - alles in einer großen Anweisung zu erledigen ist sehr oft viel schneller. Häufige Commits verlangsamen das Laden von Massen. Idealerweise sollte man nur einen einzigen Commit ausgeben, wenn alles erledigt ist.
a_horse_with_no_name 27.12.11
1
@a_horse_with_no_name Ihr Verständnis ist korrekt
Jack Douglas
10

Wir arbeiten sowohl mit Oracle als auch mit SQL Server zusammen, und unsere DBA-Leiterin Michelle Malcher unterstützt Mitarbeiter häufig bei diesem Übergang. Basierend auf dieser Erfahrung schrieb sie ein Buch mit dem Titel "Oracle Database Administration für Microsoft SQL Server DBAs (Oracle Press)". Ich mochte dieses Buch.

Ich bin mir nicht sicher, ob es für diese Site angemessen ist, ein Buch von einem Kollegen zu empfehlen. Ich melde mich nicht bei Michelle, ich leite ein Entwicklerteam.

AK
quelle
2
Ich erinnere mich, dass ich mich auf meta.stackoverflow.com auf ein Gespräch über Eigenwerbung einließ und antwortete, dass der graue Bereich um Eigenwerbung in Ordnung war, wenn er für die Frage relevant war. Jeff Atwood stimmte zu.
ConcernedOfTunbridgeWells
2
Ich arbeite nicht mit Michelle, aber ich mochte dieses Buch sehr. Tatsächlich fand ich diese Art der Erklärung - den Vergleich der SQL Server-Architektur mit der von Oracle - interessanter, als beispielsweise ein Standard-Oracle-DBA-Buch zu lesen.
RK Kuppala