Como fazer uma transição do DBA do SQL Server para o Oracle?

30

Como um interesse, se eu quisesse fazer a transição de um DBA do SQL Server para Oracle, qual será o principal aprendizado ou desaprendizagem que eu precisaria fazer?

Eu diria que os conceitos são os mesmos e a diferença é apenas a linguagem de programação, mas não vi o outro lado da porta.

darwindeeds
fonte
11
pouco de humor (desculpe se OT), você já conheceu? dba.stackexchange.com/questions/16884/...
Booyaa

Respostas:

40

O Oracle e o SQL Server têm várias diferenças arquitetônicas e idiomáticas, e vários bits principais de terminologia são usados ​​de maneira diferente na documentação. Faz alguns anos que fiz isso, mas algumas das principais diferenças idiomáticas são:

  • O Oracle não tem equivalente direto ao tempdb. As tabelas temporárias globais são entidades persistentes e você não as cria instantaneamente como faria com uma tabela temporária no SQL Server.

  • O PL / SQL da Idiomatic é muito mais processual que o T-SQL idiomático. Por outro lado, o PL / SQL possui recursos para suportar operações rápidas do cursor, incluindo construções de loop paralelo. Geralmente, os resultados intermediários do cursor são usados ​​de maneira semelhante à classificação para a qual as tabelas temporárias seriam usadas no SQL Server. Veja como usar '%' para obter algum polimorfismo nos tipos de variáveis ​​do cursor.

  • SQL * Plus é uma ferramenta de linha de comando semelhante ao SQLCMD. Em uma instalação de baunilha, pode ser tudo o que você tem disponível. Se você deseja uma ferramenta GUI como o SSMS, pode obter o SQL Developer ou ferramentas de terceiros, como o TOAD. O sapo é muito caro.

  • Aprenda o papel dos segmentos de reversão (usados ​​no MVCC do Oracle) e as alegrias do erro 'instantâneo muito antigo'.

  • Obtenha uma conta metalink, se possível.

  • Leia o guia de conceitos. Possui muitas informações úteis para iniciantes.

  • Os espaços de tabela são aproximadamente equivalentes aos grupos de arquivos.

  • O SQL e o dialeto SQL incorporado no PL / SQL não são exatamente a mesma coisa no Oracle.

  • A Oracle não suportava CTEs recursivas até recentemente. Você pode fazer consultas recursivas com CONNECT BY.

  • Leia os documentos do RMAN para ver como fazer backups. Você pode fazer alguns truques bem organizados, como mesclar backups diferenciais em um único backup restaurável.

  • O dicionário de dados do sistema possui as versões 'ALL', 'USER' e 'DBA' das tabelas. 'USER_ ' mostra objetos pertencentes ao logon. 'ALL_ ' mostra todos os objetos que o logon pode ler. 'DBA_ *' é uma visão global, mas você precisa ter permissões apropriadas para ver isso. Você provavelmente usará o dicionário de dados mais com o Oracle do que com o SQL Server, para conhecê-lo.

  • As tabelas em cluster são chamadas 'tabelas ordenadas por índice' no Oracle. 'Tabelas de cluster' no Oracle se referem a um recurso muito diferente. No Oracle, uma tabela em cluster é um recurso que permite o armazenamento físico de tabelas mestre / detalhes com base em uma chave comum. O recurso não é amplamente utilizado.

  • As visualizações indexadas são chamadas 'visualizações materializadas' no Oracle. Eles trabalham de maneira um pouco diferente, com nuances suficientes para merecer sua própria pergunta.

  • O Oracle não tem um conceito equivalente a um 'banco de dados' no SQL Server. No Oracle, um esquema é apenas o proprietário de alguns objetos de banco de dados.

  • O PL / SQL possui uma estrutura de módulo explícita chamada 'packages'.

  • Veja como usar sequências em vez de colunas de identidade.

  • Obter um plano de consulta é um pouco mais complicado nas versões mais antigas do Oracle (anteriores à 10g). Você precisa criar uma tabela (no formato correto) para despejar o plano e, em seguida, 'EXPLICAR PLANO' a consulta na tabela para obter o plano de consulta. Você pode recuperar o plano de consulta da tabela. Todos e seus cães têm consultas favoritas no plano de consultas. Faça uma pesquisa no google e encontre uma, depois frite-a a gosto. A 10g adicionou um pacote chamado dbms_xplan , que simplifica o trabalho com planos de consulta.

  • Se você estiver executando o Oracle em um host unix ou linux, ter um conhecimento prático de scripts de shell não faria mal.

  • A Oracle tem suporte para transações autônomas - você pode confirmar uma transação autônoma interna e esperar que ela permaneça confirmada se o pai reverter. As transações aninhadas do SQL Server não são transações aninhadas verdadeiras e têm semânticas diferentes. Você pode emular esse comportamento com um procedimento armazenado CLR no SQL Server, abrindo uma conexão independente e executando a operação autônoma por meio disso.

A Oracle vem com menos ferramentas de BI prontas para uso, embora a Oracle venda servidores OLAP, ferramentas de relatório e ferramentas ETL.

  • O Oracle agrupa uma ferramenta de carregamento em massa chamada SQL * Loader, que possui função semelhante ao bcp.

  • O equivalente mais próximo ao SSIS é o Oracle Warehouse Builder (OWB), mas esse é um item separado e não é fornecido com o sistema base.

  • A Oracle cria uma ferramenta de relatório chamada Oracle Reports , mas isso também não é fornecido com o sistema base. Esse é o equivalente mais próximo ao Reporting Services.

  • A Oracle também cria uma ferramenta ROLAP chamada Discoverer . Este é o produto mais próximo ao Report Builder que a Oracle produz. Versões mais recentes ('Drake') têm suporte para o mecanismo OLAP da Oracle.

  • A Oracle costumava ter um produto OLAP chamado Express. A certa altura, eles o incorporaram ao mecanismo principal do Oracle DBMS, armazenando suas estruturas de dados nativas em blobs opacos. Não é totalmente compatível com o Express e possui uma interface proprietária com muito pouco suporte de ferramentas de front-end OLAP de terceiros.

  • O Oracle BI Enterprise Edition é o que costumava ser o Siebel Analytics. Isso tem alguma funcionalidade OLAP, mas não estou familiarizado com isso. Talvez alguém que o tenha usado queira comentar. Sem admitir diretamente que o Siebel era um produto completamente separado de suas próprias ferramentas de BI, a Oracle afirmou que não havia 'caminho de atualização' do Oracle BI Standard Edition para Enterprise Edition. Observe que os pacotes Standard e Enterprise BI são produtos separados e não são fornecidos com o sistema base.

  • Na prática, a coisa mais próxima do SSAS vendida pela Oracle é Essbase (anteriormente Hyperion). Este é um produto separado e não está incluído no sistema base.

Não surpreende que a estratégia de BI da Oracle seja vista pelos especialistas do setor como algo do café da manhã de um cachorro.

Provavelmente há outras coisas que não consigo pensar na OTOH; Vou adicioná-los como penso neles.

ConcernedOfTunbridgeWells
fonte
11
Uau, isso está muito perto do que eu estava procurando. Ótima informação! Eu li que o Oracle tem trabalhos do tipo SQL Server que podem ser executados automaticamente. Algo equivalente ao SSIS no Oracle?
darwindeeds
11
A coisa mais próxima do SSIS no Oracle é o Oracle Warehouse Builder (OWB), mas não está incluído no sistema base. Você precisa comprá-lo separadamente. Existe uma ferramenta de carregamento em massa semelhante ao bcp chamada SQL * Loader.
ConcernedOfTunbridgeWells
6
Coisas que eu acrescentaria a esta lista: no Oracle, os leitores nunca bloqueiam os escritores e os escritores nunca bloqueiam os leitores. Meu entendimento é que isso ainda é diferente em uma instalação padrão no SQL Server. O Oracle nunca permite ler dados não confirmados. Você dificilmente usa tabelas temporárias no Oracle - fazer tudo em uma grande declaração é muitas vezes muito mais rápido. As confirmações frequentes retardam o carregamento em massa. Idealmente, deve-se emitir um único commit depois que tudo estiver pronto.
a_horse_with_no_name
11
@a_horse_with_no_name o seu entendimento está correto
Jack Douglas
10

Trabalhamos com Oracle e SQL Server, e nossa líder de DBA, Michelle Malcher, frequentemente ajuda colegas de trabalho nessa transição. Com base nessa experiência, ela escreveu um livro intitulado "Administração de banco de dados Oracle para DBAs do Microsoft SQL Server (Oracle Press)". Eu gostei deste livro.

Não tenho certeza se a recomendação de um livro por um colega de trabalho é apropriada para este site. Não reporto para Michelle, lidero uma equipe de desenvolvedores.

AK
fonte
2
Lembro-me de me envolver em uma conversa sobre autopromoção no meta.stackoverflow.com e responder que a área cinzenta em torno da autopromoção estava OK se fosse relevante para a pergunta. Jeff Atwood concordou.
ConcernedOfTunbridgeWells
2
Não trabalho com Michelle, mas gostei muito deste livro. Na verdade, achei essa maneira de explicar - comparar a arquitetura do SQL Server com a da Oracle mais interessante do que dizer, lendo um livro padrão do Oracle DBA.
RK Kuppala 21/03/12