sql >> Database teknologi >  >> RDS >> Mysql

Grundlæggende administration Sammenligning mellem Oracle, MSSQL, MySQL, PostgreSQL

Introduktionen af ​​DevOps i organisationer har ændret udviklingsprocessen og også introduceret nogle nye udfordringer. Derudover har udviklere og DevOps-teams, sammen med deres egne valgte programmeringssprog, også deres foretrukne databasesystemer.

Produktets livscyklus bliver kortere for hvert år, så udviklere vil gerne være i stand til at udvikle sig hurtigt ved at bruge teknologier, de kender bedst.

At have flere RDBMS-databasebackends betyder, at din organisation bliver mere agil på udviklingssiden, men det pålægger også driftsteamene yderligere viden.

Udvidelse af din infrastruktur fra én til mange databaser betyder, at du også skal overvåge, administrere og skalere dem.

Da hver storage-backend udmærker sig ved forskellige use cases, betyder det også, at du skal genopfinde hjulet for hver enkelt af dem.

At kende lighederne og de vigtigste forskelle vil hjælpe dig med at fordybe dig i forskellige varianter af RDBMS.

I denne artikel vil vi gennemgå følgende punkter:

  • En kort introduktion til platformen
    • Oracle, MSSQL, MySQL, PostgreSQL
  • Platformsupport
  • Installationsproces
  • Databasedgang
  • Sikkerhedskopieringsproces
  • Styrer udførelse af forespørgsler
  • Sikkerhed
  • Replikeringsmuligheder
  • Fællesskabsstøtte

En kort introduktion til platformen

PostgreSQL er for mange anerkendt som verdens mest avancerede open source-database. Det er et fuldt open source-databasesystem udgivet under sin egen licens, PostgreSQL-licensen, der kan sammenlignes med MIT- eller BSD-licenserne. PostgreSQL-fællesskabet er aktivt og forbedrer løbende eksisterende og nye funktioner. I henhold til DB-motorens popularitetsrangering var PostgreSQL årets DBMS 2017 og 2018. DB-Engines popularitet viser, at tendensen ikke ændrede sig gennem årene.

Et interessant faktum er, at PostgreSQL ikke understøttede SQL før 1994. QUEL-sproget blev brugt til at forespørge data fra det. SQL-understøttelse blev tilføjet senere.

PostgreSQL har mange avancerede funktioner, som andre virksomhedsdatabasestyringssystemer tilbyder, såsom visninger, lagrede procedurer, indekser og triggere ud over den primære nøgle, fremmednøgle og atomicitetsfunktioner.

PostgreSQL kan udvides af brugere ved at ændre eksisterende funktioner, tilføje nye funktioner og distribueres frit, da det er open source. Det kører på større platforme som UNIX, MacOS, Windows og Linux osv. Det understøtter video, tekst, lyd, billeder, programmeringsgrænseflader til forskellige sprog. Listen over understøttede sprog inkluderer C/C++, Java, Python, Perl osv.

Oracle er en af ​​de største leverandører af RDBMS (relational database management system) i it-verdenen. Det er kendt som en Oracle-database, Oracle DB eller Oracle markedsført af Oracle.

Oracle Database bliver brugt af mange virksomheder i it-branchen til transaktionsbehandling, forretningsanalyse, business intelligence-applikationsformål osv.

Oracle har en lang og meget interessant historie:

Den 16. juni 1977 blev Software Development Laboratories (SDL) oprettet i Santa Clara, Californien af ​​Larry Ellison, Bob Miner og Ed Oates. I 1977 tog Oracle sit navn fra CIA-projektets kodenavn, og det første kommercialiserede Oracle RDBMS blev vist til verden i 1979.

Oracle-databasen er tilgængelig i forskellige udgaver, såsom Enterprise edition Standard edition, Express edition og Oracle Lite. Den største konkurrent til Oracle-databasen er Microsoft SQL-serveren.

Microsoft SQL Server er et meget populært RDBMS med restriktive licenser og beskedne omkostninger ved ejerskab, hvis databasen er af betydelig størrelse eller bruges af et betydeligt antal klienter.

Det er en af ​​de tre markedsledende databaseteknologier sammen med Oracle Database og IBM's DB2.

Det giver en meget brugervenlig grænseflade og nem at lære, hvilket har resulteret i en stor installeret brugerbase.

Ligesom anden RDBMS-software er Microsoft SQL Server bygget oven på SQL, et standardiseret programmeringssprog, som databaseadministratorer (DBA'er) og andre it-professionelle bruger til at administrere databaser og forespørge på de data, de indeholder. SQL Server er knyttet til Transact-SQL (T-SQL), en implementering af SQL fra Microsoft, der tilføjer et sæt proprietære programmeringsudvidelser til standardsproget.

MySQL

MySQL er et Oracle-understøttet open source relationsdatabasestyringssystem baseret på SQL.

Oprindeligt udtænkt af det svenske firma MySQL AB, blev MySQL købt af Sun Microsystems i 2008 og derefter af Oracle, da det købte Sun i 2010.

Udviklere kan bruge MySQL under GNU General Public License (GPL). Enterprise-versionen leveres med support og yderligere funktioner for sikkerhed og høj tilgængelighed.

Det er den næstmest populære database i verden i henhold til db-engines rangering og sandsynligvis den mest nuværende databasebackend på planeten, da den kører de fleste internettjenester rundt om i verden. MySQL kører på stort set alle platforme, inklusive Linux, UNIX og Windows.

MySQL er en vigtig komponent i en open source enterprise stack kaldet LAMP.

LAMP er en webudviklingsplatform, der bruger Linux som operativsystem, Apache som webserver, MySQL som det relationelle databasestyringssystem og PHP som det objektorienterede scriptsprog.

Platformunderstøttelse

Oracle

Den mest populære version af Oracle DB, Oracle 12c, er et ægte RDBMS-system til virksomheder, som understøttes på en række forskellige operativsystemer og platforme. Oracle dominerer databaseverdenen til dels, fordi den kører på snesevis af platforme, alt fra en Mainframe, Sparc, Mac til Intel. Listen omfatter følgende OS- og arkitekturkombinationer:Linux på x86-64 (kun Red Hat Enterprise Linux, Oracle Linux og SUSE-distributioner understøttes) Microsoft Windows på x86-64. Oracle Solaris på SPARC og x86-64. IBM AIX på POWER-systemer. Linux på IBM zEnterprise Systems HP-UX på Itanium.

MSSQL

Da SQL er et Microsoft-produkt, er det designet til at være meget kompatibelt med Windows OS. Den 16. november 2016 annoncerede Microsoft begyndelsen på en ny historie:SQL Server understøttes nu på Linux og Docker. Helvede fryser til!

MySQL

MYSQL udfører jævnere udførelse på alle platforme som Microsoft, UNIX, Linux, Mac osv.

PostgreSQL

Generelt kan PostgreSQL forventes at fungere på forskellige (selv eksotiske) CPU-arkitekturer og operativsystemer.

Det inkluderer CPU-arkitekturer som x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, MIPSEL, M68K og PA-RISC. Det er ofte muligt at bygge på en ikke-understøttet CPU-type ved at konfigurere med --disable-spinlocks, men ydeevnen vil være dårlig.

PostgreSQL kan forventes at fungere på følgende operativsystemer:Linux (alle nyere distributioner), Windows (Win2000 SP4 og nyere), FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, HP/UX, IRIX, Solaris, Tru64 Unix, og UnixWare.

Installationsproces

Oracle

Fra alle fire præsenterede databasesystemer har Oracle de mest komplekse systemkrav, som kommer med en kompleks installationsproces. På både Windows- og Linux-baserede platforme bruger Oracle et dedikeret Oracle Universal Installer-værktøj (OUI) som den primære installationsproces. OUI'en bruges til at installere Oracle Database-softwaren. OUI er et grafisk brugergrænsefladeværktøj, der giver dig mulighed for at:

  • Se den Oracle-software, der er installeret på din maskine
  • Installer ny Oracle Database-software
  • Slet Oracle-software, der ikke længere er påkrævet.

Under installationsprocessen vil OUI starte Oracle Database Configuration Assistant (DBCA), som kan installere en forudoprettet standarddatabase, der indeholder eksempelskemaer eller kan guide dig gennem processen med at oprette og konfigurere en tilpasset database.
 

Oracle OUI - installationsgrænseflade

Hvis du ikke opretter en database under installationen, kan du aktivere DBCA, efter du har installeret softwaren, for at oprette en eller flere databaser.

MSSQL

Fra og med SQL Server 2016 (13.x) er SQL Server kun tilgængelig som en 64-bit applikation.

Installationen sker via installationsguiden, en kommandoprompt eller gennem sysprep-værktøjet.

Installationsguiden kører SQL Server Installation Center. For at oprette en ny installation af SQL Server skal du vælge indstillingen Installation i venstre side og derefter klikke på New SQL Server stand-alone installation eller tilføje funktioner til en eksisterende installation.

Den Linux-baserede installation minder meget om open source-databaseinstallationsmetoden. Det understøtter pakke til Debian- og RedHat-baserede systemer. Trinene består af repository-konfiguration, pakkeinstallation og post-installation-konfiguration, som ligner MySQL. Hele processen er meget beskrevet i den følgende artikel.

MSSQL-installationsguide



MySQL

Oracle leverer et sæt binære distributioner af MySQL. Disse omfatter generiske binære distributioner i form af komprimerede tar-filer (filer med en .tar.gz-udvidelse) til en række platforme og binære filer i platformsspecifikke pakker. På Windows-platformen udløses installationsprocessen af ​​standardinstallationsguiden via GUI.

PostgreSQL

PostgreSQL er tilgængelig i de fleste Linux-distributioner, så det er meget sandsynligt, at du kan installere det gennem en simpel yum eller apt-get kommando. Til HA-konfigurationen kan du bruge ClusterControl s9s-værktøjet eller GUI. S9S-værktøjer kan hjælpe dig med at oprette en PostgreSQL-klynge med kun en enkelt linjekommando:

$ 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

For mere information, tjek denne blog.

Adgang til databasen og oprettelse af DB

Oracle

Oracle adskiller processen med oprettelse af binær og database. I modsætning til andre populære databasesystemer involverer oprettelse af databaser meget flere trin.

Database Configuration Assistant (DBCA) er den foretrukne måde at oprette en database på, fordi den kan gøre det i en meget mere automatiseret tilgang. DBCA kan startes af Oracle Universal Installer (OUI), afhængigt af den type installation, du vælger. Du kan også starte DBCA som et selvstændigt værktøj til enhver tid efter Oracle Database Installation.

Du kan køre DBCA i interaktiv tilstand eller ikke-interaktiv/lydløs tilstand. Interaktiv tilstand giver en grafisk grænseflade og guidet arbejdsgang til oprettelse og konfiguration af en database. Ikke-interaktiv/støjsvag tilstand giver dig mulighed for at scripte oprettelsen af ​​databasen. Du kan køre DBCA i ikke-interaktiv/støjsvag tilstand ved at angive kommandolinjeargumenter, en svarfil eller begge dele.

Oracle DBCA - oprettelse af database

Når en database er oprettet, kan du få adgang til den med en dedikeret klient kaldet sqlplus. SQL*Plus er et terminalklientprogram, hvormed du kan få adgang til Oracle Database.

MSSQL

SQL Server Management Studio (SSMS) er hovedværktøjet til at administrere databasemotoren og skrive Transact-SQL-kode. SSMS er tilgængelig som en gratis download fra Microsoft Download Center. Den seneste version kan bruges med ældre versioner af databasemotoren.

Management Studio er en foretrukken metode til at oprette en ny database. For at oprette en database i Microsoft SQL Server skal du oprette forbindelse til den computer, hvor Microsoft SQL Server er installeret, ved hjælp af en administratorkonto.
Start Microsoft SQL Server Management Studio, og vælg at oprette en databaseindstilling. Guiden-processen vil lede dig gennem processen. Hvis du foretrækker kommandolinje, kan dette gøres med CREATE DATABASE syntaks.

MySQL

Brug mysql-klienten for at få adgang til din MySQL-database. Oprettelse af databasen er så simpel som OPRET DATABASE .

PostgreSQL

PostgreSQL-databasen har mulighed for flere 'skemaer', som fungerer på samme måde som databaser i MySQL.

Skemaer indeholder tabeller, indekser osv., og kan tilgås samtidigt med den samme forbindelse til databasen, som huser dem. Adgangsmetoder til PostgreSQL er defineret i en fil:pg_hba.conf. Det kan placeres forskellige steder. På Ubuntu 14.04 er det placeret i /etc/postgresql/9.3/main/pg_hba.conf, på Centos 7 på den anden side er det placeret som standard i /var/lib/pgsql/data/pg_hba.conf.

Sikkerhedskopieringsproces

Oracle

Oracle har det mest komplekse, dedikerede indbyggede backupværktøj af alle fire servere beskrevet her; det hedder Recovery Manager (RMAN).

RMAN giver dig mulighed for at køre sofistikerede sikkerhedskopieringspolitikker og selektive gendannelser. De samme operationer kræver normalt mange manuelle trin i andre RDBMS.

Vi kan tage sikkerhedskopier på to måder:

  • deaktivering af databasen og kopiering af fysiske filer (såkaldt kold backup)
  • brug RMAN og lav en sikkerhedskopi uden at deaktivere databasen (hot backup)

For at lave en varm backup skal du indstille basen i ARCHIVELOG-tilstand. Dette vil bede Oracle om ikke at beholde kopien af ​​gentag-logfiler som en arkivlog.

MSSQL

I MS SQL-verdenen kan du bruge de indbyggede T-SQL-kommandoer til at sikkerhedskopiere og gendanne databaser. Der er ingen grund til at bruge værktøjer som mysqlhotcopy og mysqldump.

MS SQL Server tilbyder tre forskellige online backup-strategier:

  • Simpel gendannelsesmodel (ALTER DATABASE dbname SET RECOVERY SIMPLE)
  • Fuld gendannelsesmodel (ALTER DATABASE dbname SET RECOVERY FULL)
  • Masselogget gendannelsesmodel (ALTER DATABASE dbname SET RECOVERY BULK_LOGGED)

Den anbefalede model er fuld gendannelse, hvis intet datatab er acceptabelt. Denne tilstand ligner MySQL-funktionen, når den binære log er aktiveret. Du kan gendanne databasen til ethvert tidspunkt, men du bør regelmæssigt sikkerhedskopiere transaktionsloggen såvel som databasen.

Den bulk-loggede model kan bruges til store bulk-operationer, såsom import af data eller oprettelse af indekser på store tabeller. Det er en mindre almindelig metode til at køre en database, især produktion. Det understøtter ikke punkt-i-tidsgendannelse, så det bruges generelt som en midlertidig løsning.

Simple-modellen er nyttig, når databasen sjældent opdateres eller til test- og udviklingsformål. I SIMPLE-tilstand skæres databasens transaktionslog hver gang, efter at transaktionen er gennemført. I de andre tilstande afkortes loggen via CHECKPOINT-erklæringen eller efter transaktionens backup-fil. I tilfælde af at databasen er beskadiget, kan kun den seneste sikkerhedskopi gendannes, og alle ændringer siden denne sikkerhedskopi går tabt.

MySQL

To mest populære sikkerhedskopieringsværktøjer er tilgængelige til MySQL og MariaDB, nemlig mysqldump logisk backup og binær backup Percona XtraBackup og MariaBackup (en gaffel af Percona XtraBackup). MySQL Enterprise-versionen tilbyder også mysqlbackup, som ligner XtraBackup og MariaBackup hot backup-værktøjer.

PostgreSQL

De fleste DBMS'er har nogle indbyggede sikkerhedskopieringsværktøjer. PostgreSQL har pg_dump og pg_dumpall ude af æsken. Du vil dog måske bruge nogle andre værktøjer til dine produktionsdatabaser. Mere information kan findes i de øverste sikkerhedskopieringsværktøjer til PostgreSQL-artiklen.

Styring af forespørgselsudførelse og samtidighedsunderstøttelse

Oracle

I Oracle er alle databaseobjekter grupperet efter skemaer. Skemaer er samling af databaseobjekter, og alle databaseobjekter deles mellem alle skemaer og brugere. Det kan oversættes til MySQL-databaser. Selvom det hele er delt, kan hver bruger begrænses til bestemte skemaer og tabeller via roller og tilladelser. Dette koncept minder meget om MySQL-databaser. Hej

MSSQL

MS SQL Server organiserer alle objekter, såsom tabeller, visninger og procedurer, efter databasenavne. Brugere tildeles et log-in, som får adgang til den specifikke database og dens objekter. I SQL Server har hver database også en privat, ikke-delt diskfil på serveren.

MySQL

MySQL har kun MVCC-understøttelse i InnoDB. Det er en lagringsmotor og er som standard tilgængelig i MySQL. Det giver også ACID-klagefunktioner som understøttelse af udenlandsk nøgle og transaktionshåndtering. Som standard behandles hver forespørgsel som en separat transaktion, hvilket er en anden tilgang end i Oracle DB.

PostgreSQL

Postgres motor udfører samtidighedskontrol ved at bruge en metode kaldet MVCC (Multiversion Concurrency Control). For hver bruger, der er forbundet til databasen, giver Postgres-databasen et øjebliksbillede af databasen ved et bestemt tilfælde. Når databasen skal opdatere et element, tilføjer den den nyere version og peger på den gamle version som forældet. Det giver databasen mulighed for at spare overhead, men kræver et reguleret sweep for at slette de gamle, forældede data.

Sikkerhed

Oracle

Sikkerhedsfunktionerne er fantastiske, systemet giver sikkerhed i flere lag, herunder kontroller til at evaluere risici, forhindre uautoriseret videregivelse af data, opdage og rapportere om databaseaktiviteter og håndhæve kontrol med dataadgang.

MSSQL

Sikkerhedsfunktionerne er beskedne, RDBMS tilbyder færre funktioner end Oracle, men stadig meget mere end Open Source-databasesystemer.

MySQL

MySQL implementerer sikkerhed baseret på adgangskontrollister (ACL'er) for alle forbindelser, forespørgsler og andre handlinger, som en bruger kan forsøge at udføre. Der er også en vis understøttelse af SSL-krypterede forbindelser mellem MySQL-klienter og servere.

PostgreSQL

PostgreSQL har ROLLER og nedarvede roller til at indstille og vedligeholde tilladelser. PostgreSQL har indbygget SSL-understøttelse af forbindelser til kryptering af klient/server-kommunikation. Den har også Row Level Security.
Udover dette kommer PostgreSQL med en indbygget forbedring kaldet SE-PostgreSQL, som giver yderligere adgangskontrol baseret på SELinux sikkerhedspolitik. Flere detaljer her.

Fællesskabssupport

Oracle

Oracle-databasen har, ligesom MySQL, et stort fællesskab, for det meste organiseret omkring https://community.oracle.com og passionerede grupper overalt i verden som f.eks. https://poug.org/en/. Den betalte support giver dig adgang til supportgruppen tidligere kendt som metalink, ikke support.oracle.com.

MSSQL

Sammenlignet med andre databasesystemer har MSSQL sandsynligvis de mindst organiserede samfundsgrupper, men stadig meget aktive. Microsoft gør et godt stykke arbejde med at promovere sine produkter på universiteterne. Dette giver unge udviklere, devops og DBA'er nem adgang til teknologien (gratis licenser) og alle nødvendige materialer.

MySQL

MySQL har et stort fællesskab af bidragydere, som, især efter opkøbet af Oracle, hovedsageligt fokuserer på at vedligeholde eksisterende funktioner med nogle nye funktioner, der dukker op af og til. Fordelen i forhold til andre open source-databaser er et meget stærkt eksternt leverandørøkosystem. Virksomheder som MariaDB og Percona tilbyder ikke kun god support, men bidrager også ved at tilføje virksomhedsfunktioner i deres open source-versioner.

PostgreSQL

PostgreSQL har et meget stærkt og aktivt fællesskab. Dets fællesskab forbedrer eksisterende funktioner, mens dets innovative committers stræber efter at sikre, at det forbliver den mest avancerede database med nye funktioner og sikkerhed, hvilket begrænser afstanden mellem Oracle- og MSSQL-databaser. PostgreSQL er kendt for at have flere funktioner end andre RDBMS på markedet.

Replikeringsmuligheder

Oracle

Oracle tilbyder logisk og fysisk replikering gennem en indbygget Oracle Data Guard. Det er en virksomhedsfunktion.
Data Guard er en Ship Redo / Anvend Redo-teknologi, "redo" er den information, der er nødvendig for at gendanne transaktioner.

En produktionsdatabase, der omtales som en primær database, sender om til en eller flere replikaer, der kaldes standby-databaser. Når der foretages en indsættelse eller opdatering af en tabel, fanges denne ændring af logskriveren i en arkivlog og replikeres til standbysystemet.

Standby-databaser er i en kontinuerlig fase med gendannelse, verificering og anvendelse af gentag for at opretholde synkronisering med den primære database. En standby-database synkroniseres også automatisk igen, hvis den midlertidigt afbrydes til den primære database på grund af strømafbrydelser, netværksproblemer osv.

For mere fleksible replikeringsmuligheder såsom multisource, selektiv replikering bør du overveje et ekstra betalt værktøj, Oracle Golden Gate.

MSSQL

Microsoft SQL Server leverer følgende typer replikering til brug i distribuerede applikationer:

  • Transaktionsreplikering
  • Flet replikering
  • Snapshot-replikering

Det kan udvides kraftigt med Microsoft Integration Services, hvilket giver dig mulighed for at tilpasse replikeringsflowet ud af kassen.

PostgreSQL

PostgreSQL har flere muligheder tilgængelige, hver med sine egne fordele og ulemper, afhængigt af hvad der er behov for gennem replikering. Opbygningsmulighederne er baseret på Write Ahead Log. Filer sendes til en standbyserver, hvor de læses og afspilles igen, eller Streaming Replication, hvor en skrivebeskyttet standbyserver henter transaktionslogfiler over en databaseforbindelse for at afspille dem igen. I tilfælde af en mere sofistikeret replikeringsarkitektur vil du sandsynligvis gerne tjekke Slony (master til flere slaver) eller Bucardo (multimaster).

MySQL

MySQL-replikering er sandsynligvis den mest populære højtilgængelighedsløsning til MySQL,
og udbredt af topwebtjenester.

Det er nemt at konfigurere, men løbende vedligeholdelse som softwareopgraderinger, skemaændringer, topologiændringer, failover og gendannelse har altid været vanskelig.

MySQL-replikering kræver ikke nogen tredjepartsværktøjer, både master-slave og multimaster kan udføres ud af boksen.

De seneste versioner af MySQL tilføjede replikering af flere kilder og globalt transaktions-id, som gør det endnu mere pålideligt og lettere at vedligeholde.

Konklusion

Prioriterede databaser som Oracle og MSSQL tilbyder robuste administrationssystemer og fin support. Blandt den lange liste af understøttede funktioner kan brugere få den betryggende følelse af adgang til virksomhedssupport og betalte vidensystemer.

På den anden side vil omkostningerne ved licensen, der ikke er det store funktionsgab og virksomhedsplugins, gøre dig ivrig efter at skifte til open source-beslutningen nemmere end nogensinde.

Brug af foruddefinerede processer og automatisering kan ikke kun spare dig tid, men også beskytte dig mod almindelige fejl.

En administrationsplatform, der systematisk adresserer alle de forskellige aspekter af databasens livscyklus, vil være mere robust end at sammenlappe en række punktløsninger.


  1. Bedste måde at slette millioner af rækker efter ID

  2. Huawei GaussDB

  3. Fjernforbindelser Mysql Ubuntu

  4. Tilføj dage til en dato i SQLite