Come effettuare una transizione da DBA SQL Server a Oracle?


30

Per quanto riguarda l'interesse, se dovessi passare da un DBA di SQL Server a Oracle quale sarà l'apprendimento o il disimparare principale che dovrei fare?

Suppongo che i concetti siano gli stessi e la differenza sia semplicemente il linguaggio di programmazione, ma non ho visto l'altro lato della porta.



1
un po 'di umorismo (scusate se OT), hai incontrato? dba.stackexchange.com/questions/16884/…
booyaa

Risposte:


40

Oracle e SQL Server presentano una serie di differenze architettoniche e idiomatiche e diversi bit di terminologia chiave sono utilizzati in modo diverso nella documentazione. Sono passati alcuni anni da quando l'ho fatto, ma alcune delle principali differenze idiomatiche sono:

  • Oracle non ha equivalenti diretti a tempdb. Le tabelle temporanee globali sono entità persistenti e non le si crea al volo come si farebbe con una tabella temporanea in SQL Server.

  • PL / SQL idiomatico è molto più procedurale di T-SQL idiomatico. Il rovescio della medaglia, PL / SQL ha funzionalità per supportare operazioni di cursore veloci tra cui costrutti a ciclo parallelo. Spesso, i risultati del cursore intermedio vengono utilizzati in modo simile alle cose ordinate per le tabelle temporanee in SQL Server. Cerca come usare '%' per ottenere un polimorfismo nei tipi di variabili cursore.

  • SQL * Plus è uno strumento da riga di comando simile a SQLCMD. In un'installazione vanilla potrebbe essere tutto ciò che hai a disposizione. Se vuoi uno strumento GUI come SSMS puoi ottenere SQL Developer o strumenti di terze parti come TOAD. TOAD è piuttosto costoso.

  • Scopri il ruolo dei segmenti di rollback (utilizzati nell'MVCC di Oracle) e le gioie dell'errore "Istantanea troppo vecchia".

  • Ottieni un account metalink, se possibile.

  • Leggi la guida ai concetti. Ha molte informazioni utili per iniziare.

  • I tablespace sono approssimativamente equivalenti ai filegroup.

  • SQL e il dialetto SQL incorporati in PL / SQL non sono esattamente la stessa cosa in Oracle.

  • Oracle non ha supportato CTE ricorsivi fino a poco tempo fa. Puoi eseguire query ricorsive con CONNECT BY.

  • Leggi i documenti per RMAN per vedere come eseguire i backup. È possibile eseguire alcuni trucchi accurati come unire backup differenziali in un singolo backup ripristinabile.

  • Il dizionario dei dati di sistema ha le versioni "ALL", "USER" e "DBA" delle tabelle. "USER_ " mostra gli oggetti di proprietà dell'account di accesso. 'ALL_ ' mostra tutti gli oggetti che il login può leggere. "DBA_ *" è una vista globale, ma devi disporre delle autorizzazioni appropriate per vederlo. Probabilmente utilizzerai il dizionario dei dati più con Oracle che con SQL Server, quindi conoscilo.

  • Le tabelle raggruppate sono chiamate "tabelle ordinate per indice" in Oracle. Le "tabelle dei cluster" in Oracle fanno riferimento a una funzionalità molto diversa. In Oracle, una tabella cluster è una funzione che consente di archiviare la memoria fisica delle tabelle master / di dettaglio sulla base di una chiave comune. La funzione non è ampiamente utilizzata.

  • Le viste indicizzate sono chiamate "viste materializzate" in Oracle. Funzionano in modo leggermente diverso, con abbastanza sfumature da meritare la propria domanda.

  • Oracle non ha un concetto equivalente a un "database" in SQL Server. In Oracle, uno schema è solo il proprietario di alcuni oggetti del database.

  • PL / SQL ha una struttura di modulo esplicita chiamata 'pacchetti'.

  • Guarda usando sequenze invece di colonne identità.

  • Ottenere un piano di query è un po 'più complicato nelle versioni precedenti di Oracle (prima di 10g). Devi creare una tabella (del formato giusto) per eseguire il dump del piano, quindi 'ESPLORA PIANO' la query nella tabella per ottenere il piano di query. È quindi possibile ripristinare il piano di query dalla tabella. Tutti e il loro cane hanno domande sul piano di query preferito. Fai una ricerca su google e trovane una, quindi cercala a piacere. 10g ha aggiunto un pacchetto chiamato dbms_xplan , che semplifica il lavoro con i piani di query.

  • Se stai eseguendo Oracle su un host unix o linux, avere una conoscenza pratica degli script di shell non farebbe male.

  • Oracle ha il supporto per le transazioni autonome: puoi eseguire una transazione autonoma interna e aspettarti che rimanga impegnata se il genitore esegue il rollback. Le transazioni nidificate di SQL Server non sono vere transazioni nidificate e hanno una semantica diversa. È possibile emulare questo comportamento con una stored procedure CLR in SQL Server aprendo una connessione indipendente ed eseguendo l'operazione autonoma tramite quella.

Oracle viene fornito con meno strumenti di BI pronti all'uso, anche se Oracle vende server OLAP, strumenti di reporting e strumenti ETL.

  • Oracle raggruppa uno strumento di caricamento di massa chiamato SQL * Loader che ha una funzione simile a bcp.

  • L'equivalente più vicino a SSIS è Oracle Warehouse Builder (OWB), ma questo è un articolo separato e non in bundle con il sistema di base.

  • Oracle crea uno strumento di reporting chiamato Oracle Reports , ma anche questo non è in bundle con il sistema di base. Questo è l'equivalente più vicino a Reporting Services.

  • Oracle crea anche uno strumento ROLAP chiamato Discoverer . Questo è il prodotto più vicino a Generatore report che Oracle produce. Le versioni più recenti ("Drake") supportano il motore OLAP di Oracle.

  • Oracle aveva un prodotto OLAP chiamato Express. A un certo punto l'hanno integrato nel motore Oracle DBMS di base, memorizzando le sue strutture di dati native in BLOB opachi. Non è totalmente compatibile con Express e ha un'interfaccia proprietaria con pochissimo supporto da parte degli strumenti front-end OLAP di terze parti.

  • Oracle BI Enterprise Edition è quella che era Siebel Analytics. Questo ha alcune funzionalità OLAP ma non ne ho familiarità. Forse qualcuno che l'ha usato potrebbe voler commentare. Senza ammettere direttamente che Siebel era un prodotto completamente separato dai propri strumenti di BI, Oracle ha dichiarato che non vi era alcun "percorso di aggiornamento" da Oracle BI Standard Edition a Enterprise Edition. Si noti che entrambe le suite Standard ed Enterprise BI sono prodotti separati e non in bundle con il sistema di base.

  • In pratica, la cosa più vicina a SSAS venduta da Oracle è Essbase (precedentemente Hyperion). Questo è un prodotto separato e non in bundle con il sistema di base.

Non sorprende che la strategia BI di Oracle sia vista dagli esperti del settore come una sorta di colazione per cani.

Probabilmente ci sono altre cose che non riesco a pensare a OTOH; Li aggiungerò mentre penso a loro.


1
Wow, questo è molto vicino a quello che stavo cercando. Ottima informazione! Ho letto che Oracle ha lavori di tipo server SQL che possono essere eseguiti automaticamente. Qualcosa di equivalente a SSIS in Oracle?
darwindeeds,

1
La cosa più vicina a SSIS in Oracle è Oracle Warehouse Builder (OWB) ma non è in bundle con il sistema di base. Devi acquistarlo separatamente. Esiste uno strumento di caricamento di massa simile a bcp chiamato SQL * Loader.
ConcernedOfTunbridgeWells il

6
Cose che aggiungerei a questo elenco: in Oracle i lettori non bloccano mai gli scrittori e gli scrittori non bloccano mai i lettori. La mia comprensione è che questo è ancora diverso in un'installazione predefinita in SQL Server. Oracle non consente mai di leggere dati senza commit. Difficilmente usi le tabelle temporanee in Oracle: fare tutto in un'unica istruzione molto spesso è molto più veloce. I frequenti commit rallentano il caricamento di massa. Idealmente si dovrebbe semplicemente emettere un singolo commit una volta fatto tutto.
a_horse_with_no_name il

1
@a_horse_with_no_name la tua comprensione è corretta
Jack Douglas,


10

Lavoriamo con Oracle e SQL Server e il nostro responsabile DBA, Michelle Malcher, aiuta spesso i colleghi in questa transizione. Sulla base di questa esperienza, ha scritto un libro intitolato "Oracle Database Administration for Microsoft SQL Server DBAs (Oracle Press)". Mi è piaciuto questo libro

Non sono sicuro che raccomandare un libro da un collega sia appropriato per questo sito. Non riferisco a Michelle, guido un team di sviluppatori.


2
Ricordo di essere stato coinvolto in una conversazione sull'autopromozione su meta.stackoverflow.com e di aver risposto che l'area grigia attorno all'autopromozione era OK se era pertinente alla domanda. Jeff Atwood fu d'accordo.
ConcernedOfTunbridgeWells

2
Non lavoro con Michelle, ma questo libro mi è piaciuto molto. In realtà ho trovato questo modo di spiegare: confrontare l'architettura di SQL Server con quella di Oracle è più interessante di quanto abbia letto, leggendo un libro Oracle DBA standard.
RK Kuppala,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.