Introduktion till Azure Database for MySQL
Azure Database for MySQL kan distribueras som en flexibel server (förhandsversion) som värd för organisationens MySQL-databas i Azure. Det är en fullständigt hanterad databas som en tjänst som kan hantera verksamhetskritiska arbetsbelastningar med förutsägbar prestanda och dynamisk skalbarhet.
Som databasutvecklare med många års erfarenhet av att köra och hantera lokala MySQL-installationer vill du utforska hur Azure Database for MySQL stöder och skalar dess funktioner.
I den här lektionen ska du utforska alternativen prissättning, versionsstöd, replikering och skalning i Azure Database for PostgreSQL.
Förstå fördelarna med Azure Database for MySQL
Azure Database for MySQL etableras som en Azure Database for MySQL-server. Azure Database for MySQL-servern motsvarar en lokal MySQL-server och tillhandahåller en central punkt för att administrera flera MySQL-databaser.
Om du vill skapa en Azure Database for MySQL-databas måste du först etablera en Azure Database for MySQL-server. En Azure Database for MySQL-server är överordnad en eller flera databaser och tillhandahåller namnområdet för databaserna. Om du tar bort servern tar du bort alla databaser som den innehåller.
Vad tillhandahåller Azure Database for MySQL-servern?
Tjänsten Azure Database for MySQL omfattar hög tillgänglighet utan extra kostnad och skalbarhet efter behov. Betala endast för det du använder. Automatiska säkerhetskopieringar tillhandahålls med återställning till tidpunkt.
Servern ger anslutningssäkerhet för att framtvinga brandväggsregler och kan även kräva SSL-anslutningar. Med många serverparametrar kan du konfigurera serverinställningar som låslägen, maximalt antal anslutningar och tidsgränser. Ändringar av parametrar som har markerats som dynamiska börjar gälla omedelbart. Statiska parametrar kräver en omstart av servern. Du startar om servern med knappen Starta om på sidan Översikt i portalen.
Azure Database for MySQL-servrar innehåller övervakningsfunktioner för att lägga till aviseringar och för att visa mått och loggar.
Prisnivåer
Prisnivåer möjliggör ett brett utbud av prestanda och kapacitet från en till 64 virtuella kärnor och från 5 GB till 4 TB lagringsutrymme. Den grundläggande prisnivån är utformad för lätta beräkningsarbetsbelastningar och stöder upp till två virtuella kärnor med 2 GB minne per kärna. Prisnivån för generell användning passar de flesta affärsarbetsbelastningar och stöder från två till 64 virtuella kärnor med 5 GB minne per kärna. Den minnesoptimerade prisnivån stöder två till 32 virtuella kärnor, har 10 GB minne per virtuell kärna och är avsedd för arbetsbelastningar med höga prestanda, inklusive dataanalys i realtid. Även om du kan växla mellan prisnivåer för generell användning och minnesoptimerad och ändra antalet virtuella kärnor eller lagringsutrymme inom några sekunder kan du inte flytta till eller från den grundläggande prisnivån.
Det finns anslutningsgränser baserat på prisnivåer och antalet virtuella kärnor. Mer information finns i Begränsningar i Azure Database for MySQL .
Versionshantering och uppgraderingar
Azure Database for MySQL stöder version 5.6 (med felkorrigering version 5.6.42), 5.7 (med felkorrigeringsversion 5.7.24) och 8.0 (med felkorrigeringsversion 8.0.15).
Kommentar
En gateway omdirigerar anslutningar till serverinstanser. MySQL-klienter visar versionen av gatewayen i stället för serverinstansens version. Om du vill visa versionen av serverinstansen använder du SELECT VERSION(); Kommandot.
Felkorrigeringsversioner tillämpas automatiskt, men versionsuppgraderingar stöds inte. Om du vill uppgradera från en version till en annan bör du utföra en dump och återställning.
Skalbarhet
Som nämnts kan du inte ändra till eller från den grundläggande prisnivån. Du kan dock ändra antalet virtuella kärnor, maskinvarugenereringen, lagringsvolymen och kvarhållningsperioden för säkerhetskopior. Du kan också växla mellan prisnivåerna generell användning och minnesoptimerad.
Observera att lagringen bara ökar, inte minskar och kan ställas in på automatisk ökning. Om automatisk ökning är aktiverat växer lagringen med 5 GB när tillgängligt lagringsutrymme är mindre än 1 GB eller 10 % av lagringsvolymen (beroende på vilket som är större) för servrar med mindre än 100 GB lagringsutrymme. För servrar med mer än 100 GB ökar lagringen med 5 % när tillgängligt lagringsutrymme är mindre än 5 %.
Hög tillgänglighet
Azure Database for MySQL innehåller ett serviceavtal på ekonomisk nivå (SLA) för tillgänglighet på 99,99 %. Om det uppstår ett maskinvarufel eller en tjänstdistribution skapas en ny nod automatiskt och lagringen kopplas till den här noden. Redundansväxlingen slutförs inom tiotals sekunder.
Om en Azure Database for MySQL-serverinstans skalas upp eller skalas ned sker en liknande process där datalagringen kopplas till den nya instansen. Om en redundansväxling sker sker en uppskalning eller nedskalning, eller om internettrafiken mellan klienten och Azure avbryts, kan ett tillfälligt anslutningsfel inträffa på klienten. Det är viktigt att ha logik för återförsök i program. Vid redundans dirigerar en gateway trafik till den nya noden utan någon konfiguration som krävs på klienten.
Information om hur du hanterar tillfälliga fel finns i Hantera tillfälliga anslutningsfel för Azure Database for MySQL.
Replikera data i Azure Database for MySQL
Datareplikering
Datareplikering använder den inbyggda replikeringsfunktionen i MySQL för att replikera data från en extern MySQL-server till Azure Database for MySQL. Detta är användbart om du vill etablera en hybridmiljö med en befintlig lokal MySQL-instans och en Azure-baserad replik. Det här scenariot ger lokala data till användare i ett globalt distribuerat system. Du kan också använda Data-in Replication för att replikera data från en virtuell dator eller En MySQL-databastjänst som hanteras av en annan molnleverantör.
Överväganden för datareplikering
Här följer några faktorer att tänka på för datareplikering:
- Huvud- och replikservrarna måste ha samma version – och minst version 5.6.
- Originalet och repliken bör använda InnoDB-motorn.
- Varje tabell måste ha en primärnyckel.
- Azure Database for MySQL-servern måste ha prisnivån Generell användning eller Minnesoptimerad .
- Du bör ha behörighet att skapa användare och konfigurera binär loggning på huvudservern.
- Mysql-systemdatabasen replikeras inte. Konton och behörigheter replikeras inte från huvudservern till repliken och bör skapas manuellt.
Steg för att konfigurera datareplikering
Det finns ett antal steg för att konfigurera datareplikering:
- Skapa en Azure Database for MySQL-server som ska användas som värd för repliken och skapa nödvändiga användarkonton och behörigheter.
- Konfigurera replikering på huvudservern.
- Dumpa och återställa huvudservern.
- Använd lagrade procedurer för datareplikering för att konfigurera målservern.
Mer information finns i Konfigurera Azure Database for MySQL-datareplikering .
Skrivskyddade repliker
Läsrepliker använder inbyggd MySQL-replikeringsteknik för att skapa asynkrona replikinstanser av Azure Database for MySQL-servrar. Replikservrarna är skrivskyddade och det kan finnas upp till fem repliker för varje huvudserver. För varje läsreplik debiteras månadskostnaden baserat på de virtuella kärnor och lagring som används.
Används för läsrepliker
Rapporteringsservrar
Genom att skapa en skrivskyddad replik av huvudservern dirigerar du alla rapporterings-, BI- och analytiska arbetsbelastningar till repliken. Detta tar bort arbetsbelastningen från huvudservern och minskar konflikterna medan huvudservern kör sina skrivintensiva arbetsbelastningar.
Föra data nära användarna
Du skapar repliker mellan regioner för att föra data nära användarna och förbättra läshastigheten. Repliker mellan regioner kan finnas i en universell replikregion eller i den parkopplade regionen på huvudservern. De tillgängliga regionerna visas när du skapar en replikserver.
Konfigurera skrivskyddade repliker
Du konfigurerar en läsreplik i Azure-portalen:
Sedan anger du namnet och regionen för repliken:
Kommentar
Läsrepliker är inte tillgängliga på den grundläggande prisnivån.
Mer information om läsrepliker finns i Läsa repliker i Azure Database for MySQL.
Hantering och övervakning
Azure Database for MySQL har en mängd olika övervakningsverktyg som hjälper dig att optimera servern, meddelas om händelser och proaktivt svara på mått. Du kan också använda välbekanta MySQL-administrationsverktyg, till exempel de senaste versionerna av MySQL Workbench, PHPMyAdmin och Navicat, för att hantera och övervaka Azure Database for MySQL-servrar:
Azure-verktyg för övervakning av Azure Database for MySQL
De verktyg som är tillgängliga i Azure-portalen för hantering och övervakning av Azure Database for MySQL omfattar följande:
Azure-mått. Mått ger numeriska data varje minut och lagras i 30 dagar. Det finns en mängd olika mått som du använder för att övervaka servern– du kan också konfigurera aviseringar för att svara på mått.
Server- och granskningsloggar. Du aktiverar serverloggar för att övervaka långsamma frågor och tillhandahålla granskningsloggning för servern. Serverloggar är tillgängliga utanför SQL Database for MySQL via Azure Diagnostic Logs.
Mer information finns i Långsamma frågeloggar i Azure Database for MySQL . Granskningsloggar är en förhandsgranskningsfunktion som tillhandahåller granskningsloggning för att spåra databasaktivitet. Om du vill aktivera granskningsloggning anger du parametern audit_log_enabled till PÅ. Mer information om granskningsloggar finns i Granskningsloggar i Azure Database for MySQL.
Query Store. Detta används för att spåra serverns prestanda över tid och ge felsökningsinformation. Query Store behåller frågehistorik och körningsstatistik så att du kan identifiera resursintensiva eller tidskrävande frågor. Om du vill aktivera Query Store anger du parametern query_store_capture_mode server till ALL:
Om du vill visa frågelagringsdata om frågor kör du följande fråga:
SELECT * FROM mysql.query_store;
Om du vill visa data om väntestatistik kör du följande fråga:
SELECT * FROM mysql.query_store_wait_stats;
Kommentar
Query Store är en förhandsversionsfunktion och är inte tillgänglig på den grundläggande prisnivån.
Mer information om Query Store finns i Övervaka Azure Database for MySQL-prestanda med Query Store.
Query Performance Insight. Query Performance Insight visar data från Query Store som visualiseringar så att du kan identifiera frågor som påverkar prestanda. Query Performance Insight finns i avsnittet Intelligenta prestanda i Azure Database for MySQL i Azure-portalen.
Kommentar
Query Performance Insight är en förhandsversionsfunktion och är inte tillgänglig på den grundläggande prisnivån.
Mer information om Query Performance Insight finns i Query Performance Insight i Azure Database for MySQL.
Prestandarekommendationer. Prestanda Rekommendationer använder data från Query Store för att analysera arbetsbelastningar och kombinerar detta med databasegenskaper för att föreslå nya index för att förbättra prestanda. Prestanda Rekommendationer finns i avsnittet Intelligenta prestanda i Azure Database for MySQL i Azure-portalen.
Kommentar
Prestanda Rekommendationer är en förhandsversionsfunktion och är inte tillgänglig på den grundläggande prisnivån.
Mer information om prestanda Rekommendationer finns i Prestanda Rekommendationer i Azure Database for MySQL.
Klientanslutning
MySQL-drivrutiner
Azure Database for MySQL använder MySQL Community Edition och är kompatibelt med en mängd olika drivrutiner – den stöder en mängd olika programmeringsspråk. Anslut ionssträngar finns i Azure-portalen:
Mer information om MySQL-drivrutiner finns i MySQL-drivrutiner och hanteringsverktyg som är kompatibla med Azure Database for MySQL
Konfigurera brandväggen
Det enklaste sättet att konfigurera brandväggen är att använda Anslut ion Security-inställningarna för din tjänst i Azure-portalen. Lägg till en regel för varje klient-IP-adressintervall. Du kan också använda den här sidan för att framtvinga SSL-anslutningar till din tjänst.
Du klickar på Lägg till klient-IP i verktygsfältet för att lägga till IP-adressen för din stationära dator.
Om du har konfigurerat skrivskyddade repliker måste du lägga till en brandväggsregel till var och en för att göra dem tillgängliga för klienter.
Tillfälliga anslutningsfel
När du ansluter till en databas via Internet är tillfälliga anslutningsfel oundvikliga och bör hanteras av klientprogram.
Information om tillfälliga anslutningsfel finns i Hantera tillfälliga anslutningsfel för Azure Database for MySQL.
MySQL-funktioner som inte stöds i Azure Database for MySQL
De flesta funktioner i MySQL är tillgängliga i Azure Database for MySQL, men vissa stöds inte. Du bör granska de här funktionerna för att säkerställa att du minimerar eventuella problem vid migrering.
Lagringsmotorer
Azure Database for MySQL stöder InnoDB- och MEMORY-lagringsmotorerna. InnoDB är standardlagringsmotorn för MySQL, vilket ger en balans mellan höga prestanda och hög tillförlitlighet. Alla nya tabeller i MySQL använder InnoDB-lagringsmotorn om inget annat anges.
Mer information om InnoDB-lagringsmotorn finns i Introduktion till InnoDB.
Minneslagringsmotorn är tillgänglig för att lagra data i minnet. Dessa data riskerar att drabbas av någon form av krasch eller avbrott. Minneslagringsmotorn bör endast användas som ett tillfälligt lagringslager med höga prestanda.
Mer information om minneslagringsmotornfinns i Minneslagringsmotorn.
MyISAM-, BLACKHOLE-, ARCHIVE- och FEDERATED-lagringsmotorer stöds inte i Azure Database for MySQL. MyISAM-data ska konverteras till InnoDB-lagringsmotorn. BLACKHOLE-, ARCHIVE- och FEDERATED-lagringsmotorer har specialistroller och används inte som typiska datalager.
Behörigheter och roller
DBA-rollen exponeras inte eftersom många serverinställningar och parametrar kan bryta mot transaktionsregler och försämra prestanda. Av liknande skäl är SUPER-privilegiet begränsat, liksom DEFINER-satsen som använder SUPER-privilegiet .
Återställning
Två återställningsfunktioner fungerar annorlunda i Azure Database for MySQL:
- Återställning till tidpunkt skapar en ny server med en identisk konfiguration till den server som den baseras på.
- Du kan inte återställa en borttagen server.