SQL LiteSpeed 2.6 - snabb SQL Server Backup
LiteSpeed 2.6 – SQL Server Backup blev helt plötsligt snabbare
av Brad M. McGee
När jag började min karriär som DBA så var de databaser jag hanterade då inte så stora, max 10 MB. Men jag hoppades alltid att jag skulle få chansen att arbeta med lite större SQL Server databaser någon gång i framtiden, precis som en bergsbestigare alltid letar efter högre berg att klättra i. Att få hantera större SQL Server databaser var en utmaning för mig.
Och jag fick äntligen min chans. Idag hanterar jag flera GB stora databaser, några är så stora som 60 GB. Trots att det finns DBAs som hanterar mycket större databaser än så, så är inte 60 GB någonting av fnysa åt.
Så, har min senaste utmaning med att få hantera GB stora databaser släckt mina behov, eller har jag möjligen fått blodad tand till att få hålla på med ännu större databaser?
Nåväl, jag har mixade känslor angående det. Å ena sidan så har jag siktet inställt på att få hantera TB databaser någon dag. Men å andra sidan så kan det vara en rejält slitgöra att hantera väldigt stora databaser, speciellt när det gäller att köra backups och lagra dem. Faktum är att det stora problemet alltid har varit att hitta utrymme för att kunna lagra alla backups. Jag söker ideligen efter större lagringsutrymme, och det blir värre för varje månad som går. Och som för att göra saker och ting värre så tar det allt längre och längre tid att köra en backup, allteftersom databaserna växer. Eftersom databasen måste vara uppe och köra dygnet runt så har jag kommit till den punkten där jag får köra backups på nätterna (då behovet av tillgängligheten till SQL Servern är som lägst). Jag behöver hjälp!!
Skulle det inte vara helt underbart om det fanns något sätt att reducera storleken på SQL Serverns backups, och samtidigt öka hastigheten på dem? Faktum är att jag inte är den enda som har det här problemet. De goda människorna på
Exakt vad är SQL LiteSpeed?
SQL LiteSpeed är helt enkelt ett substitut för SQL Serverns inbyggda Backup- och återhämtningskommandon. I de flesta fall, men inte alla, så kan du göra samma sak med SQL LiteSpeed som du kan göra med SQL Serverns Backup- och återhämtningskommandon. Nej, SQL LiteSpeed byter inte helt ut SQL Serverns Backup- och återhämtningskommandon, du kan fortfarande använda dem om du vill det. LiteSpeed utökar bara SQL Serverns inbyggda kapacitet. Här följer lite av det som SQL LiteSpeed har att erbjuda:- Kör backups och återhämtningar av databasens filer och transaktionsloggar. SQL LiteSpeed stödjer det mesta av den syntax som används av SQL Serverns inbyggda Backup- och återhämtningskommandon, så det är inte så mycket nytt man måste lära sig. Och de redan existerande Backup- och återhämtningsscripten behöver bara en mindre justering för kunna fungera ihop med SQL LiteSpeed.
- Minskar tiden för Backup och återhämtning markant.
- Reducerar storleken på backupfilen för databasen och transaktionsloggen.
- Stödjer flera instanser (SQL Server 2000).
- Stödjer multitrådning och flera CPUn.
- Det uppstår mindre belastning än SQL Server Backupkommandot, vilket innebär att användarna sällan märker av att du kör en Backup.
- Inkluderar en tillvalskryptering på 128 bitar för ökad säkerhet.
- Har full support för SQL Server Clustering.
- Kan användas i SQL Server 7.0 (SP 3 och upp) samt SQL Server 2000 (alla nivåer).
- Kan användas till att öka hastigheten vid överförning av loggar. Faktum är att loggshippning finns tillgängligt hos försäljaren.
- Inkluderar en speciell konfigurationsinställning för prestandaoptimering. Då kan du optimera SQL LiteSpeed till att få ut det allra bästa av din aktuella hårdvara.
- Den har SQL Server 2000 Query Analyzer templates installerad.
Hur fungerar SQL LiteSpeed?
I SQL Server kan du köra backup och återhämta databaser och transaktionloggar genom att använda Maintenance Wizarden i Enterprise Manager, eller genom att använda Backup och återhämtningskommandon. Många DBAs föredrar att använda kommandona eftersom de är erbjuder fler alternativ och flexibilitet, och för att det är lätt att skapa ett lämpligt script för att sedan schemalägga en körning med hjälp av SQL Server Agent. SQL LiteSpeed implementeras i samband med att man använder utökade lagrade procedurer, vilket innebär att du kan köra dem direkt från din Query Analyzer, eller lägga in dem i dina script för att sedan schemalägga en körning med hjälp av SQL Server Agent. Det är dessutom väldigt lätt att modifiera ett aktuellt Backup- och återhämtningsscript till att använda SQL LiteSpeeds utökade lagrade procedurer istället för att använda de inbyggda kommandona.
Förutom att använda SQL LiteSpeed genom Query Analyzer så kan du även använda det från kommandoraden genom SQL LiteSpeed.EXE Command Line verktyget. Det här låter dig utföra alla backups direkt från en Batchfil, om du så önskar.
En av de bästa sakerna med SQL LiteSpeed är att syntaxen är väldigt lik syntaxen från de inbyggda kommandona. Här nedan kan du se några av de utökade lagrade procedurerna som används i SQL LiteSpeed tillsammans med de likvärdiga kommandona från SQL Server.
Låt oss säga att vi vill utföra en simpel databasbackup följt av en enkel återhämtning. Så här skulle vi göra med de inbyggda backup- och återhämtningskommandona:
BACKUP DATABASE pubs
TO DISK = 'c:\temp\pubs.bak' WITH INIT RESTORE DATABASE pubs
FROM DISK = 'c:\temp\pubs.bak'
Och så här skulle vi göra samma sak som ovan, fast med SQL LiteSpeeds utökade lagrade procedurer:
EXEC xp_backup_database @filename='c:\temp\pubs.bak'
, @database='pubs'
, @init=1 -- @init=1 is the same as 'with init' in SQL Server
EXEC xp_restore_database @filename='c:\temp\pubs.bak'
, @database='pubs'
Som du kan se så är syntaxen väldigt lika. Men det som skiljer sig lite är att SQL LiteSpeed kommer att prestera mycket snabbare, samt att backupfilerna kommer att bli mycket mindre.
Hur installeras SQL LiteSpeed?
Det är väldigt lätt att installera SQL LiteSpeed. När du väl ha startat Setupprogrammet så letar den själv reda på alla instanser av SQL Server som körs, vilket låter dig installera det till alla instanser eller bara till de som du själv väljer. Om du kör SQL Server i ett Cluster så kommer SQL LiteSpeed att vara medveten om det här och kommer automatiskt att installera sig på alla noder i Clustret. På så sätt så kommer SQL LiteSpeed alltid att vara tillgängligt, även om det skulle ske ett fel i Clustret.
Är SQL LiteSpeed verkligen snabbare, och blir filerna mindre?
Svaret på det är ett självklart ja. Låt mig beskriva ett backupscenario som jag var inblandad i så får ni se hur SQL LiteSpeed hjälpte till.En av de SQL Servrar som jag administrerar finns i ett SQL Server 2000 Cluster som körs på en Windows 2000 Advanced Server. Den här Servern stödjer en mängd olika databaser, men den som jag ska tala om här nu används till vår ERP applikation. För tillfället innehåller den här databasen över 32 GB med data.
Med hjälp av SQL Serverns Backupkommando så tar det mig 129 minuter att köra en backup av den här databasen på Server, och backupfilen är ca 32,2 GB stor. Det är inte bara en lång tid att spendera på en backup utan den tar även upp mycket plats. Det leder till att Serverns prestanda tar stryk under backups, samt att jag började få slut på lagringsutrymme.
När jag började använda SQL LiteSpeed så blev saker helt plötsligt väldigt annorlunda. Först körde jag en backup på samma databas med hjälp av SQL LiteSpeed i dess standardkonfiguration (alltså utan att använda någon speciell optimering). Omedelbart minskade backuptiden från 129minuter till endast 54 minuter, och storleken på backupfilen gick ner från 32,2 GB till 2,9 GB. Och när jag specificerade att backupen använde flera trådar (alltså inte standarden 1) så gick tiden ner till 21 minuter.
För att summera det här enkla testet så reducerade SQL LiteSpeed storleken på backupfilen från 32,2 GB till 2,9 GB, och tiden från 129 minuter till 21 minuter. I mitt fall så sparde jag ca 91 procent lagringsutrymme och 84 procent av tiden.
Jag vet inte hur det är med dig, men för mig så är det här en imponerande reducering av både tid och lagringsutrymme, och då har jag inte ens räknat med reduceringen av Serverbelastning eftersom det tar så mycket mindre tid.
Hur mycket databasen komprimeras och hur mycket kortare tid det tar beror på många olika faktorer, inklusive vilka SQL LiteSpeed alternativ du konfigurerar, hastigheten på dina Servrars CPUn, hastigheten på dina Servrars I/O system, samt hur sysselsatt din Server är medan du utför backupen. Men som du kan se från den här demonstrationen så kan SQL LiteSpeed definitivt öka hastigheten på dina backupprocesser, samt spara lagringsutrymme på samma gång.
En riktigt cool funktion
Som en DBA så är jag säker på att du har råkat ut för situationer där du ska skicka en kopia av databasen till försäljaren för analys (oftast för att finna och fixa en bugg i försäljarens mjukvara). Med små databaser så skulle det vara lätt att zippa ner filen och skicka iväg den. Men om du har en stor databas på över 5 GB, vad gör du då?Jag stöter ofta på det här problemet. Det har sina storleksbegränsningar då man zippar ner en fil, och jag har väldigt ofta skickat över väldigt stora filer till min försäljare. Lösningen heter SQL LiteSpeed. Det beror på att den har en väldigt cool funktion som heter Extraction Utility.
Extraction verktyget (vilket körs från Command Line) skapar en Microsoft Tape Format backup från en SQL LiteSpeed backup. Det låter dig byta backup med sådana som inte har SQL LiteSpeed så att du kan skapa en standard SQL Server backup från en SQL LiteSpeed utrustning. Den kan sedan återhämtas genom att använda de interna SQL Server RESTORE kommandona.
Så istället för att vara tvungen till att hitta något sätt att skicka en 10 GB stor fil till försäljaren så kan du skicka en fil som är 1 GB stor. Det kan verkligen öka hastigheten processen med att skicka en fil över FTP, eller att bränna in den på en CD eller DVD.
Trots att du kanske inte vill använda SQL LiteSpeed till dina vanliga backups så är det helt OK om du köper det bara för en enda funktions skull. Fast jag är säker på att du skulle använda till allt och alltid om du väl köper det.
0 Kommentarer