Planera, distribuera och verifiera Azure SQL
När du har valt en arbetsbelastning som antingen ska migreras till eller skapas i Azure SQL måste du planera distributionen, distribuera därefter och kontrollera att distributionen lyckades. I den här lektionen får du lära dig olika metoder för varje steg i processen.
Planering av fördistribution
Innan du börjar distribuera saker i Azure är det viktigt att förstå dina krav och hur de mappar till erbjudanden i Azure SQL. Skapa en plan med hjälp av det du har lärt dig i introduktionsmodulen för Azure SQL. Besvara följande frågor:
- Distributionsmetod: Azure Portal eller kommandoradsgränssnitt?
- Distributionsalternativ: Virtuell dator, databas, elastisk pool, hanterad instans eller instanspool?
- Inköpsmodell (endast Azure SQL Database): DTU eller virtuell kärna?
- Tjänstnivå: Generell användning, Affärskritisk eller Hyperskala?
- Maskinvara: Gen5 eller något nytt?
- Storlek: Antal virtuella kärnor och maximal datastorlek?
Innan du besvarar de föregående frågorna kanske du också behöver välja en arbetsbelastning som antingen ska migreras till Azure SQL eller vara född i molnet. Om du migrerar finns det många verktyg och resurser du kan använda för att planera, utvärdera, migrera och optimera dina databaser och program. Vi tillhandahåller resurser i slutet av den här modulen.
Resursgränser
I introduktionsmodulen för Azure SQL beskrivs begränsningar, priser och funktioner, till exempel IOPS eller minnesintern OLTP. Det finns andra resursgränser som påverkas av ditt val av Azure SQL Managed Instance, Azure SQL Database eller alternativ i dessa alternativ:
- Minne
- Maximal loggstorlek
- Transaktionsloggfrekvens
- Data-IOPS
- Storlek på tempdb
- Maximalt antal samtidiga arbetare
- Kvarhållningsperiod för säkerhetskopior
Gränserna för Azure SQL Managed Instance och Azure SQL Database beror på ditt val av köpmodell, tjänstnivå och antal virtuella kärnor eller endast DTU i Azure SQL Database.
Azure SQL Managed Instance och SQL Database är PaaS-erbjudanden (Platform as a Service). Att begränsa dessa val bör inte hämma din möjlighet att fullt ut använda en SQL Server-hanterad tjänst.
Inom en Generell användning Azure SQL Database-instans påverkar ditt val av etablerad eller serverlös beräkning även dessa gränser. Innan du distribuerar granskar du vad som ingår i den planerade distributionen för att se till att du börjar med det du behöver.
Azure SQL-resurser har övergripande resursgränser per prenumeration och per region. Om du behöver öka gränserna kan du begära en kvotökning i Azure Portal.
Distribution
När du har slutfört fördistributionsplaneringen är det dags att omsätta planen i praktiken. I det här steget distribuerar du Azure SQL med hjälp av Azure Portal eller kommandoraden, fastställer nätverkskonfigurationen och upprättar en första anslutning.
För Azure SQL Database och Azure SQL Managed Instance finns det i princip sex fönster i Azure Portal att fylla i under en distribution.
Server
När du skapar en hanterad Azure SQL-instans anger du servernamnet på samma sätt som i SQL Server. För databaser och elastiska pooler krävs en Azure SQL Database-server. En Azure SQL Database-server är en logisk server som fungerar som en central administrativ plats för en enskild databas eller pooldatabas. Den innehåller inloggningar, brandväggsregler, granskningsregler, principer för hotidentifiering och redundansgrupper. Du lär dig mer om dessa element senare.
Den här logiska servern exponerar inte någon åtkomst på instansnivå eller funktioner som med Azure SQL Managed Instance. När det gäller Azure SQL Database-servrar måste servernamnet vara unikt i hela Azure.
Beräkning och lagring
I den här utbildningsvägens föregående modul lärde du dig om alternativ och rekommendationer för beräkning och lagring, inklusive tjänstnivåer, inköpsmodeller och maskinvarugenerationer. Du måste välja önskad konfiguration under distributionen. Du måste också bestämma antalet virtuella kärnor och maximal datastorlek.
Om du migrerar använder du vanligtvis en storlek som liknar den du använder lokalt. Du kan också använda verktyg som SKU-rekommendationer för Data Migration Assistant för att uppskatta antalet virtuella kärnor och maximal datastorlek baserat på din aktuella arbetsbelastning.
Maxstorleken för data är inte nödvändigtvis storleken på dina data i dag. Det är den maximala mängden datautrymme som kan allokeras för din databas. Det hjälper dig också att förstå allokeringen av loggutrymme, som skalar med maximal datastorlek.
Nätverkskonfiguration
Azure SQL Database och Azure SQL Managed Instance har olika nätverksalternativ. När du distribuerar en Azure SQL Database är den aktuella standardinställningen Ingen åtkomst.
Du kan välja en offentlig slutpunkt eller en privat slutpunkt. I övningen som följer den här lektionen använder du den offentliga slutpunkten och anger alternativet Tillåt Azure-tjänster och resurser att komma åt den här serveralternativet till Ja. Andra Azure-tjänster kan sedan komma åt databasen, till exempel Azure Data Factory eller Azure Virtual Machines. Du kan också välja Lägg till aktuell klient-IP-adress om du vill kunna ansluta från klientdatorns IP-adress som du använde för att distribuera Azure SQL Database.
Med Azure SQL Managed Instance distribuerar du i ett virtuellt Azure-nätverk och ett undernät som är dedikerat till hanterade instanser, vilket gör att du kan ha en säker, privat IP-adress. Azure SQL Managed Instance kan ansluta ett lokalt nätverk till en hanterad instans, ansluta en hanterad instans till en länkad server eller annat lokalt datalager och ansluta en hanterad instans till andra resurser.
Du kan också aktivera en offentlig slutpunkt så att du kan ansluta till en hanterad instans från internet utan något virtuellt privat nätverk (VPN). Den här åtkomsten är inaktiverad som standard.
Data source
I Azure SQL Database kan du välja AdventureWorksLT
databasen som exempel vid distribution i Azure Portal. I Azure SQL Managed Instance distribuerar du först instansen och sedan databaser i den. Du kan inte ha exempeldatabasen vid distributionen, som liknar SQL Server. Du kan lära dig mer om AdventureWorks
exempeldatabaserna på GitHub.
Du kan också distribuera en tom databas eller skapa en databas baserat på återställning av en georeplikerad säkerhetskopia.
Databassorteringar
Sorteringar i SQL Server och Azure SQL anger för databasmotorn hur vissa tecken och språk ska hanteras. En sortering innehåller sorteringsregler, skiftläges- och accentkänslighetsegenskaper för dina data.
När du skapar en ny SQL-databas eller sql-hanterad instans tar du hänsyn till språkkraven för data. Sorteringsuppsättningen påverkar egenskaperna för många åtgärder i databasen. I SQL Server-boxprodukten avgör operativsystemets nationella inställningar vanligtvis standardsortering.
I Azure SQL Managed Instance anger du serversortering när instansen skapas. Du kan inte ändra det senare. Serversortering anger standardvärdet för alla databaser i den sql-hanterade instansen, men du kan ändra sorteringen på databas- och kolumnnivå.
I Azure SQL Database kan du inte ange serversorteringen. Den anges som standard och vanligaste sortering av SQL_Latin1_General_CP1_CI_AS
, men du kan ange databassortering. Så här delar du upp värdet i segment:
-
SQL
innebär att det är en SQL Server-sortering, till skillnad från en Windows- eller binär sortering. -
Latin1_General
anger det alfabet eller språk som ska användas vid sortering. -
CP1
refererar till teckentabellen som sorteringen använder. -
CI
innebär att den är skiftlägeskänslig.CS
innebär skiftlägeskänsligt. -
AS
innebär att den är accentkänslig.AI
betyder dekorfärgsokänsligt.
Det finns även fler alternativ. Några exempel är teckenbredd och UTF-8-kodning. Mer information om vad du kan och inte kan göra med Azure SQL finns i dokumentationen.
Anmäl dig för Microsoft Defender för molnet
När du distribuerar Azure SQL Database i Azure Portal uppmanas du att aktivera Microsoft Defender för molnet i en kostnadsfri utvärderingsversion. Välj Starta kostnadsfri utvärderingsversion. Efter den kostnadsfria utvärderingsversionen debiteras Defender för molnet enligt prissättningen för Microsoft Defender för molnet standardnivå.
När du har aktiverat den får du funktioner som är relaterade till att identifiera och minimera potentiella databassårbarheter och hotidentifiering. Du kan lära dig mer om de här funktionerna i nästa säkerhetsmodul för den här utbildningsvägen.
I Azure SQL Managed Instance kan du aktivera Microsoft Defender för molnet på instansen efter distributionen.
Granska dina val
I fönstret Granska och skapa granskar du dina distributionsval och Villkoren för Azure Marketplace.
Dricks
Du har också alternativet Ladda ned en mall för automatisering , som tillhandahåller en Azure Resource Manager-mall (ARM-mall) för konfigurerbara, repeterbara distributioner. Den här enheten omfattar inte ARM-mallar. Om du är intresserad kan du läsa mer om mallspecifikationer.
Viktig implementeringsinformation om distribution
Även om Azure tar hand om distributionen åt dig finns det viss information om distributionsimplementering som du bör känna till. Alla tjänster bygger på Azure Service Fabric som utgör stommen i Azure. Genom att förstå serverdelen av hur vissa av dessa tjänster distribueras och skalas i Azure Service Fabric kan du förstå olika beteenden som du kan se.
Azure SQL Managed Instance
I bakgrunden distribuerar Azure en dedikerad ring för Azure SQL Managed Instance (kallas ibland ett virtuellt kluster) för din tjänst. Den här arkitekturen hjälper till att ge stöd för säkerhet och inbyggt virtuellt nätverk.
Arkitekturen innebär dock att distributions- och skalningsåtgärderna kan ta längre tid. När du till exempel skalar upp eller ned distribuerar Azure ett nytt virtuellt kluster åt dig och fyller det med dina data. Du kan tänka dig att varje instans körs på en enskild virtuell dator.
Azure SQL-instanspooler introducerades för att hjälpa till med den långa distributionstiden. Du kan distribuera en pool med dedikerade resurser i förväg. Det går snabbare att distribuera till en pool eller att skala om i en pool än för traditionella distributioner. Du får också en högre förpackningstäthet eftersom du kan distribuera flera instanser på en enda virtuell dator.
Azure SQL Database
Azure SQL Database körs på en logisk databasserver. I de flesta fall är en dedikerad SQL Server-instans värd för SQL-databasen, men du behöver inte bekymra dig om att hantera instansen.
Den logiska databasservern ger dig något att ansluta till. Du kan också gruppera och hantera vissa behörigheter och konfigurationer tillsammans. Inom varje logisk databasserver finns en logisk primär databas som kan tillhandahålla diagnostik på instansnivå.
Azure SQL Database – Hyperskala
Hyperskala-nivån i Azure SQL Database, som inte är tillgänglig i Azure SQL Managed Instance, har en unik arkitektur för Azure SQL. Azure SQL-teamet har omarbetat Hyperskala för molnet. Den här arkitekturen innehåller ett cachelagringssystem för flera skikt som kan hjälpa till med både hastighet och skalning. Skalning och andra åtgärder blir inte längre relaterade till datastorleken och kan slutföras i konstant tid, bara några minuter. Användningen av fjärrlagring möjliggör även säkerhetskopiering av ögonblicksbilder.
I en efterföljande modul i utbildningsvägen grunderna i Azure SQL lär du dig mer om arkitekturen och hur den påverkar prestanda och tillgänglighet. Ett övervägande under distributionsfasen är att när du har flyttat en databas till Hyperskala-nivån kan du inte gå tillbaka till nivån Generell användning eller Affärskritisk.
Resursstyrning
När du ökar eller minskar resurserna på en tjänstnivå kan gränserna för dimensioner som CPU, lagring och minne ändras upp till ett visst tröskelvärde. Styrningen i Azure SQL är mångfasetterad, men det är i huvudsak följande tre tekniker som används för att styra din användning av resurser i Azure SQL:
-
Med Windows-jobbobjekt kan en grupp processer hanteras och styras som en enhet. Jobbobjekt används till att styra filens dedikerade virtuella minne, tak för arbetsminne, CPU-tillhörighet och hastighetstak. Du kan se vilka gränser som gäller i den dynamiska hanteringsvyn
sys.dm_os_job_object
. - Resource Governor är en SQL Server-funktion som hjälper användare och i det här fallet Azure att styra resurser som CPU, fysisk I/O och minne. Med Azure SQL Managed Instance kan du också använda användardefinierade arbetsbelastningsgrupper och pooler för Resource Governor.
- Hanteraren för filserverresurser är tillgängligt i Windows Server. Den styr filkatalogkvoter som används för att hantera maximal datastorlek.
Andra implementeringar för att styra transaktionsloggfrekvensen är inbyggda i databasmotorn via styrning av transaktionsloggfrekvens. Den här processen begränsar höga inmatningsfrekvenser för arbetsbelastningar som BULK INSERT
, SELECT INTO
och skapande av index. De spåras och tillämpas på den underliggande nivån. De skalas för närvarande linjärt inom en tjänstnivå.
Verifiering
När du har slutfört distributionen är det dags att verifiera distributionen. I det här steget kontrollerar du vanligtvis resultatet i Azure Portal eller Azure CLI, kör några frågor som verifierar distributionskonfigurationen och justerar efter behov.
För Azure SQL Managed Instance och Azure SQL Database kan du börja med att kontrollera status för databasen eller instansen i Azure-portalen eller Azure CLI. Därefter kan du granska distributionsinformationen och aktivitetsloggen för att säkerställa att det inte finns några fel eller aktiva problem.
För Azure SQL Managed Instance kan du kontrollera felloggen, vilket är vanligt i SQL Server lokalt eller på en virtuell Azure-dator. Den här funktionen är inte tillgänglig i Azure SQL Database.
Slutligen skulle du förmodligen bekräfta att nätverket är korrekt konfigurerat, hämta servernamnet och ansluta i ett verktyg som SQL Server Management Studio eller Azure Data Studio. Du kan köra följande frågor för att få bättre förståelse för vad du har distribuerat och kontrollera att det har distribuerats korrekt:
SELECT @@VERSION
SELECT * FROM sys.databases
SELECT * FROM sys.objects
SELECT * FROM sys.dm_os_schedulers
SELECT * FROM sys.dm_os_sys_info
SELECT * FROM sys.dm_os_process_memory --Not supported in Azure SQL Database
SELECT * FROM sys.dm_exec_requests
SELECT SERVERPROPERTY('EngineEdition')
SELECT * FROM sys.dm_user_db_resource_governance -- Available only in Azure SQL Database and SQL Managed Instance
SELECT * FROM sys.dm_instance_resource_governance -- Available only in Azure SQL Managed Instance
SELECT * FROM sys.dm_os_job_object -- Available only in Azure SQL Database and SQL Managed Instance
En fråga som rör os-processminnet stöds inte i Azure SQL Database, även om den kan verka fungera. Den här frågan stöds inte eftersom vissa saker som rör operativsystemet är abstrakta med Azure SQL Database, så att du kan fokusera på databasen.
De tre sista frågorna är endast tillgängliga i Azure SQL Database och Azure SQL Managed Instance. Den första, sys.dm_user_db_resource_governance
, returnerar konfigurations- och kapacitetsinställningarna som används av resursstyrningsmekanismer i den aktuella databasen eller den elastiska poolen. Du kan få liknande information för en hanterad Azure SQL-instans med den andra, sys.dm_instance_resource_governance
. Den tredje, sys.dm_os_job_object
, returnerar en enda rad som beskriver konfigurationen av jobbobjektet som hanterar SQL Server-process- och resursförbrukningsstatistiken.
De kommande två övningarna går igenom all information som ingår i distributionen av Azure SQL Database eller Azure SQL Managed Instance. Använd din Azure-prenumeration för att distribuera Azure SQL Database. Efter distributionen använder du olika verifieringsfrågor och förköra SQL-notebook-filer i Azure Data Studio för att jämföra SQL Database, SQL Managed Instance och SQL Server 2019.