sql >> Base de Datos >  >> RDS >> Mysql

Comparación de administración básica entre Oracle, MSSQL, MySQL, PostgreSQL

La introducción de DevOps en las organizaciones ha cambiado el proceso de desarrollo y también ha introducido nuevos desafíos. Además, los desarrolladores y los equipos de DevOps, junto con sus propios lenguajes de programación elegidos, también tienen sus sistemas de bases de datos favoritos.

El ciclo de vida del producto se acorta cada año, por lo que los desarrolladores quieren poder desarrollar rápidamente, utilizando las tecnologías que mejor conocen.

Tener múltiples backends de bases de datos RDBMS significa que su organización será más ágil en el lado del desarrollo, pero también impone conocimientos adicionales a los equipos de operaciones.

Extender su infraestructura de una a muchas bases de datos implica que también debe monitorearlas, administrarlas y escalarlas.

Dado que cada backend de almacenamiento sobresale en diferentes casos de uso, esto también significa que debe reinventar la rueda para cada uno de ellos.

Conocer las similitudes y las diferencias clave lo ayudará a sumergirse en diferentes sabores de RDBMS.

En este artículo repasaremos los siguientes puntos:

  • Una breve introducción a la plataforma
    • Oracle, MSSQL, MySQL, PostgreSQL
  • Soporte de plataforma
  • Proceso de instalación
  • Acceso a la base de datos
  • Proceso de copia de seguridad
  • Control de la ejecución de consultas
  • Seguridad
  • Opciones de replicación
  • Apoyo de la comunidad

Una breve introducción a la plataforma

PostgreSQL es reconocido por muchos como la base de datos de código abierto más avanzada del mundo. Es un sistema de base de datos de código completamente abierto lanzado bajo su propia licencia, la Licencia PostgreSQL, comparable a las licencias MIT o BSD. La comunidad de PostgreSQL está activa y mejora continuamente las funciones nuevas y existentes. Según el rango de popularidad de DB-engine, PostgreSQL fue el DBMS del año 2017 y 2018. La popularidad de DB-Engines muestra que la tendencia no cambió a lo largo de los años.

Un hecho interesante es que PostgreSQL no admitió SQL hasta 1994. El lenguaje QUEL se usó para consultar datos de él. Posteriormente se agregó compatibilidad con SQL.

PostgreSQL tiene muchas funciones avanzadas que ofrecen otros sistemas de administración de bases de datos empresariales, como vistas, procedimientos almacenados, índices y disparadores, además de las funciones de clave principal, clave externa y atomicidad.

Los usuarios pueden ampliar PostgreSQL modificando las funciones existentes, agregando nuevas funciones y distribuyéndolo libremente, ya que es de código abierto. Se ejecuta en las principales plataformas como UNIX, MacOS, Windows y Linux, etc. Admite video, texto, audio, imágenes, interfaces de programación para diferentes idiomas. La lista de lenguajes admitidos incluye C/C++, Java, Python, Perl, etc.

Oráculo es uno de los mayores proveedores de RDBMS (sistema de gestión de bases de datos relacionales) en el mundo de TI. Se conoce como base de datos Oracle, Oracle DB u Oracle comercializada por Oracle.

Oracle Database está siendo utilizado por muchas empresas en la industria de TI para el procesamiento de transacciones, análisis de negocios, aplicaciones de inteligencia de negocios, etc.

Oracle tiene una larga y muy interesante historia:

El 16 de junio de 1977, Larry Ellison, Bob Miner y Ed Oates crearon Software Development Laboratories (SDL) en Santa Clara, California. En 1977, Oracle tomó su nombre del nombre en clave del proyecto de la CIA y el primer RDBMS de Oracle comercializado se muestra al mundo en 1979.

La base de datos Oracle está disponible en diferentes ediciones, como la edición Enterprise, la edición Standard, la edición Express y Oracle Lite. El mayor competidor de la base de datos Oracle es el servidor Microsoft SQL.

Microsoft SQL Server es un RDBMS muy popular con licencias restrictivas y un costo de propiedad modesto si la base de datos es de un tamaño significativo o es utilizada por una cantidad significativa de clientes.

Es una de las tres tecnologías de bases de datos líderes en el mercado, junto con Oracle Database y DB2 de IBM.

Proporciona una interfaz muy fácil de usar y fácil de aprender, lo que se ha traducido en una gran base de usuarios instalados.

Al igual que otro software RDBMS, Microsoft SQL Server se basa en SQL, un lenguaje de programación estandarizado que los administradores de bases de datos (DBA) y otros profesionales de TI utilizan para administrar bases de datos y consultar los datos que contienen. SQL Server está vinculado a Transact-SQL (T-SQL), una implementación de SQL de Microsoft que agrega un conjunto de extensiones de programación propietarias al lenguaje estándar.

MySQL

MySQL es un sistema de gestión de base de datos relacional de código abierto respaldado por Oracle basado en SQL.

Concebida originalmente por la empresa sueca MySQL AB, MySQL fue adquirida por Sun Microsystems en 2008 y luego por Oracle cuando compró Sun en 2010.

Los desarrolladores pueden usar MySQL bajo la Licencia Pública General GNU (GPL). La versión Enterprise viene con soporte y características adicionales para seguridad y alta disponibilidad.

Es la segunda base de datos más popular del mundo según el ranking de db-engines y probablemente el backend de base de datos más presente en el planeta, ya que ejecuta la mayoría de los servicios de Internet en todo el mundo. MySQL se ejecuta en prácticamente todas las plataformas, incluidas Linux, UNIX y Windows.

MySQL es un componente importante de una pila empresarial de código abierto llamada LAMP.

LAMP es una plataforma de desarrollo web que utiliza Linux como sistema operativo, Apache como servidor web, MySQL como sistema de gestión de bases de datos relacionales y PHP como lenguaje de programación orientado a objetos.

Soporte de plataforma

Oráculo

La versión más popular de Oracle DB, Oracle 12c, es un sistema RDBMS verdaderamente empresarial compatible con una variedad de sistemas operativos y plataformas. Oracle domina el mundo de las bases de datos en parte porque se ejecuta en docenas de plataformas, desde Mainframe, Sparc, Mac hasta Intel. La lista incluye las siguientes combinaciones de SO y arquitectura:Linux en x86-64 (solo se admiten las distribuciones Red Hat Enterprise Linux, Oracle Linux y SUSE) Microsoft Windows en x86-64. Oracle Solaris en SPARC y x86-64. IBM AIX en sistemas POWER. Linux en IBM zEnterprise Systems HP-UX en Itanium.

MSSQL

Al ser un producto de Microsoft, SQL fue diseñado para ser muy compatible con el sistema operativo Windows. El 16 de noviembre de 2016, Microsoft anunció el comienzo de una nueva historia:SQL Server ahora es compatible con Linux y Docker. ¡El infierno se congela!

MySQL

MYSQL lleva a cabo una ejecución más fluida en todas las plataformas como Microsoft, UNIX, Linux, Mac, etc.

PostgreSQL

En general, se puede esperar que PostgreSQL funcione en varias (incluso exóticas) arquitecturas de CPU y sistemas operativos.

Incluye arquitecturas de CPU como x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, MIPSEL, M68K y PA-RISC. A menudo es posible construir sobre un tipo de CPU no compatible configurando con --disable-spinlocks, pero el rendimiento será deficiente.

Se puede esperar que PostgreSQL funcione en los siguientes sistemas operativos:Linux (todas las distribuciones recientes), Windows (Win2000 SP4 y posterior), FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, HP/UX, IRIX, Solaris, Tru64 Unix, y UnixWare.

Proceso de instalación

Oráculo

De los cuatro sistemas de bases de datos presentados, Oracle tiene los requisitos de sistema más complejos que vienen con un proceso de instalación complejo. Tanto en las plataformas basadas en Windows como en Linux, Oracle utiliza una herramienta Oracle Universal Installer (OUI) dedicada como proceso de instalación principal. El OUI se utiliza para instalar el software Oracle Database. OUI es una utilidad de interfaz gráfica de usuario que le permite:

  • Ver el software de Oracle que está instalado en su máquina
  • Instalar nuevo software de base de datos Oracle
  • Elimine el software de Oracle que ya no sea necesario.

Durante el proceso de instalación, OUI iniciará Oracle Database Configuration Assistant (DBCA), que puede instalar una base de datos predeterminada creada previamente que contiene esquemas de ejemplo o puede guiarlo a través del proceso de creación y configuración de una base de datos personalizada.
 

Oracle OUI:interfaz de instalación

Si no crea una base de datos durante la instalación, puede invocar DBCA después de haber instalado el software para crear una o más bases de datos.

MSSQL

A partir de SQL Server 2016 (13.x), SQL Server solo está disponible como aplicación de 64 bits.

La instalación se realiza mediante el asistente de instalación, un símbolo del sistema o mediante la herramienta sysprep.

El asistente de instalación ejecuta el Centro de instalación de SQL Server. Para crear una nueva instalación de SQL Server, seleccione la opción Instalación en el lado izquierdo y luego haga clic en Nueva instalación independiente de SQL Server o agregue características a una instalación existente.

La instalación basada en Linux es muy similar al método de instalación de la base de datos de código abierto. Admite paquetes para sistemas basados ​​en Debian y RedHat. Los pasos consisten en la configuración del repositorio, la instalación del paquete y la configuración posterior a la instalación, bastante similar a MySQL. Todo el proceso se describe ampliamente en el siguiente artículo.

Asistente de instalación de MSSQL



MySQL

Oracle proporciona un conjunto de distribuciones binarias de MySQL. Estos incluyen distribuciones binarias genéricas en forma de archivos tar comprimidos (archivos con una extensión .tar.gz) para varias plataformas y binarios en paquetes específicos de plataforma. En la plataforma Windows, el asistente de instalación estándar inicia el proceso de instalación a través de la GUI.

PostgreSQL

PostgreSQL está disponible en la mayoría de las distribuciones de Linux, por lo que es muy probable que pueda instalarlo mediante un simple comando yum o apt-get. Para la configuración de HA, puede usar la herramienta ClusterControl s9s o la GUI. Las herramientas de S9S pueden ayudarlo a crear un clúster de PostgreSQL con solo un comando de una sola línea:

$ s9s cluster \
--create \
--cluster-type=postgresql \
--nodes="192.168.0.91?master;192.168.0.92?slave;192.168.0.93?slave" \
--provider-version='11' \
--db-admin='postgres' \
--db-admin-passwd='s3cr3tP455' \
--os-user=root \
--os-key-file=/root/.ssh/id_rsa \
--cluster-name='PostgreSQL 11 Streaming Replication' \
--wait
Creating PostgreSQL Cluster
\ Job 259 RUNNING    [█▋        ]  15% Installing helper packages

Para obtener más información, consulta este blog.

Acceso a la base de datos y creación de BD

Oráculo

Oracle separa el proceso de creación de binarios y bases de datos. A diferencia de otros sistemas de bases de datos populares, la creación de bases de datos implica muchos más pasos.

El Asistente de configuración de base de datos (DBCA) es la forma preferida de crear una base de datos porque puede hacerlo con un enfoque mucho más automatizado. Oracle Universal Installer (OUI) puede iniciar DBCA, según el tipo de instalación que seleccione. También puede iniciar DBCA como una herramienta independiente en cualquier momento después de la instalación de la base de datos de Oracle.

Puede ejecutar DBCA en modo interactivo o en modo no interactivo/silencioso. El modo interactivo proporciona una interfaz gráfica y un flujo de trabajo guiado para crear y configurar una base de datos. El modo no interactivo/silencioso le permite programar la creación de la base de datos. Puede ejecutar DBCA en modo no interactivo/silencioso especificando argumentos de línea de comandos, un archivo de respuesta o ambos.

Oracle DBCA:creación de base de datos

Cuando se crea una base de datos, puede acceder a ella con un cliente dedicado llamado sqlplus. SQL*Plus es un programa de cliente de terminal con el que puede acceder a Oracle Database.

MSSQL

SQL Server Management Studio (SSMS) es la herramienta principal para administrar el motor de base de datos y escribir código Transact-SQL. SSMS está disponible como descarga gratuita desde el Centro de descarga de Microsoft. La última versión se puede usar con versiones anteriores del Motor de base de datos.

Management Studio es un método preferido para crear una nueva base de datos. Para crear una base de datos en Microsoft SQL Server, conéctese a la computadora donde está instalado Microsoft SQL Server utilizando una cuenta de administrador.
Inicie Microsoft SQL Server Management Studio y elija crear una opción de base de datos. El proceso del asistente lo guiará a través del proceso. Si prefiere la línea de comandos, puede hacerlo con la sintaxis CREATE DATABASE.

MySQL

Para acceder a su base de datos MySQL, utilice el cliente mysql. La creación de la base de datos es tan simple como CREAR BASE DE DATOS .

PostgreSQL

La base de datos PostgreSQL tiene la opción de múltiples "esquemas" que funcionan de manera similar a las bases de datos en MySQL.

Los esquemas contienen tablas, índices, etc., y se puede acceder a ellos simultáneamente mediante la misma conexión a la base de datos que los alberga. Los métodos de acceso para PostgreSQL se definen en un archivo:pg_hba.conf. Se puede ubicar en varios lugares. En Ubuntu 14.04 está ubicado en /etc/postgresql/9.3/main/pg_hba.conf, en Centos 7 por otro lado está ubicado por defecto en /var/lib/pgsql/data/pg_hba.conf.

Proceso de copia de seguridad

Oráculo

Oracle tiene la herramienta de copia de seguridad integrada más compleja y dedicada de los cuatro servidores descritos aquí; se llama Recovery Manager (RMAN).

RMAN le permite ejecutar políticas de copia de seguridad sofisticadas y restauraciones selectivas. Las mismas operaciones generalmente requieren muchos pasos manuales en otros RDBMS.

Podemos realizar copias de seguridad de dos formas:

  • deshabilitar la base de datos y copiar archivos físicos (llamada copia de seguridad en frío)
  • usar RMAN y hacer una copia de seguridad sin deshabilitar la base de datos (copia de seguridad en caliente)

Para hacer una copia de seguridad activa, configure la base en modo ARCHIVELOG. Esto le indicará a Oracle que no conserve la copia de los archivos de registro de rehacer como registros de archivo.

MSSQL

En el mundo de MS SQL, puede utilizar los comandos T-SQL integrados para realizar copias de seguridad y restaurar bases de datos. No es necesario utilizar herramientas como mysqlhotcopy y mysqldump.

MS SQL Server ofrece tres estrategias diferentes de copia de seguridad en línea:

  • Modelo de recuperación simple (ALTER DATABASE dbname SET RECOVERY SIMPLE)
  • Modelo de recuperación completa (ALTER DATABASE dbname SET RECOVERY FULL)
  • Modelo de recuperación de registro masivo (ALTER DATABASE dbname SET RECOVERY BULK_LOGGED)

El modelo recomendado es la recuperación completa si no se acepta la pérdida de datos. Este modo es similar a la función MySQL cuando el registro binario está habilitado. Puede recuperar la base de datos en cualquier momento, pero debe hacer copias de seguridad periódicas del registro de transacciones y de la base de datos.

El modelo de registro masivo se puede usar para grandes operaciones masivas, como la importación de datos o la creación de índices en tablas grandes. Es un método bastante menos común para ejecutar una base de datos, especialmente la producción. No es compatible con la recuperación de un punto en el tiempo, por lo que generalmente se usa como una solución temporal.

El modelo simple es útil cuando la base de datos rara vez se actualiza o para fines de prueba y desarrollo. En el modo SIMPLE, el registro de transacciones de la base de datos se corta cada vez que se completa la transacción. En los otros modos, el registro se trunca a través de la instrucción CHECKPOINT o después del archivo de copia de seguridad de la transacción. En caso de que la base de datos esté dañada, solo se puede recuperar la copia de seguridad más reciente y todos los cambios desde esta copia de seguridad se perderán.

MySQL

Las dos utilidades de copia de seguridad más populares están disponibles para MySQL y MariaDB, a saber, la copia de seguridad lógica mysqldump y la copia de seguridad binaria Percona XtraBackup y MariaBackup (una bifurcación de Percona XtraBackup). La versión MySQL Enterprise también ofrece mysqlbackup, que es similar a las herramientas de copia de seguridad en caliente XtraBackup y MariaBackup.

PostgreSQL

La mayoría de los DBMS proporcionan algunas herramientas de copia de seguridad integradas. PostgreSQL tiene pg_dump y pg_dumpall listos para usar. Sin embargo, es posible que desee utilizar otras herramientas para sus bases de datos de producción. Puede encontrar más información en el artículo Herramientas de copia de seguridad principales para PostgreSQL.

Control de la ejecución de consultas y compatibilidad con la concurrencia

Oráculo

En Oracle, todos los objetos de la base de datos se agrupan por esquemas. Los esquemas son una colección de objetos de base de datos y todos los objetos de base de datos se comparten entre todos los esquemas y usuarios. Se puede traducir a bases de datos MySQL. Aunque todo es compartido, cada usuario puede estar limitado a ciertos esquemas y tablas a través de roles y permisos. Este concepto es bastante similar a las bases de datos MySQL.Hola

MSSQL

MS SQL Server organiza todos los objetos, como tablas, vistas y procedimientos, por nombres de base de datos. Los usuarios se asignan a un inicio de sesión, al que se otorga acceso a la base de datos específica y sus objetos. Además, en SQL Server, cada base de datos tiene un archivo de disco privado no compartido en el servidor.

MySQL

MySQL solo tiene soporte para MVCC en InnoDB. Es un motor de almacenamiento y por defecto está disponible en MySQL. También proporciona características de quejas de ACID como soporte de clave externa y manejo de transacciones. De forma predeterminada, cada consulta se trata como una transacción separada, que es un enfoque diferente al de Oracle DB.

PostgreSQL

El motor de Postgres realiza el control de concurrencia mediante el uso de un método llamado MVCC (Control de concurrencia multiversión). Para cada usuario conectado a la base de datos, la base de datos de Postgres brinda una instantánea de la base de datos en una instancia particular. Cuando la base de datos deba actualizar un elemento, agregará la versión más nueva y señalará la versión anterior como obsoleta. Permite que la base de datos ahorre gastos generales, pero requiere un barrido regulado para eliminar los datos antiguos y desactualizados.

Seguridad

Oráculo

Las funciones de seguridad son excelentes, el sistema proporciona seguridad de varias capas, incluidos controles para evaluar riesgos, evitar la divulgación no autorizada de datos, detectar e informar sobre actividades de la base de datos y hacer cumplir los controles de acceso a los datos.

MSSQL

Las funciones de seguridad son modestas, el RDBMS ofrece menos funciones que Oracle pero aún mucho más que los sistemas de base de datos de código abierto.

MySQL

MySQL implementa seguridad basada en Listas de control de acceso (ACL) para todas las conexiones, consultas y otras operaciones que un usuario puede intentar realizar. También hay cierto soporte para conexiones encriptadas con SSL entre clientes y servidores MySQL.

PostgreSQL

PostgreSQL tiene ROLES y roles heredados para establecer y mantener permisos. PostgreSQL tiene soporte SSL nativo para conexiones para encriptar comunicaciones cliente/servidor. También tiene seguridad de nivel de fila.
Además de esto, PostgreSQL viene con una mejora integrada llamada SE-PostgreSQL que proporciona controles de acceso adicionales basados ​​en la política de seguridad de SELinux. Más detalles aquí.

Apoyo a la comunidad

Oráculo

La base de datos Oracle, al igual que MySQL, tiene una gran comunidad, en su mayoría organizada en torno a https://community.oracle.com y grupos apasionados en cualquier lugar del mundo como, por ejemplo, https://poug.org/en/. El soporte pagado le da acceso al grupo de soporte anteriormente conocido como metalink, no support.oracle.com.

MSSQL

Comparado con otros sistemas de bases de datos, MSSQL probablemente tiene los grupos comunitarios menos organizados pero sigue siendo muy activo. Microsoft hace un gran trabajo promocionando sus productos en las universidades. Esto brinda a los jóvenes desarrolladores, Devops y DBA un fácil acceso a la tecnología (licencias gratuitas) y cualquier material necesario.

MySQL

MySQL tiene una gran comunidad de colaboradores que, particularmente después de la adquisición por parte de Oracle, se enfocan principalmente en mantener las características existentes con algunas características nuevas que surgen ocasionalmente. La ventaja sobre otras bases de datos de código abierto es un ecosistema de proveedores externos muy fuerte. Empresas como MariaDB y Percona no solo ofrecen un excelente soporte, sino que también contribuyen agregando funciones empresariales en sus versiones de código abierto.

PostgreSQL

PostgreSQL tiene una comunidad muy fuerte y activa. Su comunidad mejora las funciones existentes, mientras que sus colaboradores innovadores se esfuerzan por garantizar que siga siendo la base de datos más avanzada con nuevas funciones y seguridad, lo que limita la distancia entre las bases de datos Oracle y MSSQL. PostgreSQL es conocido por tener más funciones que otros RDBMS en el mercado.

Opciones de replicación

Oráculo

Oracle ofrece replicación lógica y física a través de Oracle Data Guard integrado. Es una característica empresarial.
Data Guard es una tecnología Ship Redo/Apply Redo, "redo" es la información necesaria para recuperar transacciones.

Una base de datos de producción conocida como base de datos primaria difunde rehacer a una o más réplicas denominadas bases de datos en espera. Cuando se realiza una inserción o actualización en una tabla, el escritor de registro captura este cambio en un registro de archivo y lo replica en el sistema de reserva.

Las bases de datos en espera están en una fase continua de recuperación, verificando y aplicando rehacer para mantener la sincronización con la base de datos principal. Una base de datos en espera también se volverá a sincronizar automáticamente si se desconecta temporalmente de la base de datos principal debido a cortes de energía, problemas de red, etc.

Para obtener opciones de replicación más flexibles, como la replicación selectiva de varias fuentes, debe considerar una herramienta paga adicional, Oracle Golden Gate.

MSSQL

Microsoft SQL Server proporciona los siguientes tipos de replicación para usar en aplicaciones distribuidas:

  • Replicación transaccional
  • Fusionar replicación
  • Replicación de instantáneas

Se puede ampliar en gran medida con Microsoft Integration Services, lo que le brinda la opción de personalizar el flujo de replicación desde el primer momento.

PostgreSQL

PostgreSQL tiene varias opciones disponibles, cada una con sus propias ventajas y desventajas, según lo que se necesite a través de la replicación. Las opciones de compilación se basan en el registro de escritura anticipada. Los archivos se envían a un servidor en espera donde se leen y reproducen, o Streaming Replication, donde un servidor en espera de solo lectura obtiene registros de transacciones a través de una conexión de base de datos para reproducirlos. En el caso de una arquitectura de replicación más sofisticada, probablemente le gustaría comprobar Slony (maestro a múltiples esclavos) o Bucardo (multimaestro).

MySQL

MySQL Replication es probablemente la solución de alta disponibilidad más popular para MySQL,
y ampliamente utilizada por los principales servicios web.

Es fácil de configurar, pero el mantenimiento continuo, como actualizaciones de software, cambios de esquema, cambios de topología, conmutación por error y recuperación, siempre ha sido complicado.

La replicación de MySQL no requiere herramientas de terceros, tanto maestro-esclavo como multimaestro se pueden hacer de manera inmediata.

Las versiones recientes de MySQL agregaron la replicación de múltiples fuentes y la identificación de transacción global, lo que lo hace aún más confiable y fácil de mantener.

Conclusión

Las bases de datos prioritarias como Oracle y MSSQL ofrecen sistemas de gestión robustos y excelente soporte. Entre la larga lista de funciones admitidas, los usuarios pueden tener la sensación tranquilizadora de acceder a soporte empresarial y sistemas de conocimiento de pago.

Por otro lado, el costo de la licencia, que no es tan grande como la brecha de características y los complementos empresariales, lo harán ansioso por cambiar a la decisión de código abierto más fácil que nunca.

El uso de procesos predefinidos y automatización no solo puede ahorrarle tiempo, sino también protegerlo de errores comunes.

Una plataforma de administración que aborde sistemáticamente todos los diferentes aspectos del ciclo de vida de la base de datos será más sólida que unir varias soluciones puntuales.