¿Cómo hacer una transición de SQL Server DBA a Oracle?

30

Como interés, si tuviera que pasar de un DBA de SQL Server a Oracle, ¿cuál sería el mayor aprendizaje o desaprendizaje que tendría que hacer?

Supongo que los conceptos son los mismos y la diferencia es simplemente el lenguaje de programación, pero no he visto el otro lado de la puerta.

darwindeeds
fuente
1
un poco de humor (perdón si OT), ¿te has encontrado? dba.stackexchange.com/questions/16884/…
booyaa

Respuestas:

40

Oracle y SQL Server tienen una serie de diferencias arquitectónicas e idiomáticas, y varios bits clave de terminología se utilizan de manera diferente en la documentación. Han pasado bastantes años desde que hice esto, pero algunas de las principales diferencias idiomáticas son:

  • Oracle no tiene un equivalente directo a tempdb. Las tablas temporales globales son entidades persistentes y no las crea sobre la marcha como lo haría con una tabla temporal en SQL Server.

  • Idiomatic PL / SQL es mucho más procedimental que T-SQL idiomático. Por otro lado, PL / SQL tiene características para admitir operaciones rápidas de cursor que incluyen construcciones de bucles paralelos. A menudo, los resultados del cursor intermedio se usan de manera similar a las cosas para las que se usarían las tablas temporales en SQL Server. Busque cómo usar '%' para obtener un poco de polimorfismo en los tipos de variables del cursor.

  • SQL * Plus es una herramienta de línea de comandos similar a SQLCMD. En una instalación estándar puede ser todo lo que tenga disponible. Si desea una herramienta GUI como SSMS, puede obtener SQL Developer o herramientas de terceros como TOAD. TOAD es bastante caro.

  • Conozca el papel de los segmentos de reversión (utilizados en MVCC de Oracle) y las alegrías del error 'instantánea demasiado antigua'.

  • Obtenga una cuenta de metalink si es posible.

  • Lee la guía de conceptos. Tiene mucha información de inicio útil.

  • Los espacios de tabla son aproximadamente equivalentes a los grupos de archivos.

  • SQL y el dialecto SQL incorporado en PL / SQL no son exactamente lo mismo en Oracle.

  • Oracle no admitió CTE recursivos hasta hace muy poco. Puede hacer consultas recursivas con CONNECT BY.

  • Lea los documentos de RMAN para ver cómo hacer copias de seguridad. Puede hacer algunos trucos geniales como combinar copias de seguridad diferenciales en una sola copia de seguridad restaurable.

  • El diccionario de datos del sistema tiene las versiones 'ALL', 'USER' y 'DBA' de las tablas. 'USER_ ' muestra los objetos que son propiedad del inicio de sesión. 'ALL_ ' muestra todos los objetos que el inicio de sesión puede leer. 'DBA_ *' es una vista global, pero debe tener los permisos adecuados para ver eso. Probablemente usará el diccionario de datos más con Oracle que con SQL Server, así que infórmese.

  • Las tablas agrupadas se denominan 'tablas ordenadas por índice' en Oracle. Las 'tablas agrupadas' en Oracle se refieren a una característica muy diferente. En Oracle, una tabla en clúster es una instalación que permite que el almacenamiento físico de las tablas maestras / detalladas se realice en base a una clave común. La característica no se usa ampliamente.

  • Las vistas indexadas se denominan 'vistas materializadas' en Oracle. Funcionan de manera algo diferente, con suficientes matices para merecer su propia pregunta.

  • Oracle no tiene un concepto equivalente a una 'base de datos' en SQL Server. En Oracle, un esquema es solo el propietario de algunos objetos de la base de datos.

  • PL / SQL tiene una estructura de módulo explícita llamada 'paquetes'.

  • Mire el uso de secuencias en lugar de columnas de identidad.

  • Obtener un plan de consulta es un poco más complicado en las versiones anteriores de Oracle (anteriores a 10g). Debe crear una tabla (del formato correcto) para volcar el plan, luego 'EXPLICAR PLAN' la consulta en la tabla para obtener el plan de consulta. Luego puede recuperar el plan de consulta de la tabla. Todos y sus perros tienen consultas favoritas sobre el plan de consulta. Haga una búsqueda en Google y encuentre una, luego frótela al gusto. 10g agregó un paquete llamado dbms_xplan , que simplifica el trabajo con planes de consulta.

  • Si está ejecutando Oracle en un host Unix o Linux, tener un conocimiento práctico de las secuencias de comandos de shell no estaría de más.

  • Oracle tiene soporte para transacciones autónomas: puede confirmar una transacción autónoma interna y esperar que permanezca comprometida si el padre retrocede. Las transacciones anidadas de SQL Server no son transacciones anidadas verdaderas y tienen una semántica diferente. Puede emular este comportamiento con un procedimiento almacenado CLR en SQL Server abriendo una conexión independiente y realizando la operación autónoma a través de eso.

Oracle viene con menos herramientas de BI listas para usar, aunque Oracle vende servidores OLAP, herramientas de informes y herramientas ETL.

  • Oracle incluye una herramienta de carga masiva llamada SQL * Loader que es similar en función a bcp.

  • El equivalente más cercano a SSIS es Oracle Warehouse Builder (OWB), pero este es un artículo separado y no está incluido en el sistema base.

  • Oracle crea una herramienta de informes llamada Oracle Reports , pero esto tampoco está incluido en el sistema base. Este es el equivalente más cercano a Reporting Services.

  • Oracle también crea una herramienta ROLAP llamada Discoverer . Este es el producto más cercano a Report Builder que Oracle produce. Las versiones más recientes ('Drake') tienen soporte para el motor OLAP de Oracle.

  • Oracle solía tener un producto OLAP llamado Express. En un momento lo incorporaron al motor central de Oracle DBMS, almacenando sus estructuras de datos nativas en blobs opacos. No es totalmente compatible con Express, y tiene una interfaz propia con muy poco soporte de herramientas front-end OLAP de terceros.

  • Oracle BI Enterprise Edition es lo que solía ser Siebel Analytics. Esto tiene alguna funcionalidad OLAP pero no estoy familiarizado con ella. Tal vez alguien que lo haya usado pueda comentar. Sin admitir directamente que Siebel era un producto completamente separado de sus propias herramientas de BI, Oracle declaró que "no había una ruta de actualización" de Oracle BI Standard Edition a Enterprise Edition. Tenga en cuenta que las suites Standard y Enterprise BI son productos separados y no están incluidos en el sistema base.

  • En la práctica, lo más cercano a SSAS vendido por Oracle es Essbase (anteriormente Hyperion). Este es un producto separado y no está incluido en el sistema base.

No es sorprendente que los expertos de la industria vean la estrategia de BI de Oracle como algo así como el desayuno de un perro.

Probablemente hay otras cosas que no puedo pensar en OTOH; Los agregaré mientras pienso en ellos.

Preocupado por TunbridgeWells
fuente
1
Wow, esto está muy cerca de lo que estaba buscando. Gran información! Leí que Oracle tiene trabajos de tipo servidor SQL que se pueden ejecutar de forma automática. ¿Algo equivalente a SSIS en Oracle?
darwindeeds
1
Lo más parecido a SSIS en Oracle es Oracle Warehouse Builder (OWB), pero no está incluido en el sistema base. Tienes que comprarlo por separado. Existe una herramienta de carga masiva similar a bcp llamada SQL * Loader.
Preocupado
66
Cosas que agregaría a esta lista: en Oracle, los lectores nunca bloquean a los escritores y los escritores nunca bloquean a los lectores. Tengo entendido que esto sigue siendo diferente en una instalación predeterminada en SQL Server. Oracle nunca permite leer datos no confirmados. Casi no usa tablas temporales en Oracle: hacer todo en una gran declaración es muy a menudo mucho más rápido. Las confirmaciones frecuentes ralentizarán la carga masiva Idealmente, uno debería emitir un solo commit una vez que todo esté hecho.
a_horse_with_no_name
1
@a_horse_with_no_name su comprensión es correcta
Jack Douglas
10

Trabajamos con Oracle y SQL Server, y nuestra líder de DBA, Michelle Malcher, con frecuencia ayuda a los compañeros de trabajo con esta transición. En base a esta experiencia, escribió un libro titulado "Administración de bases de datos Oracle para DBA de Microsoft SQL Server (Oracle Press)". Me gustó este libro.

No estoy seguro de si recomendar un libro de un compañero de trabajo es apropiado para este sitio. No informo a Michelle, lidero un equipo de desarrolladores.

Alaska
fuente
2
Recuerdo haberme involucrado en una conversación sobre autopromoción en meta.stackoverflow.com y responder que el área gris alrededor de la autopromoción estaba bien si era relevante para la pregunta. Jeff Atwood estuvo de acuerdo.
Preocupado
2
No trabajo con Michelle, pero me gustó mucho este libro. En realidad, encontré esta forma de explicar: comparar la arquitectura de SQL Server con la de Oracle más interesante que decir, leyendo un libro estándar de Oracle DBA.
RK Kuppala