sql >> Databasteknik >  >> RDS >> Mysql

Grundläggande administration Jämförelse mellan Oracle, MSSQL, MySQL, PostgreSQL

Införandet av DevOps i organisationer har förändrat utvecklingsprocessen och även infört några nya utmaningar. Dessutom har utvecklare och DevOps-team, tillsammans med sina egna valda programmeringsspråk, också sina favoritdatabassystem.

Produktens livscykel blir kortare för varje år så utvecklare vill kunna utvecklas snabbt med hjälp av den teknik de känner bäst till.

Att ha flera RDBMS-databasbackends innebär att din organisation blir mer agil på utvecklingssidan, men det kräver också ytterligare kunskap hos driftteamen.

Att utöka din infrastruktur från en till många databaser innebär att du också måste övervaka, hantera och skala dem.

Eftersom varje lagringsbackend utmärker sig vid olika användningsfall betyder det också att du måste uppfinna hjulet på nytt för var och en av dem.

Att känna till likheterna och de viktigaste skillnaderna hjälper dig att fördjupa dig i olika smaker av RDBMS.

I den här artikeln kommer vi att gå igenom följande punkter:

  • En kort introduktion till plattformen
    • Oracle, MSSQL, MySQL, PostgreSQL
  • Plattformsstöd
  • Installationsprocess
  • Databasåtkomst
  • Säkerhetskopieringsprocess
  • Styrar körning av fråge
  • Säkerhet
  • Replikeringsalternativ
  • Communitysupport

En kort introduktion till plattformen

PostgreSQL är för många erkänt som världens mest avancerade databas med öppen källkod. Det är ett helt öppen källkodsdatabassystem släppt under sin egen licens, PostgreSQL-licensen, jämförbart med MIT- eller BSD-licenserna. PostgreSQL-communityt är aktivt och förbättrar ständigt befintliga och nya funktioner. Enligt DB-motorernas popularitetsrankning var PostgreSQL årets DBMS 2017 och 2018. DB-Engines popularitet visar att trenden inte förändrades under åren.

Ett intressant faktum är att PostgreSQL inte stödde SQL förrän 1994. QUEL-språket användes för att söka efter data från det. SQL-stöd lades till senare.

PostgreSQL har många avancerade funktioner som andra företagsdatabashanteringssystem erbjuder, såsom vyer, lagrade procedurer, index och triggers förutom primärnyckeln, främmande nyckel och atomicitetsfunktioner.

PostgreSQL kan utökas av användare genom att modifiera befintliga funktioner, lägga till nya funktioner och distribueras fritt eftersom det är öppen källkod. Den körs på stora plattformar som UNIX, MacOS, Windows och Linux etc. Den stöder video, text, ljud, bilder, programmeringsgränssnitt för olika språk. Listan över språk som stöds inkluderar C/C++, Java, Python, Perl etc.

Oracle är en av de största leverantörerna av RDBMS (relational databas management system) i IT-världen. Den är känd som en Oracle-databas, Oracle DB eller Oracle som marknadsförs av Oracle.

Oracle Database används av många företag inom IT-branschen för transaktionsbearbetning, affärsanalys, affärsinformationsapplikationer, etc.

Oracle har en lång och mycket intressant historia:

Den 16 juni 1977 skapades Software Development Laboratories (SDL) i Santa Clara, Kalifornien av Larry Ellison, Bob Miner och Ed Oates. 1977 tog Oracle sitt namn från CIA-projektets kodnamn och det första kommersialiserade Oracle RDBMS visas för världen 1979.

Oracle-databasen finns tillgänglig i olika utgåvor som Enterprise-utgåvan Standardutgåva, Expressutgåvan och Oracle Lite. Den största konkurrenten till Oracle-databasen är Microsoft SQL-servern.

Microsoft SQL Server är ett mycket populärt RDBMS med restriktiva licenser och blygsamma ägandekostnader om databasen är av betydande storlek eller används av ett betydande antal kunder.

Det är en av de tre marknadsledande databasteknikerna, tillsammans med Oracle Database och IBM:s DB2.

Det ger ett mycket användarvänligt gränssnitt och lätt att lära sig, vilket har resulterat i en stor installerad användarbas.

Liksom andra RDBMS-program, är Microsoft SQL Server byggd ovanpå SQL, ett standardiserat programmeringsspråk som databasadministratörer (DBA) och andra IT-proffs använder för att hantera databaser och fråga efter data de innehåller. SQL Server är knuten till Transact-SQL (T-SQL), en implementering av SQL från Microsoft som lägger till en uppsättning proprietära programmeringstillägg till standardspråket.

MySQL

MySQL är ett Oracle-stödt open source relationsdatabashanteringssystem baserat på SQL.

MySQL, som ursprungligen skapades av det svenska företaget MySQL AB, förvärvades av Sun Microsystems 2008 och sedan av Oracle när det köpte Sun 2010.

Utvecklare kan använda MySQL under GNU General Public License (GPL). Enterprise-versionen kommer med stöd och ytterligare funktioner för säkerhet och hög tillgänglighet.

Det är den näst mest populära databasen i världen enligt db-engines ranking och förmodligen den mest aktuella databasens backend på planeten eftersom den driver de flesta av internettjänsterna runt om i världen. MySQL körs på praktiskt taget alla plattformar, inklusive Linux, UNIX och Windows.

MySQL är en viktig komponent i en företagsstack med öppen källkod som heter LAMP.

LAMP är en webbutvecklingsplattform som använder Linux som operativsystem, Apache som webbserver, MySQL som relationsdatabashanteringssystem och PHP som objektorienterat skriptspråk.

Plattformsstöd

Oracle

Den mest populära versionen av Oracle DB, Oracle 12c, är ett verkligt RDBMS-system för företag som stöds på en mängd olika operativsystem och plattformar. Oracle dominerar databasvärlden delvis eftersom den körs på dussintals plattformar, allt från stordatorer, Sparc, Mac till Intel. Listan inkluderar följande operativsystem och arkitekturkombinationer:Linux på x86-64 (endast Red Hat Enterprise Linux, Oracle Linux och SUSE-distributioner stöds) Microsoft Windows på x86-64. Oracle Solaris på SPARC och x86-64. IBM AIX på POWER-system. Linux på IBM zEnterprise Systems HP-UX på Itanium.

MSSQL

Eftersom SQL är en Microsoft-produkt utformades den för att vara mycket kompatibel med Windows OS. Den 16 november 2016 tillkännagav Microsoft början på en ny historia:SQL Server stöds nu på Linux och Docker. Helvetet fryser!

MySQL

MYSQL utför smidigare exekvering på alla plattformar som Microsoft, UNIX, Linux, Mac etc.

PostgreSQL

I allmänhet kan PostgreSQL förväntas fungera på olika (även exotiska) CPU-arkitekturer och operativsystem.

Den innehåller CPU-arkitekturer som x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, MIPSEL, M68K och PA-RISC. Det är ofta möjligt att bygga på en CPU-typ som inte stöds genom att konfigurera med --disable-spinlocks, men prestandan blir dålig.

PostgreSQL kan förväntas fungera på följande operativsystem:Linux (alla senaste distributioner), Windows (Win2000 SP4 och senare), FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, HP/UX, IRIX, Solaris, Tru64 Unix, och UnixWare.

Installationsprocess

Oracle

Av alla fyra presenterade databassystem har Oracle de mest komplexa systemkraven som kommer med en komplex installationsprocess. På både Windows- och Linuxbaserade plattformar använder Oracle ett dedikerat Oracle Universal Installer-verktyg (OUI) som huvudinstallationsprocessen. OUI används för att installera programvaran Oracle Database. OUI är ett grafiskt användargränssnittsverktyg som gör att du kan:

  • Visa Oracle-programvaran som är installerad på din dator
  • Installera ny programvara för Oracle Database
  • Ta bort Oracle-programvara som inte längre behövs.

Under installationsprocessen kommer OUI att starta Oracle Database Configuration Assistant (DBCA) som kan installera en förskapad standarddatabas som innehåller exempelscheman eller kan guida dig genom processen att skapa och konfigurera en anpassad databas.
 

Oracle OUI - installationsgränssnitt

Om du inte skapar en databas under installationen kan du anropa DBCA efter att du har installerat programvaran för att skapa en eller flera databaser.

MSSQL

Från och med SQL Server 2016 (13.x) är SQL Server endast tillgänglig som en 64-bitars applikation.

Installationen sker via installationsguiden, en kommandotolk eller genom sysprep-verktyget.

Installationsguiden kör SQL Server Installation Center. För att skapa en ny installation av SQL Server, välj alternativet Installation på vänster sida och klicka sedan på Ny SQL Server fristående installation eller lägg till funktioner till en befintlig installation.

Den Linuxbaserade installationen är mycket lik installationsmetoden för öppen källkodsdatabas. Den stöder paketering för Debian- och RedHat-baserade system. Stegen består av lagringskonfiguration, paketinstallation och konfiguration efter installation, ganska lik MySQL. Hela processen beskrivs utförligt i följande artikel.

MSSQL-installationsguide



MySQL

Oracle tillhandahåller en uppsättning binära distributioner av MySQL. Dessa inkluderar generiska binära distributioner i form av komprimerade tar-filer (filer med tillägget .tar.gz) för ett antal plattformar och binärfiler i plattformsspecifika paket. På Windows-plattformen utlöses installationsprocessen av standardinstallationsguiden via GUI.

PostgreSQL

PostgreSQL är tillgängligt i de flesta Linux-distributioner så det är mycket troligt att du kan installera det genom ett enkelt yum eller apt-get-kommando. För HA-konfigurationen kan du använda ClusterControl s9s-verktyget eller GUI. S9S-verktyg kan hjälpa dig att skapa ett PostgreSQL-kluster med bara ett kommando på en rad:

$ 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

För mer information, kolla den här bloggen.

Åtkomst till databasen och skapande av DB

Oracle

Oracle separerar processen för att skapa binär och databas. Till skillnad från andra populära databassystem innefattar skapande av databas mycket fler steg.

Database Configuration Assistant (DBCA) är det föredragna sättet att skapa en databas eftersom den kan göra det på ett mycket mer automatiserat sätt. DBCA kan startas av Oracle Universal Installer (OUI), beroende på vilken typ av installation du väljer. Du kan också starta DBCA som ett fristående verktyg när som helst efter Oracle Database Installation.

Du kan köra DBCA i interaktivt läge eller icke-interaktivt/tyst läge. Interaktivt läge ger ett grafiskt gränssnitt och ett guidat arbetsflöde för att skapa och konfigurera en databas. Icke-interaktivt/tyst läge gör att du kan skripta databasen. Du kan köra DBCA i icke-interaktivt/tyst läge genom att ange kommandoradsargument, en svarsfil eller båda.

Oracle DBCA - skapande av databas

När en databas skapas kan du komma åt den med en dedikerad klient som heter sqlplus. SQL*Plus är ett terminalklientprogram med vilket du kan komma åt Oracle Database.

MSSQL

SQL Server Management Studio (SSMS) är huvudverktyget för att administrera databasmotorn och skriva Transact-SQL-kod. SSMS är tillgängligt som en gratis nedladdning från Microsoft Download Center. Den senaste versionen kan användas med äldre versioner av databasmotorn.

Management Studio är en föredragen metod för att skapa en ny databas. För att skapa en databas i Microsoft SQL Server, anslut till datorn där Microsoft SQL Server är installerad med hjälp av ett administratörskonto.
Starta Microsoft SQL Server Management Studio och välj att skapa ett databasalternativ. Guideprocessen leder dig genom processen. Om du föredrar kommandoraden kan detta göras med CREATE DATABASE-syntaxen.

MySQL

För att komma åt din MySQL-databas använd mysql-klienten. Skapandet av databasen är så enkelt som SKAPA DATABAS .

PostgreSQL

PostgreSQL-databasen har möjlighet till flera "scheman" som fungerar på samma sätt som databaser i MySQL.

Scheman innehåller tabeller, index, etc, och kan nås samtidigt genom samma anslutning till databasen som innehåller dem. Åtkomstmetoder för PostgreSQL definieras i en fil:pg_hba.conf. Den kan placeras på olika platser. På Ubuntu 14.04 finns den i /etc/postgresql/9.3/main/pg_hba.conf, på Centos 7 å andra sidan finns den som standard i /var/lib/pgsql/data/pg_hba.conf.

Säkerhetskopieringsprocess

Oracle

Oracle har det mest komplexa, dedikerade inbyggda säkerhetskopieringsverktyget av alla fyra servrar som beskrivs här; det kallas Recovery Manager (RMAN).

RMAN låter dig köra sofistikerade säkerhetskopieringspolicyer och selektiva återställningar. Samma operationer kräver vanligtvis många manuella steg i andra RDBMS.

Vi kan ta säkerhetskopior på två sätt:

  • inaktivera databasen och kopiera fysiska filer (så kallad kall säkerhetskopiering)
  • använd RMAN och gör en säkerhetskopia utan att inaktivera databasen (hot backup)

För att göra en het backup, ställ in basen i ARCHIVELOG-läge. Detta kommer att berätta för Oracle att inte behålla kopian av redo-loggfiler som en arkivlogg.

MSSQL

I MS SQL-världen kan du använda de inbyggda T-SQL-kommandona för att säkerhetskopiera och återställa databaser. Det finns inget behov av att använda verktyg som mysqlhotcopy och mysqldump.

MS SQL Server erbjuder tre olika säkerhetskopieringsstrategier online:

  • Enkel återställningsmodell (ALTER DATABASE dbname SET RECOVERY SIMPLE)
  • Fullständig återställningsmodell (ALTER DATABASE dbname SET RECOVERY FULL)
  • Massloggad återställningsmodell (ALTER DATABASE dbname SET RECOVERY BULK_LOGGED)

Den rekommenderade modellen är full återställning om ingen dataförlust är acceptabel. Detta läge liknar MySQL-funktionen när den binära loggen är aktiverad. Du kan återställa databasen när som helst, men du bör regelbundet säkerhetskopiera transaktionsloggen och databasen.

Den bulkloggade modellen kan användas för stora bulkoperationer som att importera data eller skapa index på stora tabeller. Det är en mindre vanlig metod att köra en databas, speciellt produktion. Det stöder inte punkt-i-tidsåterställning så det används vanligtvis som en tillfällig lösning.

Simple-modellen är användbar när databasen sällan uppdateras eller för test- och utvecklingsändamål. I SIMPLE-läge klipps transaktionsloggen för databasen varje gång efter att transaktionen har slutförts. I de andra lägena trunkeras loggen via CHECKPOINT-satsen eller efter transaktionsbackupfilen. Om databasen skadas kan endast den senaste säkerhetskopian återställas och alla ändringar sedan denna säkerhetskopia går förlorade.

MySQL

Två mest populära säkerhetskopieringsverktyg är tillgängliga för MySQL och MariaDB, nämligen mysqldump logisk säkerhetskopiering och binär säkerhetskopiering Percona XtraBackup och MariaBackup (en gaffel av Percona XtraBackup). MySQL Enterprise-versionen erbjuder även mysqlbackup som liknar XtraBackup och MariaBackup heta säkerhetskopieringsverktyg.

PostgreSQL

De flesta DBMS tillhandahåller några inbyggda säkerhetskopieringsverktyg. PostgreSQL har pg_dump och pg_dumpall ur kartongen. Däremot kanske du vill använda några andra verktyg för dina produktionsdatabaser. Mer information finns i artikeln för de bästa säkerhetskopieringsverktygen för PostgreSQL.

Styra körning av frågor och stöd för samtidighet

Oracle

I Oracle är alla databasobjekt grupperade efter scheman. Scheman är en samling av databasobjekt och alla databasobjekt delas mellan alla scheman och användare. Det kan översättas till MySQL-databaser. Även om allt är delat kan varje användare begränsas till vissa scheman och tabeller via roller och behörigheter. Detta koncept är ganska likt MySQL-databaser. Hej

MSSQL

MS SQL Server organiserar alla objekt, såsom tabeller, vyer och procedurer, efter databasnamn. Användare tilldelas en inloggning, som ges åtkomst till den specifika databasen och dess objekt. I SQL Server har varje databas också en privat, odelad diskfil på servern.

MySQL

MySQL har bara MVCC-stöd i InnoDB. Det är en lagringsmotor och är som standard tillgänglig i MySQL. Den tillhandahåller också funktioner för ACID-klagomål som stöd för främmande nyckel och transaktionshantering. Som standard behandlas varje fråga som en separat transaktion, vilket är ett annat tillvägagångssätt än i Oracle DB.

PostgreSQL

Postgres motor utför samtidighetskontroll genom att använda en metod som kallas MVCC (Multiversion Concurrency Control). För varje användare som är ansluten till databasen ger Postgres-databasen en ögonblicksbild av databasen vid en viss instans. När databasen måste uppdatera ett objekt kommer den att lägga till den nyare versionen och peka på att den gamla versionen är föråldrad. Det tillåter databasen att spara overhead men kräver ett reglerat svep för att radera gamla, inaktuella data.

Säkerhet

Oracle

Säkerhetsfunktionerna är fantastiska, systemet tillhandahåller säkerhet i flera lager inklusive kontroller för att utvärdera risker, förhindra obehörig avslöjande av data, upptäcka och rapportera om databasaktiviteter och upprätthålla kontroller för dataåtkomst.

MSSQL

Säkerhetsfunktionerna är blygsamma, RDBMS erbjuder färre funktioner än Oracle men fortfarande mycket mer än databassystem med öppen källkod.

MySQL

MySQL implementerar säkerhet baserad på åtkomstkontrollistor (ACL) för alla anslutningar, frågor och andra operationer som en användare kan försöka utföra. Det finns också visst stöd för SSL-krypterade anslutningar mellan MySQL-klienter och servrar.

PostgreSQL

PostgreSQL har ROLLER och ärvda roller för att ställa in och underhålla behörigheter. PostgreSQL har inbyggt SSL-stöd för anslutningar för att kryptera klient/server-kommunikation. Den har också Row Level Security.
Utöver detta kommer PostgreSQL med en inbyggd förbättring som kallas SE-PostgreSQL som ger ytterligare åtkomstkontroller baserade på SELinux säkerhetspolicy. Mer information här.

Community Support

Oracle

Oracle-databasen, i likhet med MySQL, har en stor community, mestadels organiserad kring https://community.oracle.com och passionerade grupper på alla platser runt om i världen som till exempel https://poug.org/en/. Den betalda supporten ger dig tillgång till supportgruppen som tidigare kallades metalink, inte support.oracle.com.

MSSQL

Jämfört med andra databassystem har MSSQL förmodligen de minst organiserade samhällsgrupperna men fortfarande väldigt aktiva. Microsoft gör ett bra jobb med att marknadsföra sina produkter på universiteten. Detta ger unga utvecklare, devops och DBA:er enkel tillgång till tekniken (fria licenser) och allt nödvändigt material.

MySQL

MySQL har en stor grupp av bidragsgivare som, särskilt efter förvärvet av Oracle, huvudsakligen fokuserar på att underhålla befintliga funktioner med några nya funktioner som dyker upp då och då. Fördelen gentemot andra databaser med öppen källkod är ett mycket starkt ekosystem för extern leverantör. Företag som MariaDB och Percona erbjuder inte bara bra support utan bidrar också genom att lägga till företagsfunktioner i sina versioner med öppen källkod.

PostgreSQL

PostgreSQL har en mycket stark och aktiv community. Dess community förbättrar befintliga funktioner samtidigt som dess innovativa committers strävar efter att säkerställa att den förblir den mest avancerade databasen med nya funktioner och säkerhet, vilket begränsar avståndet mellan Oracle- och MSSQL-databaser. PostgreSQL är känt för att ha fler funktioner än andra RDBMS på marknaden.

Replikeringsalternativ

Oracle

Oracle erbjuder logisk och fysisk replikering genom en inbyggd Oracle Data Guard. Det är en företagsfunktion.
Data Guard är en Ship Redo / Apply Redo-teknik, "redo" är informationen som behövs för att återställa transaktioner.

En produktionsdatabas som kallas en primär databas sänder om till en eller flera repliker som kallas standby-databaser. När en infogning eller uppdatering görs i en tabell, fångas denna ändring av loggskrivaren till en arkivlogg och replikeras till standbysystemet.

Standby-databaser är i en kontinuerlig återställningsfas, verifiering och tillämpning av redo för att upprätthålla synkronisering med den primära databasen. En standby-databas synkroniseras också automatiskt om den tillfälligt kopplas från den primära databasen på grund av strömavbrott, nätverksproblem, etc.

För mer flexibla replikeringsalternativ som selektiv replikering med flera källor bör du överväga ett extra betalverktyg, Oracle Golden Gate.

MSSQL

Microsoft SQL Server tillhandahåller följande typer av replikering för användning i distribuerade applikationer:

  • Transaktionsreplikering
  • Sammanfoga replikering
  • Snapshot replikering

Den kan utökas avsevärt med Microsoft Integration Services, vilket ger dig möjlighet att anpassa replikeringsflödet direkt.

PostgreSQL

PostgreSQL har flera tillgängliga alternativ, alla med sina egna för- och nackdelar, beroende på vad som behövs genom replikering. Byggalternativen är baserade på Write Ahead Log. Filer skickas till en standbyserver där de läses och spelas upp igen, eller Streaming Replication, där en skrivskyddad standbyserver hämtar transaktionsloggar över en databasanslutning för att spela upp dem igen. I fallet med en mer sofistikerad replikeringsarkitektur skulle du förmodligen vilja kontrollera Slony (master till flera slavar) eller Bucardo (multimaster).

MySQL

MySQL-replikering är förmodligen den mest populära högtillgänglighetslösningen för MySQL,
och används ofta av de bästa webbtjänsterna.

Det är lätt att installera men löpande underhåll som mjukvaruuppgraderingar, schemaändringar, topologiändringar, failover och återställning har alltid varit knepigt.

MySQL-replikering kräver inga tredjepartsverktyg, både master-slave och multimaster kan göras direkt.

De senaste versionerna av MySQL har lagt till replikering av flera källor och globalt transaktions-ID, vilket gör det ännu mer tillförlitligt och enklare att underhålla.

Slutsats

Prioriterade databaser som Oracle och MSSQL erbjuder robusta hanteringssystem och bra support. Bland den långa listan med funktioner som stöds kan användare få den lugnande känslan av tillgång till företagssupport och betalda kunskapssystem.

Å andra sidan kommer kostnaden för licensen, inte så stor funktionslucka och företagsplugin, att göra dig ivrig att övergå till beslutet med öppen källkod enklare än någonsin.

Att använda fördefinierade processer och automatisering kan inte bara spara tid utan också skydda dig från vanliga misstag.

En hanteringsplattform som systematiskt tar itu med alla olika aspekter av databasens livscykel kommer att vara mer robust än att lappa ihop ett antal punktlösningar.


  1. Read Committed är ett måste för Postgres-kompatibla distribuerade SQL-databaser

  2. data som laddas från SQLitE databse sparas inte i modellklassen ArrayList android

  3. Hjälp oss att modernisera IDE i MS Access – din röst räknas!

  4. Docker - Hur kan man köra kommandot psql i postgres-behållaren?