sql >> Databáze >  >> RDS >> Mysql

Základní správa Srovnání mezi Oracle, MSSQL, MySQL, PostgreSQL

Zavedení DevOps v organizacích změnilo proces vývoje a také přineslo některé nové výzvy. Kromě toho mají vývojáři a týmy DevOps spolu s vlastními vybranými programovacími jazyky také své oblíbené databázové systémy.

Životní cyklus produktu se každým rokem zkracuje, takže vývojáři chtějí být schopni vyvíjet rychle s využitím technologií, které znají nejlépe.

Mít více databázových backendů RDBMS znamená, že se vaše organizace stane agilnější na straně vývoje, ale také to vyžaduje další znalosti pro operační týmy.

Rozšíření infrastruktury z jedné na mnoho databází znamená, že je musíte také monitorovat, spravovat a škálovat.

Protože každý backend úložiště vyniká v různých případech použití, znamená to také, že musíte pro každý z nich znovu vynalézt kolo.

Znalost podobností a klíčových rozdílů vám pomůže ponořit se do různých příchutí RDBMS.

V tomto článku projdeme následující body:

  • Stručný úvod k platformě
    • Oracle, MSSQL, MySQL, PostgreSQL
  • Podpora platformy
  • Proces instalace
  • Přístup k databázi
  • Proces zálohování
  • Řízení provádění dotazu
  • Zabezpečení
  • Možnosti replikace
  • Podpora komunity

Stručný úvod k platformě

PostgreSQL je pro mnohé uznávaná jako nejpokročilejší open source databáze na světě. Jedná se o plně open source databázový systém vydaný pod vlastní licencí PostgreSQL License, srovnatelnou s licencemi MIT nebo BSD. PostgreSQL komunita je aktivní a neustále vylepšuje stávající i nové funkce. Podle žebříčku oblíbenosti DB-engine byl PostgreSQL DBMS roku 2017 a 2018. Popularita DB-Engines ukazuje, že trend se v průběhu let nezměnil.

Zajímavým faktem je, že PostgreSQL nepodporoval SQL až do roku 1994. K dotazování na data z něj byl použit jazyk QUEL. Podpora SQL byla přidána později.

PostgreSQL má kromě primárního klíče, cizího klíče a atomicity mnoho pokročilých funkcí, které nabízejí jiné systémy správy podnikových databází, jako jsou pohledy, uložené procedury, indexy a spouštěče.

PostgreSQL mohou uživatelé rozšířit úpravou stávajících funkcí, přidáním nových funkcí a volně distribuovat, protože jde o open source. Běží na hlavních platformách, jako je UNIX, MacOS, Windows a Linux atd. Podporuje video, text, zvuk, obrázky, programovací rozhraní pro různé jazyky. Seznam podporovaných jazyků zahrnuje C/C++, Java, Python, Perl atd.

Oracle je jedním z největších dodavatelů RDBMS (systém pro správu relačních databází) ve světě IT. Je známá jako databáze Oracle, Oracle DB nebo Oracle prodávaná společností Oracle.

Oracle Database používá mnoho společností v IT průmyslu pro zpracování transakcí, obchodní analýzy, aplikace business intelligence atd.

Oracle má dlouhou a velmi zajímavou historii:

16. června 1977 vytvořili Larry Ellison, Bob Miner a Ed Oates v Santa Claře v Kalifornii Software Development Laboratories (SDL). V roce 1977 Oracle převzal svůj název z kódového označení projektu CIA a první komercializovaný Oracle RDBMS je světu ukázán v roce 1979.

Databáze Oracle je k dispozici v různých edicích, jako je edice Enterprise Edition Standard, Express Edition a Oracle Lite. Největším konkurentem pro databázi Oracle je Microsoft SQL server.

Microsoft SQL Server je velmi populární RDBMS s restriktivními licencemi a nízkými náklady na vlastnictví, pokud má databáze značnou velikost nebo je používána významným počtem klientů.

Je to jedna ze tří předních databázových technologií na trhu spolu s Oracle Database a IBM DB2.

Poskytuje velmi uživatelsky přívětivé rozhraní a snadno se učí, což vedlo k velké instalované uživatelské základně.

Stejně jako ostatní software RDBMS je Microsoft SQL Server postaven na SQL, což je standardizovaný programovací jazyk, který správci databází (DBA) a další IT profesionálové používají ke správě databází a dotazování na data, která obsahují. SQL Server je svázán s Transact-SQL (T-SQL), implementací SQL od společnosti Microsoft, která ke standardnímu jazyku přidává sadu proprietárních programovacích rozšíření.

MySQL

MySQL je open source systém správy relačních databází podporovaný společností Oracle založený na SQL.

MySQL, původně vytvořená švédskou společností MySQL AB, byla koupena Sun Microsystems v roce 2008 a poté Oracle, když koupil Sun v roce 2010.

Vývojáři mohou používat MySQL pod licencí GNU General Public License (GPL). Verze Enterprise přichází s podporou a dalšími funkcemi pro zabezpečení a vysokou dostupnost.

Je to druhá nejoblíbenější databáze na světě podle žebříčku db-engines a pravděpodobně nejmodernější databázový backend na planetě, protože provozuje většinu internetových služeb po celém světě. MySQL běží prakticky na všech platformách, včetně Linuxu, UNIXu a Windows.

MySQL je důležitou součástí open source podnikového zásobníku zvaného LAMP.

LAMP je platforma pro vývoj webových aplikací, která používá Linux jako operační systém, Apache jako webový server, MySQL jako systém správy relačních databází a PHP jako objektově orientovaný skriptovací jazyk.

Podpora platformy

Oracle

Nejpopulárnější verze Oracle DB, Oracle 12c, je skutečně podnikový systém RDBMS, který je podporován na různých operačních systémech a platformách. Oracle dominuje světu databází zčásti, protože běží na desítkách platforem, od mainframe, Sparc, Mac až po Intel. Seznam obsahuje následující kombinace OS a architektur:Linux na x86-64 (podporovány jsou pouze distribuce Red Hat Enterprise Linux, Oracle Linux a SUSE) Microsoft Windows na x86-64. Oracle Solaris na SPARC a x86-64. IBM AIX na systémech POWER. Linux na IBM zEnterprise Systems HP-UX na Itanium.

MSSQL

Jako produkt společnosti Microsoft byl SQL navržen tak, aby byl velmi kompatibilní s OS Windows. 16. listopadu 2016 Microsoft oznámil začátek nového příběhu:SQL Server je nyní podporován na Linuxu a Dockeru. Peklo zamrzne!

MySQL

MYSQL zajišťuje plynulejší provádění na všech platformách, jako je Microsoft, UNIX, Linux, Mac atd.

PostgreSQL

Obecně lze očekávat, že PostgreSQL bude fungovat na různých (i exotických) architekturách CPU a operačních systémech.

Zahrnuje architektury CPU jako x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, MIPSEL, M68K a PA-RISC. Často je možné stavět na nepodporovaném typu CPU konfigurací s --disable-spinlocks, ale výkon bude slabý.

Lze očekávat, že PostgreSQL bude fungovat na následujících operačních systémech:Linux (všechny nejnovější distribuce), Windows (Win2000 SP4 a novější), FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, HP/UX, IRIX, Solaris, Tru64 Unix, a UnixWare.

Proces instalace

Oracle

Ze všech čtyř prezentovaných databázových systémů má Oracle nejsložitější systémové požadavky, které s sebou nese složitý instalační proces. Na platformách Windows i Linux používá Oracle jako hlavní instalační proces vyhrazený nástroj Oracle Universal Installer (OUI). OUI se používá k instalaci softwaru Oracle Database. OUI je nástroj pro grafické uživatelské rozhraní, který vám umožňuje:

  • Zobrazení softwaru Oracle, který je nainstalován ve vašem počítači
  • Nainstalujte nový software Oracle Database
  • Smažte software Oracle, který již není potřeba.

Během procesu instalace spustí OUI nástroj Oracle Database Configuration Assistant (DBCA), který může nainstalovat předem vytvořenou výchozí databázi obsahující vzorová schémata nebo vás provede procesem vytváření a konfigurace přizpůsobené databáze.
 

Oracle OUI – instalační rozhraní

Pokud během instalace nevytvoříte databázi, můžete po instalaci softwaru vyvolat DBCA a vytvořit jednu nebo více databází.

MSSQL

Počínaje verzí SQL Server 2016 (13.x) je SQL Server k dispozici pouze jako 64bitová aplikace.

Instalace probíhá pomocí Průvodce instalací, příkazového řádku nebo pomocí nástroje sysprep.

Průvodce instalací spustí SQL Server Installation Center. Chcete-li vytvořit novou instalaci serveru SQL Server, vyberte možnost Instalace na levé straně a poté klikněte na možnost Nová samostatná instalace SQL Server nebo přidejte funkce ke stávající instalaci.

Instalace založená na Linuxu je velmi podobná metodě instalace open source databáze. Podporuje balení pro systémy založené na Debianu a RedHat. Kroky se skládají z konfigurace úložiště, instalace balíčku a konfigurace po instalaci, což je docela podobné MySQL. Celý proces je podrobně popsán v následujícím článku.

Průvodce instalací MSSQL



MySQL

Oracle poskytuje sadu binárních distribucí MySQL. Patří mezi ně generické binární distribuce ve formě komprimovaných souborů tar (soubory s příponou .tar.gz) pro řadu platforem a binární soubory v balíčcích specifických pro platformu. Na platformě Windows je proces instalace spuštěn standardním instalačním průvodcem přes GUI.

PostgreSQL

PostgreSQL je k dispozici ve většině distribucí Linuxu, takže je velmi pravděpodobné, že jej můžete nainstalovat pomocí jednoduchého příkazu yum nebo apt-get. Pro konfiguraci HA můžete použít nástroj ClusterControl s9s nebo GUI. Nástroje S9S vám mohou pomoci vytvořit cluster PostgreSQL pomocí jediného příkazu na řádku:

$ 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

Další informace najdete na tomto blogu.

Přístup k databázi a vytvoření DB

Oracle

Oracle odděluje proces binárního a vytváření databáze. Na rozdíl od jiných populárních databázových systémů zahrnuje vytváření databáze mnohem více kroků.

Nástroj Database Configuration Assistant (DBCA) je preferovaným způsobem vytvoření databáze, protože to dokáže mnohem automatizovanějším přístupem. DBCA lze spustit pomocí Oracle Universal Installer (OUI), v závislosti na typu instalace, který vyberete. DBCA můžete také spustit jako samostatný nástroj kdykoli po instalaci databáze Oracle.

DBCA můžete spustit v interaktivním režimu nebo v neinteraktivním/tichém režimu. Interaktivní režim poskytuje grafické rozhraní a řízený pracovní postup pro vytváření a konfiguraci databáze. Neinteraktivní/tichý režim umožňuje skriptovat vytváření databáze. DBCA můžete spustit v neinteraktivním/tichém režimu zadáním argumentů příkazového řádku, souboru odpovědí nebo obojího.

Oracle DBCA – vytvoření databáze

Když je databáze vytvořena, můžete k ní přistupovat pomocí vyhrazeného klienta s názvem sqlplus. SQL*Plus je program terminálového klienta, pomocí kterého můžete přistupovat k databázi Oracle.

MSSQL

SQL Server Management Studio (SSMS) je hlavním nástrojem pro správu databázového stroje a psaní kódu Transact-SQL. SSMS je k dispozici zdarma ke stažení z Microsoft Download Center. Nejnovější verzi lze použít se staršími verzemi Database Engine.

Management Studio je preferovanou metodou pro vytvoření nové databáze. Chcete-li vytvořit databázi v Microsoft SQL Server, připojte se k počítači, kde je nainstalován Microsoft SQL Server, pomocí účtu správce.
Spusťte Microsoft SQL Server Management Studio a zvolte možnost vytvoření databáze. Procesem průvodce vás provede procesem. Pokud dáváte přednost příkazovému řádku, lze to provést pomocí syntaxe CREATE DATABASE.

MySQL

Pro přístup k vaší databázi MySQL použijte klienta mysql. Vytvoření databáze je stejně jednoduché jako CREATE DATABASE .

PostgreSQL

Databáze PostgreSQL má možnost pro více „schémat“, která fungují podobně jako databáze v MySQL.

Schémata obsahují tabulky, indexy atd. a lze k nim přistupovat současně pomocí stejného připojení k databázi, která je obsahuje. Přístupové metody pro PostgreSQL jsou definovány v souboru:pg_hba.conf. Může být umístěn na různých místech. Na Ubuntu 14.04 je umístěn v /etc/postgresql/9.3/main/pg_hba.conf, na druhé straně na Centos 7 je umístěn ve výchozím nastavení v /var/lib/pgsql/data/pg_hba.conf.

Proces zálohování

Oracle

Oracle má nejkomplexnější, specializovaný vestavěný zálohovací nástroj ze všech čtyř zde popsaných serverů; nazývá se Recovery Manager (RMAN).

RMAN umožňuje spouštět sofistikované zásady zálohování a selektivní obnovy. Stejné operace obvykle vyžadují mnoho manuálních kroků v jiných RDBMS.

Zálohování můžeme provádět dvěma způsoby:

  • vypnutí databáze a kopírování fyzických souborů (tzv. studená záloha)
  • použijte RMAN a vytvořte zálohu bez deaktivace databáze (horká záloha)

Chcete-li provést horkou zálohu, nastavte základnu do režimu ARCHIVELOG. Tím sdělíte společnosti Oracle, aby neuchovávala kopii souborů redo log jako archivní záznamy.

MSSQL

Ve světě MS SQL můžete k zálohování a obnově databází použít vestavěné příkazy T-SQL. Není potřeba používat nástroje jako mysqlhotcopy a mysqldump.

MS SQL Server nabízí tři různé online strategie zálohování:

  • Simple Recovery Model (ALTER DATABASE dbname SET RECOVERY SIMPLE)
  • Model úplné obnovy (ALTER DATABASE název databáze SET RECOVERY FULL)
  • Hromadně protokolovaný model obnovení (ALTER DATABASE název databáze SET RECOVERY BULK_LOGGED)

Doporučeným modelem je úplné obnovení, pokud není přijatelná ztráta dat. Tento režim je podobný funkci MySQL, když je povolen binární protokol. Databázi můžete obnovit kdykoli, ale měli byste pravidelně zálohovat transakční protokol i databázi.

Model hromadného protokolování lze použít pro velké hromadné operace, jako je import dat nebo vytváření indexů na velkých tabulkách. Je to spíše méně běžná metoda provozování databáze, zejména produkční. Nepodporuje obnovu v určitém okamžiku, takže se obecně používá jako dočasné řešení.

Jednoduchý model je užitečný, když je databáze zřídka aktualizována nebo pro účely testování a vývoje. V SIMPLE režimu je transakční protokol databáze vyříznut pokaždé, když je transakce dokončena. V ostatních režimech je protokol zkrácen pomocí příkazu CHECKPOINT nebo po záložním souboru transakce. V případě poškození databáze lze obnovit pouze nejnovější zálohu a všechny změny od této zálohy budou ztraceny.

MySQL

Pro MySQL a MariaDB jsou k dispozici dva nejoblíbenější zálohovací nástroje, a to logické zálohování mysqldump a binární zálohování Percona XtraBackup a MariaBackup (fork Percona XtraBackup). Verze MySQL Enterprise nabízí také mysqlbackup, který je podobný nástrojům pro horké zálohy XtraBackup a MariaBackup.

PostgreSQL

Většina DBMS poskytuje některé vestavěné nástroje pro zálohování. PostgreSQL má pg_dump a pg_dumpall z krabice. Možná však budete chtít použít některé další nástroje pro vaše produkční databáze. Více informací naleznete v článku o nejlepších zálohovacích nástrojích pro PostgreSQL.

Řízení provádění dotazů a podpora souběžnosti

Oracle

V Oracle jsou všechny databázové objekty seskupeny podle schémat. Schémata jsou kolekce databázových objektů a všechny databázové objekty jsou sdíleny všemi schématy a uživateli. Lze jej přeložit do databází MySQL. I když je vše sdíleno, každý uživatel může být omezen na určitá schémata a tabulky prostřednictvím rolí a oprávnění. Tento koncept je velmi podobný MySQL databázím. Ahoj

MSSQL

MS SQL Server organizuje všechny objekty, jako jsou tabulky, pohledy a procedury, podle názvů databází. Uživatelům je přiřazeno přihlášení, které je oprávněno přistupovat ke konkrétní databázi a jejím objektům. V SQL Server má také každá databáze soukromý, nesdílený diskový soubor na serveru.

MySQL

MySQL má podporu MVCC pouze v InnoDB. Je to storage engine a standardně je dostupný v MySQL. Poskytuje také funkce pro stížnosti ACID, jako je podpora cizích klíčů a zpracování transakcí. Ve výchozím nastavení je každý dotaz považován za samostatnou transakci, což je jiný přístup než v Oracle DB.

PostgreSQL

Postgres engine provádí kontrolu souběžnosti pomocí metody zvané MVCC (Multiversion Concurrency Control). Pro každého uživatele připojeného k databázi poskytuje databáze Postgres snímek databáze v konkrétní instanci. Když databáze musí aktualizovat položku, přidá novější verzi a označí starou verzi jako zastaralou. Umožňuje databázi šetřit režijní náklady, ale vyžaduje regulované vymazání k odstranění starých, zastaralých dat.

Zabezpečení

Oracle

Bezpečnostní funkce jsou skvělé, systém poskytuje vícevrstvé zabezpečení včetně kontrol pro vyhodnocení rizik, zabránění neoprávněnému zveřejnění dat, detekci a hlášení databázových aktivit a vynucování kontrol přístupu k datům.

MSSQL

Bezpečnostní funkce jsou skromné, RDBMS nabízí méně funkcí než Oracle, ale stále mnohem více než Open Source databázové systémy.

MySQL

MySQL implementuje zabezpečení založené na seznamech řízení přístupu (ACL) pro všechna připojení, dotazy a další operace, které se uživatel může pokusit provést. Existuje také určitá podpora pro připojení šifrovaná SSL mezi klienty a servery MySQL.

PostgreSQL

PostgreSQL má ROLES a zděděné role pro nastavení a údržbu oprávnění. PostgreSQL má nativní podporu SSL pro připojení k šifrování komunikace klient/server. Má také zabezpečení na úrovni řádků.
Kromě toho přichází PostgreSQL s vestavěným vylepšením nazvaným SE-PostgreSQL, které poskytuje další řízení přístupu na základě bezpečnostní politiky SELinux. Více podrobností zde.

Podpora komunity

Oracle

Databáze Oracle, podobně jako MySQL, má velkou komunitu, většinou organizovanou kolem https://community.oracle.com a vášnivé skupiny na libovolných místech po celém světě, jako je například https://poug.org/en/. Placená podpora vám poskytuje přístup ke skupině podpory dříve známé jako metalink, nikoli support.oracle.com.

MSSQL

Ve srovnání s jinými databázovými systémy má MSSQL pravděpodobně nejméně organizované komunitní skupiny, ale stále velmi aktivní. Microsoft odvádí skvělou práci při propagaci svých produktů na univerzitách. To poskytuje mladým vývojářům, vývojářům a administrátorům snadný přístup k technologii (bezplatné licence) a veškerým potřebným materiálům.

MySQL

MySQL má velkou komunitu přispěvatelů, kteří se zejména po akvizici společností Oracle zaměřují hlavně na udržování stávajících funkcí a příležitostně se objevují některé nové. Výhodou oproti jiným open source databázím je velmi silný externí dodavatelský ekosystém. Společnosti jako MariaDB a Percona nejen nabízejí skvělou podporu, ale také přispívají přidáváním podnikových funkcí do svých verzí s otevřeným zdrojovým kódem.

PostgreSQL

PostgreSQL má velmi silnou a aktivní komunitu. Její komunita vylepšuje stávající funkce, zatímco její inovativní komandéři se snaží zajistit, aby zůstala nejpokročilejší databází s novými funkcemi a zabezpečením, což omezuje vzdálenost mezi databázemi Oracle a MSSQL. PostgreSQL je známý tím, že má více funkcí než ostatní RDBMS na trhu.

Možnosti replikace

Oracle

Oracle nabízí logickou a fyzickou replikaci prostřednictvím vestavěného Oracle Data Guard. Je to podniková funkce.
Data Guard je technologie Ship Redo / Apply Redo, "redo" jsou informace potřebné k obnovení transakcí.

Produkční databáze označovaná jako primární databáze všesměrově převádí do jedné nebo více replik označovaných jako záložní databáze. Po vložení nebo aktualizaci tabulky je tato změna zaznamenána zapisovačem protokolu do archivního protokolu a replikována do pohotovostního systému.

Pohotovostní databáze jsou v nepřetržité fázi obnovy, ověřování a opakování, aby byla zachována synchronizace s primární databází. Pohotovostní databáze se také automaticky znovu synchronizuje, pokud se dočasně odpojí od primární databáze kvůli výpadkům napájení, problémům se sítí atd.

Pro flexibilnější možnosti replikace, jako je vícezdrojová, selektivní replikace, byste měli zvážit další placený nástroj, Oracle Golden Gate.

MSSQL

Microsoft SQL Server poskytuje následující typy replikace pro použití v distribuovaných aplikacích:

  • Transakční replikace
  • Sloučit replikaci
  • Replikace snímku

Lze jej výrazně rozšířit pomocí služeb Microsoft Integration Services, což vám dává možnost přizpůsobit tok replikace ihned po vybalení.

PostgreSQL

PostgreSQL má k dispozici několik možností, z nichž každá má své výhody a nevýhody, v závislosti na tom, co je potřeba prostřednictvím replikace. Možnosti sestavení jsou založeny na protokolu Write Ahead. Soubory jsou odesílány na rezervní server, kde jsou čteny a přehrány, nebo do Streaming Replication, kde záložní server pouze pro čtení načítá transakční protokoly přes databázové připojení, aby je přehrál. V případě sofistikovanější replikační architektury byste pravděpodobně chtěli zkontrolovat Slony (master to multiple slave) nebo Bucardo (multimaster).

MySQL

Replikace MySQL je pravděpodobně nejoblíbenější vysoce dostupné řešení pro MySQL
a široce používané špičkovými webovými službami.

Je snadné jej nastavit, ale průběžná údržba, jako jsou aktualizace softwaru, změny schémat, změny topologie, převzetí služeb při selhání a obnova, byly vždy složité.

Replikace MySQL nevyžaduje žádné nástroje třetích stran, master-slave i multimaster lze provést ihned po vybalení.

Nejnovější verze MySQL přidaly vícezdrojovou replikaci a globální ID transakce, díky čemuž je ještě spolehlivější a snadněji se udržuje.

Závěr

Prioritní databáze jako Oracle a MSSQL nabízejí robustní systémy správy a jemnou podporu. Mezi dlouhým seznamem podporovaných funkcí mohou uživatelé získat uklidňující pocit přístupu k podnikové podpoře a placeným znalostním systémům.

Na druhou stranu, náklady na licenci, ne tak velká mezera ve funkcích a podnikové pluginy, vám zajistí, že budete chtít přejít k rozhodování o open source snadněji než kdy dříve.

Používání předdefinovaných procesů a automatizace vám může nejen ušetřit čas, ale také vás ochránit před běžnými chybami.

Platforma pro správu, která systematicky řeší všechny různé aspekty životního cyklu databáze, bude robustnější než spojování několika bodových řešení.


  1. PHP - Import CSV souboru do mysql databáze pomocí LOAD DATA INFILE

  2. V klauzuli ON CONFLICT použijte více konfliktů_cíl

  3. Získejte počet záznamů ovlivněných INSERT nebo UPDATE v PostgreSQL

  4. Jak nastavit, aby operátor SQLite LIKE rozlišoval malá a velká písmena