Administration av SQL Server. Laboration ADM2



Relevanta dokument
KAP 18 SQL SERVER AGENT

KAP 16 BACKUP, RESTORE OCH RECOVERY

Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa.

ÖVERVAKNING AV SQL SERVER

Kunskapsbank ICARUS DB

Administrationsmanual ImageBank 2

Flytt av. Vitec Mäklarsystem

LEX INSTRUKTION REPLIKERING UPPGRADERING

JobOffice SQL databas på server

Storegate Pro Backup. Innehåll

Manual - Phonera Online Backup

Årsskiftesrutiner i HogiaLön Plus SQL

Innehåll Översikt: Arbeta med databaser... 3 Översikt databaser i SQL Server... 4 Översikt databaser i SQL Server... 5 Hur information lagras i SQL

Kunskapsbank ICARUS DB

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

VIDA CONFIGURATION VIDA ALL-IN-ONE

AVCAD 4.0 för Windows

Innehåll Security. Chapter 4 och 7 Beginning SQL Server 2008 for Developers

LEX INSTRUKTION - REPLIKERING

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

Boss installationsmanual förberedelser

Administrationsmanual ImageBank 2

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

INSTALLATION AV VITEC MÄKLARSYSTEM

Installationsmanual för OnCourse

AVCAD 4.0 for MS SQL-SERVER

Installationsanvisning Boss delad databas

Myndigheten för samhällsskydd och beredskap 1 (10) Datum Installationsguide ROPA

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1

Innehåll. Installationsguide

Design Collaboration Suite

Övning: Skapa en ny regel

Installationsanvisningar VisiMIX. Ansvarig: Visi System AB Version: 2.2 Datum: Mottagare: Visi MIX kund

Konfigurering av eduroam

Årsskiftesrutiner i HogiaLön Plus SQL

Telia Connect för Windows

Din guide till. Byte av databas. Från MSDE till SQL Express

Filbeskrivningar Eller på särskild CD skiva

E-posthantering med Novell Groupwise WebAccess

Uppdatera Easy Planning till SQL

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

IT-system. BUP Användarmanual

Användarhandbok. Nero BackItUp. Ahead Software AG

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Starta MySQL Query Browser

ARX på Windows Vista, Windows 7 eller Windows 2008 server

7 Mamut Client Manager

PNSPO! PLC Backup Tool. 14 mars 2012 OMRON Corporation

Backup Premium Snabbguide

Vid problem med programmet kontakta alltid C/W Cadware AB på telefon

Win95/98 Nätverks Kompendium. av DRIFTGRUPPEN

Installera SoS2000. Kapitel 2 Installation Innehåll

Innehåll. Dokumentet gäller från och med version

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF!

Startanvisning för Bornets Internet

LABORATION 2 DNS. Laboranter: Operativsystem 1 HT12. Martin Andersson. Utskriftsdatum:

Laboration 2 Datorverktyg vid LiU

Säkerhetskopiera och återställa

Workshop IBA internet based assessment

Installationsguide för mysql och OLA Server/OLA Klient

Kompletterande instruktioner för installation och konfiguration av HMS-server för koppling mot KONTAKT

Arbetssätt i Skola24 Schema

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Årsskiftesrutiner i HogiaLön Plus SQL

Programvaruhandbok. HP SimpleSave. Säkerhetskopieringsprogram Användarhandbok. SimpleSave

BLI VÄN MED DIN DATOR ENHETER MAPPAR FILER

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF!

Användarmanual TextAppen Online

Installationsmanual ImageBank 2

Innehåll 1 Inledning Serverinstallation 2.1 Systemkrav 2.2 SQL Server 2.3 Behörighet vid installation 2.4 Behörighetskontroll i Microsoft SQL Server

Programinstallation Datorbaserat handsmörjningssystem

Manual Godman Redovisning

Välj bort om du vill. 96 Internet och e-post. 2. Mail-programmet finns i datorn. 1. Skriv mail i sökrutan. Windows Live Mail i Aktivitetsfältet.

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Anvia Online Backup 1(8) Installationsguide

Kom igång med Etikettskrivaren 1. Ladda ner följande installationsprogram Ladda ner Drivrutiner för etikettskrivare Zebra

LW313 Sweex Wireless 300N Adapter USB

Återkommande frågor för Eee Pad TF201

Uppdateringsguide v4 SR-3

Memeo Instant Backup Snabbguide. Steg 1: Skapa ett gratis Memeo-konto. Steg 2: Anslut din lagringsenhet till datorn

Installation av datafil för lokal lagring av e-post i Microsoft Outlook 2016

Procedurer för att ändra standardplats för programinstallation i Windows XP

Installation/Flytt av Rebus

Innehåll Information om hemkatalog och lagring av filer... 2 PC... 3 DAFGU-/GDA-dator, Windows

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Kom igång med TIS-Office

Ja, men resultatet blir inte lika bra. Det är att skapa genvägsikoner. Se anvisningar nedan:

Hur patchar man Entré?

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

TIS-Web startguide 3.6. TIS-Web Startguide

ALEPH ver. 16 Introduktion

Så här byter du från Unifaun WebOrder (UWO) till Unifaun OnlineConnect (UOCT)

Ladda upp filer fra n PLC till PC

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

1284_omslag.qxd :13 Sida 1 ECDL START OFFICE 2003 Allmän IT Windows XP Word 2003 Outlook 2003

Sync Master startas via Task Scedule (schemaläggaren). Programmet kan köras på servern utan att någon är inloggad på servern.

Xerox Device Agent, XDA-Lite. Installationsguide

OBS! FÖRSÖK INTE INSTALLERA PROGRAMVARAN INNAN DU HAR LÄST DET HÄR DOKUMENTET.

Transkript:

Administration av SQL Server Laboration ADM2 Redovisning All uppgifter ska göras. Skriv ner svaren på de frågor som inte är överstrukna i en textfil. OBS! Svara med fullständig mening så man förstår vad du svarar på. Enbart svar av typen ja och nej accepteras inte. Du kommer att få redovisa ett slumpmässigt urval av dessa via en applikation på hemsidan som kommer att bli tillgänglig efter laborationen. Till laborationen hör ett antal filer som finns på hemsidan i ADM2_alla.zip och i mapp på skrivbordet på VMware-datorn. Om inget annat sägs ansluter du med Windows autentisering så att du har sysadmin rättigheter. Tommy Löfqvist 2000-2012 1

14.1 Hantera konflikter mellan processer Mål Använda Activity Monitor från SQL Enterprise Manager för att titta på SQL Server aktiviteter Stoppa en blockerande process Experimentera med att sätta en lock timeout. Översikt Syftet med denna övning är att introducera dig till några av de verktyg som du kan använda för att analysera och hantera problem som uppstår när flera användare vill komma åt samma data. 14.1.01 Öppna Management Studio! Logga in med Windows Authentication. Välj databasen Northwind på verktygsraden. 14.1.02 Skriv i följande transaktion: BEGIN TRAN UPDATE Products SET UnitPrice = UnitPrice*1.05 WHERE CategoryID = 2; Kör transaktionen! Gör inte Commit eller Rollback! En transaktion låser de poster som ska uppdateras så att ingen annan användare kan läsa, uppdatera eller radera dessa förrän transaktionen är klar. Transaktionen är klar då den avslutats med Commit Tran eller om den "rullas tillbaka" med Rollback Tran vid ett fel. 14.1.03 Öppna ett nytt fönster i Mstudio med New Query på verktygsraden (du slipper då logga in på nytt), välj Northwind som databas och skriv in och kör följande fråga: SELECT * FROM Products Som du ser händer inget med denna frågan. Du kan se på den röda knappen att den fortfarande är aktiv. För att undersöka vad som står på är Activity Monitor ett bra verktyg. 14.1.04 Starta Activity Monitor genom att högerklicka på din server och välj Activity Monitor från Menyn. Under diagrammen finns fyra fönster som kan öppnas. Välj Processes. Du bör då se i grafen Waiting Tasks att det är process(er) som ligger och väntar. 14.1.05 Du bör se en process där "Task State" = suspended (=hängande). Långt till höger i listan hittar du rubriken Blocked by. Notera Session ID för dessa processer. Blocking Process: Blocked Process: 14.1.06 Antag att det inte har varit någon aktivitet från blocking process de senaste timmarna, och du har beslutat att avsluta den. Markera denna och högerklicka - välj Details. Notera att du kan se den SQL som den blockerande processen kört. Du har också möjlighet att döda (kill) processen. Välj Kill Process! 14.1.07 Vad har nu hänt med den blockerade frågan från 14.1.03? Det är mycket viktigt att försäkra sig om att processen är inaktiv. Man kan inte springa runt och döda processer bara för att de väntar på resurser. Tommy Löfqvist 2000-2012 2

14.1.10 Återvänd till Mstudio och fönstret som innehåller den blockerande processen. Om processen fortfarande är i gång kör du Rollback Tran. Kör sedan frågan igen utan Commit eller Rollback. 14.1.11 Öppna det andra fönstret där du hade den blockerade SELECT frågan (eller skapa ett nytt). Kör följande kommando för att sätta låstiden till 3 sekunder: SET LOCK_TIMEOUT 3000 Kör därefter SELECT * FROM Products i samma fönster. Vilken inverkan har SET LOCK_TIMEOUT? 14.1.15 Stäng frågefönstret. Om frågan fortfarande går i det första fönstret gör du rollback tran så att den avslutas. Du har nu löst ett concurrency-problem med två olika strategier. 1. Du prioriterade den blockerade processen och dödade den process som blockerade. 2. Du prioriterade den blockerande processen genom att sätta väntetiden till 3 s för den blockerade processen, som därefter gav upp. Sammanfattning 14.1 14.1.50 Vad är det som gör att processen i övningen blockerade den andra processen? 14.1.51 Hur kan man undvika att en process blir väntande i "evighet" på en annan process? 14.1.52 På vilka två olika sätt kan man angripa problemet med att process låser en annan? 14.2 Användning av SQL Profiler Mål I denna övning ska du få testa SQL Server Profiler. Problem Antag att du fått i uppdrag att publicera data på webben som genererats av en Windowsapplikation. Problemet är bara att ingen vet vilken av databaserna och i vilken tabell data ligger lagrat. Du ska nu i denna övning ta reda på detta och vilken sql-fråga som används. Här kommer SQL Server Profiler till hjälp att analysera trafiken till servern. 14.2.00 Testa först om applikationen Nameform.exe som finns bland labbfilerna kan köras i din Windowsversion om inte så saknas.net framework. Gå då direkt till kap 15. Kontrollera också att du har databaserna DBC, Northwind och Pubs från lab Adm1. 14.2.01 Starta SQL Server Profiler från Management Studios Tools-meny. Finns också i SQL Server Mappen från Startknappen. Vi ska skapa en "trace" för att fånga SQL-kommandon som skickas till servern. För enkelhets skull använder vi en färdig mall som innehåller de event som vi vill titta på. Tommy Löfqvist 2000-2012 3

14.2.02 Välj File New Trace. Anslut till den lokala servern med Windows autentisering. (Från Mstudio blir det tvärt om :-) OBS! Du måste ange SQL Serverns riktiga namn det duger inte med. eller local. Serverns namn = datorns namn. Du kan hitta det igenom att köra titta på egenskaperna i "My Computer" 14.2.03 Skriv in följande i lämpliga dialogboxar: Trace Name: NameForm Trace Template Name: Välj Standard (default) från dropdownlistan. Du ska inte spara resultet av tracen så det är allt som du behöver skriva in på denna flik. 14.2.04 Byt till Events Selections-fliken. Här kan du se en lista på de event som fångas i Standard template, Samt de kolumner med information som kommer att visas. Allt detta kan justeras. Markera Show all events och Show all columns till höger under listan, så får du se en stor mängd event och många data som kan visas. Markera att visa User Error Message som ligger i "Errors and Warnings" 14.2.05 Om man vill filtrera bort information och aktiviteter från andra användare kan man göra det under Column Filters. Vi gör inte det nu. Tracen är nu klar att startas. Klicka på Run-knappen för att starta den. 14.2.06 Du ska nu köra programmet: NameForm.exe (Finns bland laborationsfilerna - Kräver.net ramverk). Genom att titta på trafiken till SQL-server ska du ta reda på och utföra följande: a) Vilken databas körs applikationen mot? b) Under vilken användare körs applikationen? c) I vilken tabell sparas namnet? d) Ange ett ID som kan användas för att spara Nisse Hult i databasen! Tips! Fyll i ID och Namn i NameForm. Tryck gärna på suddgummit på statusraden i profiler för att rensa fönstret precis innan du trycker på spara i NameForm. Pausa Profiler efter en liten stund! ID valideras av ett constraint som du får undersöka. Sammanfattning 14.2 14.2.50 Vad kallas det verktyg som kan användas till att spåra vad som händer i databasen? Stäng Profiler och övriga verktyg när du är klar! Tommy Löfqvist 2000-2012 4

15.1 Säkerhetskopiering av databaser och transaktionsloggen Mål Göra backup på systemets och användarens databaser Göra backup på transaktionsloggarna Översikt Att ta backup på ett korrekt sätt är en av dba's viktigaste uppgifter. I denna övning, får du öva på att göra backup på olika databaser med olika tekniker. Förered databasen som ska säkerhetskopieras 15.1.1 Kontrollera först om du har kvar databasen DBC från föregående laboration. I annat fall finns det en backup bland labfilerna på hemsidan. Använd MStudio och gå in på Properties-Options för denna databasen och kontrollera att Recovery model är: Full. Följande frågor kommer nu att lägga till en ny tabell till DBC databasen. För att simulera användning av databasen fyller vi den med 20 rader i taget. Däremellan tas full-, differentiell- och logg-backup på olika sätt. Lägg till 20 nya poster 15.1.2 Öppna filen AddPersonnel.sql i MStudio. Notera att skriptet påbörjar en transaktion som skapar en tabell om den inte finns. Därefter adderas poster till denna. Kör skriptet! Resultatfönstret kommer att ha en rad som lyder "Det är n rader i dbo.temp". Notera antalet rader nedan:? Antalet rader: Ta full backup på databasen 15.1.3 Skapa först mappen C:\Backup. Låt sedan Query-fönstret vara öppet och markera databasen DBC. Högerklicka och välj Tasks Backup Kontrollera att Backup type: är Full. Ta först bort den gamla sökvägen i Destination och ändra till: C:\Backup\DBC.bak Gå till Optionsfliken och välj Overwrite all existing Backupsets, samt markera Verify backup when finished. Klicka på OK för att starta backupen och därefter för att bekräfta meddelandet att allt gick bra. Lägg till 20 nya poster 15.1.4 Återvänd till Query-fönstret som innehåller AddPersonnel.sql. Kör detta skriptet igen. Notera antalet rader i tabellen:? Antalet rader: Tommy Löfqvist 2000-2012 5

Ta full backup på transaktionsloggen 15.1.5 Öppna backupdialogen på samma sätt som tidigare men se till att Backup type är Transaction log. Om detta alternativ inte är tillgängligt har du inte lyckats med att sätta Recovery model till full - Det räcker kanske med att göra en refresh och försöka igen. Annars får du börja om. Kontrollera också på options-sidan att Append to the existing backup set och att Verify backup when finished är valt. Kör igång backup'en Lägg till 20 nya poster 15.1.6 När backupen är klar återvänder du till fliken med AddPersonnel.sql skriptet. Kör detta igen och notera antalet rader:? Antalet rader: Backup av loggen med T-SQL 15.1.7 Nu ska vi göra backup på transaktionsloggen med TSQL. Öppna ett nytt Query fönster och kör följande kommando: BACKUP LOG DBC TO DISK = 'C:\Backup\DBC.bak' Håll fönstret öppet. Lägg till 20 nya poster 15.1.8 Kör nu AddPersonnel.sql skriptet igen och notera antalet rader:? Antalet rader: Ja, ja lite tjatigt, men ska vi simulera aktiviteter så blir det så här. Differentiell backup av databasen med T-SQL 15.1.9 Återvänd till frågefönstret med backup-kommandon. Denna gång ska du göra en differentiell backup. BACKUP DATABASE DBC TO DISK = 'C:\Backup\DBC.bak' WITH DIFFERENTIAL Lägg till 20 nya poster 15.1.10 Återvänd till MStudiofönstret som innehåller AddPersonnel.sql och kör frågan igen.? Antal rader: OBS! De nya raderna har vi ingen backup på! Tommy Löfqvist 2000-2012 6

Kontrollera vad som finns i backup-filen 15.1.11 Vi ska nu bara kolla vad som skapats! ÅTERSTÄLL INTE DATABASEN NU! Markera DBC databasen, högerklicka och välj Tasks Restore Database Du bör se de backuper som tagits. (I SQL Server 2012 visas troligen inte loggfilerna). Stäng sedan fönstret med CANCEL. OBS! Återigen, vi ska INTE återställa just nu. Stäng fönstret med CANCEL Backup av systemdatabaser Systemdatabaserna förändras normalt inte så ofta så de behöver normalt inte säkerhetskopieras lika ofta som produktionsdatabaser. Master-databasen bör säkerhetskopieras när man lagt till databaser och login. Msdb-databasen när man schemalagt uppgifter eller då man skapat nya jobb eller larm. Säkerhetskopiera master- och msdb databaserna 15.1.12 Master och msdb, är inga transaktionsdatabaser så de har bara SIMPLE recovery model. Det går då inte att göra backup på transaktionsloggen. Så full backup är det enda som behövs. Ta först full backup på master-databasen och sedan till msdb-databasen i samma backup-fil: C:\Backup\systemDBs.bak För att ändra på namnet får du radera Remove på default destination fil och lägga till en ny (Add ) med - knappen. Byt till Options-fliken och markera Verify backup when finished. Markera också lämpligt val Append/Overwrite av backupset Stoppa databasservern och krasha DBC-databasen 15.1.13 Stoppa tjänsten MSSQLSERVER. Om du har Vista så måste du troligen använda SQL Server Configuration Manager annars kan du försöka med att högerklicka på servern i Mstudio och stoppa därifrån. Om du får frågan om att stoppa beroende services så stoppa dem också. Stäng Mstudio! Leta reda på dbc1.mdf filen (i c;\data) och byt namn på den till _dbc1.mdf (Kan nu betraktas som kraschad eller raderad). Loggen antas vara i säkert förvar på en annan säker disk! Starta MStudio igen och starta din lokala server igen. Du måste eventuellt använda SQL Server Configuration Manager om det inte går att starta från Registered Servers i MStudio. Refresha Databases och försök öppna DBC-databasen! Va, gick inte det? Öppna Management - SQL Server Logs och försök hitta felmeddelande som visar vad som är problemet. Vad står det i felmeddelandet? Tommy Löfqvist 2000-2012 7

Skapa kaos Nu skulle vi egentligen ha kraschat master-databasen för att ställa till det riktigt ordentligt. Då kan man inte ens starta SQL Server. För att återhämta (recover) från en kraschad masterdatabas, måste man enkelt uttryckt via installations CD'n återställa systemdatabaserna till samma status som vid första installationen. Alla användardatabaser blir därmed oåtkomliga, så det gäller att man har gjort backup på master-databasen efter sist skapad databas och sist skapad login. Därefter återställs de backup ade systemdatabaserna och eventuellt skadade användardatabaser. Nu har vi ju masterdatabasen i bra skick så det vi ska inrikta oss på är att rädda så mycket som möjligt av de inmatade raderna i DBC-databasen (Även de som inte finns backup på). Redovisning 15.1 15.1.50 Vilken Recoverymodell medger fullständig återställning vid crash? 15.1.51 Man kan ta backup på olika delar av databasen. Ange tre olika backuptyper. 15.1.52 När ska man ta backup på databaserna master resp. msdb?. 15.1.53 Vad händer med SQL Server om master-databasen blivit skadad? 15.2 Återhämta (Recover) Databases Mål: Återhämta (Recover) DBC databasen Översikt För att kunna återställa databasen från sådana katastrofer som du precis har råkat ut för krävs en bra backupstrategi. I denna övning kommer du att få lära dig alla de tricks som behövs för att kvickt vara på fötter igen. Backup på allt som är gjort efter sista backupen (tail-log) 15.2.1 Nu ska vi ta tillbaka det arbete som gjordes efter din sista transaktions-loggs backup. Märkligt nog ska vi börja med att ta en backup på transaktionsloggen, den sista biten av denna har det ju inte tagits någon backup på. Så vi måste rädda denna innan vi återställer äldre loggar. Öppna Databases mappen i MStudio och välj Tasks Back Up på masterdatabasen. Välj databas DBC och backup typen Transaction log. Ta bort befintlig destination. Klicka därefter på Add-knappen och skriv in filnamnet tail-log.bak i C:\backup och tryck Ok. Starta INTE backupen ännu! Byt till Options-fliken och markera Back up the tail of the log and leave the database in restoring state. Klicka på Ok för att starta backupen. Det första alternativet "Truncate the transaction log" raderar logg-information om committade transaktioner som sparats på disken (vid en checkpoint). Detta är normalfallet, men eftersom datafilen är skadad så måste vi behålla all information i loggfilen sedan den förra loggfilsbackupen. Det är därför vi måste hindra trunkeringen. Tommy Löfqvist 2000-2012 8

Återställning (recovering) av databasen DBC. 15.2.2 Nu är vi redo att göra återställningen av DBC. Stäng först alla fönster som eventuellt är anslutna till DBC! Högerklicka på DBC och välj Tasks Restore Database. MStudio kommer att föreslå att du återställer den fulla backupen, den differentiella backupen och den sista logg-backupen (tail-logl). Klicka Ok för att återställa (restore) databasen. 15.2.3 Öppna ett frågefönster välj DBC databasen och kör frågan: select count(*) from dbo.temp? Hur många rader är det i tabellen nu?? Är detta lika många rader som efter övning 15.1.10? Grattis! Om svaret är ja börjar du bli en riktigt proffsig DBA! Nu kan du radera dbo.temp tabellen. NYHET! I SQL Server 2012 är det nu möjligt att ta backup på logfilen direkt i Restore-kommandot. På Optionsfliken kan man markera detta. Redovisning 15.2 15.2.50 Vad var det första som gjordes innan DBC-databasen skulle återhämtas från crashen? 15.2.51 a) Var det möjligt att återfå de poster som sparades efter sista backupen? b) Varför det? 16.1 Skapa Job och Operatörer Mål: Skapa operatörer och schemalägga enkla flerstegsjobb. Översikt SQL Server Agent är en process som kan hantera schemalagda uppgifter och reagera på olika händelser. Agenten gör det möjligt att automatisera många rutinuppgifter. I denna övning ska du skapa operatörer, dvs individer som blir meddelade när vissa händelser inträffar och när schemalagda jobb lyckas eller misslyckas. Du kommer att schemalägga enkla jobb och jobb i flera steg som utför rutinarbeten utan din medverkan. Starta agenten 16.1.1 För att ett schemalagt jobb ska fungera måste SQL Server Agent Service vara startad. Starta Agenten med hjälp av SQL Server Configuration Manager eller direkt från MStudio Tommy Löfqvist 2000-2012 9

Skapa operatör Operatörer är personer som kan ta emot e-mail och avisering via personsökare 16.1.2 Högerklicka på Operators under SQL Server Agent ikonen och välj New Operator Skriv in ditt namn och net-send adress, dvs datorns namn. Din e-postadress och personsökaren (Pager's) e-postadress hoppar vi över. För att den ska fungera måste vi konfigurera SQL Server e-post, vilket vi inte gör i denna labben. Stäng fönstret genom att trycka OK. För att NET-send ska fungera måste servicen messenger vara aktiv. Den kan startas genom att högerklicka på MyComputer och välja Manage. Under Services och Applications väljer man Services och där letar man reda på Messenger. Om den är disablad kan man ändra till Manual eller Automatic och sedan starta den. Skapa OBS! ytterligare Om du har en Windows ny operatör. XP SP2 Låt en eller annan Windows grupp Vista vara så operatör. finns tyvärr Skriv inte en Messenger annan grupps längre datornamn så då får som du utelämna net-send de adress. instruktioner som gäller detta. Skapa ett single step jobb Du kommer att skapa ett jobb som automatiskt säkerhetskopierar DBC databasen en gång per vecka. 16.1.3 Högerklicka på Jobs och välj New Job... (Ligger under SQL Server Agent) Generalsidan Kalla jobbet Veckobackup DBC. Låt resten av skärmen vara som den är. Stepssidan Skapa ett nytt steg med New. Använd Steg1 som stegnamn. Som typ väljer du något som är lämpligt för att skapa ett T-SQL skript. Databas ska vara DBC Skriv in föjande kommando i Command rutan: BACKUP DATABASE DBC TO DISK= 'C:\Backup\DBC.bak' Klicka på Parse-knappen för att testa syntaxen. (Parse testar inte om sökvägen är rimlig. Tryck sedan OK för att avsluta steget! Schedulessidan Skapa en ny schemaläggning med New knappen.kalla schemaläggningen för VeckoBackup som ska vara Recurring. Programmera in att backupen ska ske varje Lördag klockan 02:00:00. Då lär det inte sitta så många framför datorn). Tryck därefter Ok! Tommy Löfqvist 2000-2012 10

Testa jobbet Notifications-sidan Markera Net send operator och välj operatören på din dator. Uppmärksamma operatören genom att välja When the job completes från dropdown listan bredvid operatören och samma för Write to the Windows Application event log. Klicka Ok för att spara. 16.1.4 Du behöver inte vänta till kl 02:00 på Lördag för att se om jobbet fungerar. För att testa det nu, expanderar du SQL Server Agent i trädstrukturen och klickar på Jobs ikonen. Högerklicka på Veckobackup och välj Start Job. Efter några sekunder bör du få ett meddelande från messenger på skärmen. (E-post hade varit en bättre lösning om det funkat). Öppna gärna Job Activity Monitor som du kan hitta i Jobs-mappen Kontrollera loggar Du kan hitta alla loggar genom att dubbelklicka på Management - SQL Server Logs Current. I alla loggarna finns extra information under listan med loggar. 16.1.5 1. Kontrollera SQL-Servers logg current Försök hitta meddelande om jobbet där. 2. Kontrollera Windows NT Application Log I samma bild som ovan finns också Windows NT s loggar. Titta om du kan hitta information om jobbet där också. Notera att backupen sparades som framgångsrik i eventloggen. I praktiken är det kanske inte så intressant att spara lyckade händelser i applikationsloggen. Detta skulle snart fylla upp eventloggen med ganska oanvändbar information (Inga nyheter är goda nyheter). Normalt loggas endast alvarliga fel i Windows applikationslogg. 3. Kontrollera SQL Server Agent - Error Logs Även här bör du hitta information om jobbet. 4. Läs Job-historiken Under SQL Server Agent Jobs hittar du jobben. Högerklicka på Veckobackup och View History så hittar du en logg för just det jobbet. I praktiken har man mängder av schemalagda jobb på produktionsservrarna (backuper mm). Livet blir då lite enklare om du skickar dem till e- mail/personsökare/net send när det blir något fel. Möjligheten att kolla historiken lite då och då finns ju också för att se till att allt funkar som det ska. Skapa ett multistep job Vi har tidigare sagt att master och msdb bör säkerhetskopieras på samma gång. Vi ska nu skapa ett jobb som säkerhetskopierar båda databaserna kl 23:00 varje kväll. Om master backupen skulle misslyckas ska ingen backup tas på msdb. 16.1.6 Skapa ett nytt job och kalla jobbet: Backup System Databases Tommy Löfqvist 2000-2012 11

Steg 1 - Backup av Master Byt till Steps-sidan och klicka på New. Kalla steget Backup master. Det ska bli ett T-SQL steg som kan köras i master databasen. Skriv in följande kommando i Command rutan: BACKUP DATABASE master TO DISK=' C:\TMP\MASTER.BAK' (OBS! Medvetet obefintlig mapp för att generera ett fel) Klicka på Parse för att testa syntaxen. Byt till Advanced-sidan och se till att jobbet fortsätter till nästa steg om det lyckas och att det avbryter jobbet och rapporterar fel om det inte lyckades. Klicka Ok för att spara steget. Steg 2 - Backup av MSDB Klicka på New för att lägga till ett steg till. Kalla detta Backup msdb. Det är ett TSQL steg och kan också göras i master-databasen. Skriv in följande i kommando rutan: BACKUP DATABASE msdb TO DISK='C:\BACKUP\msdb.bak' Detta är sista steget, välj Advanced-sidan och markera lämpliga åtgärder vid success och failure. Tryck Ok! Schemaläggning Byt till Schedule-fliken och programmera in en ny (Recurring) schemaläggning med namnet Daily 23.00. Jobbet ska köra dagligen kl 23:00. Skicka net send till operatören och markera i Windows Application Event log om jobbet misslyckas. Avsluta därefter jobbet! 16.1.7 Testkör jobbet Redovisning 16.1 Klicka på Jobs-ikonen och starta jobbet. Högerklicka därefter på jobbet och välj View History. Försök identifiera jobbet i listan. Du bör se en (eller två) röd ikon som visar att jobbet misslyckats. Ta med hjälp av informationen reda på varför jobbet misslyckades. Det har med sökvägen att göra. I 16.2 ska vi titta på hur man skickar information om varför jobbet misslyckades till operatören. 16.1.50 Ge exempel på hur en operatör kan meddelas om något som hänt? 16.1.51 Vad kan det bero på om net-send inte skulle fungera? 16.1.52 Ge exempel på ett job som kan programmeras in! 16.1.53 Hur kan man i efterhand kontrollera hur jobben fungerat? 16.1.54 Vad är det som ser till att starta schemalagda jobb? Vilken service måste vara igång för att det ska fungera? 16.1.55 Vad var det som gjorde att jobbet i 16.1 misslyckades? 16.2 har utgått. Tommy Löfqvist 2000-2012 12

16.3 Skapa larm (alert) på "prestanda villkor" (Performance Condition) Mål: Att larma på prestandavillkor (performance condition alerts) Saker och ting händer i din SQL Server omgivning som inte är fel som man skulle vilja veta lite om. I detta avsnitt, ska du skapa ett larm (alert) som utlöses när antalet användare som är anslutna till systemet överskrider en viss gräns. Detta är kanske inte så vanligt men det är enkelt att simulera så att du kan se hur processen fungerar. Skapa larm som larmar via net send när antalet anslutna överstiger 5 st. 16.3.01 Markera Alerts ikonen i agentmappen och skapa ett nytt larm (alert). Testa larmet General-sidan Namnge larmet Too many users Välj SQL Server performance condition alert. från Type listan. Notera att displayen förändras. Välj SQL Server: General Statistics i Object dropdown-listan. Välj sedan User Connections i dropdownlistan Counter. Du ska nu fylla i de två sista rutorna så att vi får ett larm då antalet anslutna överstiger 5 stycken. Response-sidan Meddela din operatör med Net send. Options-sidan Skriv följande meddelande i textrutan Additional notification Hej - Det börjar bli jobbigt. Det är för många användare inne. Spara sedan genom att trycka OK. 16.3.2 Öppna ett antal nya frågefönster (File - New - Database Engine Query) Disabla larmet Får du något meddelande? 16.3.3 För att slippa lida av denna begränsningen i fortsättningen så går du tillbaka till larmet och disablar detta. (Det finns en checkbox på första sidan om du väljer properties) Redovisning 16.3 16.3.50 Ge exempel på tre larm på prestandavillkor (Performance Condition Alert!) (Du får titta i dropdownlistorna där du valde du valde "User Connections") Tommy Löfqvist 2000-2012 13

17 Flytta databaser Om du behöver flytta databaser från en server till en annan, eller om du har mobila användare som bär med sig sina databaser på sina laptops, behöver du känna till olika metoder att göra detta. Olika sätt att flytta / kopiera databaser För att flytta eller kopiera databaser från en server till en annan finns följande metoder att tillgå. 1. Detach / Attach (koppla från/till) 2. Backup / Restore (Säkerhetskopiera/Återställa) 3. Copy Database Wizard 4. Export data / Import data 5. SSIS - SQL Server Integration Services 6. Kopiera skriptad databas Problem Om du delat ut rättigheter till dina users till databasen så finns stor risk att dessa users login inte har samma SID (Security Identification Number) som motsvarande login på måldatabasen. Några sätt att hantera detta a) Använd proceduren sp_change_users_login som kan hitta och fixa felmappningar b) Sätt rättigheter på roller istället för på users. Det är då lätt att lägga in nya users i rollerna på måldatabasen. c) Copy Database Wizard fixar om-mappning automatiskt d) Windowslogin har samma SID i hela domänen 17.1 Användning av Detach och Attach Du ska ansluta en frånkopplad databas till en ny server och se till att användarna matchar de användare som finns på den nya servern Anslut databas till din server 17.1.1 Du har fått en frånkopplad (detached) databas skickad till dig i form av databasfiler. Du ska nu ansluta den till din server. Den frånkopplade (detached) databasen är Customers_data.mdf och Customers_log.ldf. (Finns bland labfilerna på hemsidan). Kopiera dem till din dator. Lägg dem bland de andra databaserna i: C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\ och koppla in den (attach) på servern på valfritt sätt. Högerklicka på Databases i MStudio eller sp_attach_db 'fil.mdf', 'fil.ldf'. Tommy Löfqvist 2000-2012 14

Kontrollera och justera users i den nya databasen 17.1.3 Öppna Mstudio och gör refresh på din lista med databaser. Gå in i Customers databasen och kontrollera vilka users som har tillträde till databasen. User i databasen var: Öppna en ny fråga med (File - New - Database Engine Query) och logga in som Sven eller Stina. Dessa användare ska du ha sedan tidigare. Anslut till Customers databasen. Varför gick inte det? Databasen hade ju dessa användare! Stäng Sven och Stinas frågefönster. 17.1.4 När du gör attach på en databas på en annan server är det möjligt att kopplingarna mellan befintliga login och motsvarande användare blir felaktiga. (De har troligen olika SID). Det finns en lagrad procedure som heter sp_change_users_login som kommer att identifiera felaktiga mappningar. Du behöver kolla om detta har hänt när du kopplade in Customers databasen. Välj Customers databasen i MStudio och kör (som sysadmin) kommandot: sp_change_users_login 'Report' Vilka felmappade users rapporteras? 17.1.5 Sven och Stina bör rapporteras som felaktiga. Det man då kan göra är att radera dessa som user i databasen och lägga till målserverns motsvarande användare i stället. Ett enklare men något farligare sätt är att köra sp_change_users_login 'Auto_Fix','Sven' Gör detta och testa proceduren från ovanstående fråga igen. Sven bör då ha försvunnit från listan. Kör samma procedur även för Stina. Vid kopiering inom samma domän behåller Windowslogin sina SID så med dessa användare blir det sällan problem. 17.1.6 Testa nu igen om du kan logga in som Sven eller Stina och att de kan använda den nya databasen. Skriv t ex SELECT * FROM Kund Redovisning 17.1 17.1.50 Om du vill flytta en databas från en server A till en server B genom att helt enkelt kopiera databasfilerna. Vad måste du då göra på server A respektive server B? 17.1.51 Vad kan hända om du kopplar in (attach) en databas i en ny server som redan har samma användare registrerade sedan tidigare? 17.1.52 Ange två sätt att fixa felmappade users som man kopierat till sig. 17.1.53 För vilken typ av login får man inget problem med SID när man kopplaar in (attach) en databas inom samma domän? Tommy Löfqvist 2000-2012 15

17.2 Flytta databaser med Backup och Restore Mål I denna övning ska vi flytta en databas med Backup och Restore. Notera att du inte behöver göra någon avancerad förberedelse t ex skapa databas innan du gör restore. Återställ en backup på den lokala servern med annat namn. 17.2.1 Det finns en backup på databasen DBC i labfilerna som hör till laborationen som heter DBC.bak. Kopiera den till din dators temp-katalog. Anslut till din lokala server med som systemansvarig. Högerklicka på databases-mappen och välj Restore Database Anm.I SQL Server 2012 ser följande något annorlunda ut General sidan Anm. I SQL Server 2012 2012 gäller omvänd ordning Eftersom du troligen redan har en databas med samma namn byter vi namn till DBC_copy som destinationsnamn. Notera att det går att välja till viss tidpunkt på raden under. Vi ska ta med så mycket som möjligt. Eftersom databasen inte är säkerhetskopierad från denna server finns inga backuper i fönstret. Välj From device alternativet och navigera fram till säkerhets-kopian DBC.bak. Markera Restore-rutan. Options - sidan - Ange destination för databasfilerna Anm. I SQL Server 2012 2012 finns detta på Files - sidan Du ska nu specificera plats för databasfilerna. De ska ligga i C:\data resp. C:\log där du har dina andra filer. OBS Eftersom du gör en kopia kan du inte ha samma fysiska namn som originalet. Ändra därför till: C:\data\dbc_copy1.mdf och analogt för de andra. Anm. I SQL Server 2012 ska du avmarkera Take tail-log backup på Options-sidan Slutför nu Restore! Justera users i den nya databasen Bl. a. dbcadmin, WebAdmin och WebUser är users i denna databas och har naturligtvis inte samma SID som dina users med samma namn. Justera det med något av de sätten som diskuterades i föregående avsnitt. Kontrollera att de kommer åt det de ska. Klart! Redovisning 17.2 17.2.50 a) Går det att flytta (kopiera) databaser mellan servrar med Backup och Restore? b) Kan databasen erhålla ett nytt namn på den nya destinationen? c) Hur löste du om-mappningen av användarna? Tommy Löfqvist 2000-2012 16

17.3 Kopiera Databas med Copy Database Wizard Copy Database Wizard är duktig på att kopiera en hel databas mellan olika servrar och att fixa felmappade användare. En nackdel är att den som kopierar måste ha sysadmin rättigheter på både käll- och målservern. Vi nöjer oss därför att kopiera inom servern genom att göra en kopia på Northwind-basen vilket kan vara användbart när man inte vill experimentera med produktions-databasen. 17.3.1 Gör en kopia av Northwind-databasen med det nya namnet NW2. Använd Copy Database Wizard. o Starta SQL Server Agent om den inte redan är igång o Högerklicka på Northwind-databasen och välj Tasks Copy Database o En Wizard leder dig genom kopieringen. Använd SQL Management Object method. o Kontrollera att det inte blir samma namn på filerna som den redan existerande. o Namnge Package Name till: copynw o Run immediately Om du får Catastrophic error så använd Export Data.. från samma meny istället! 17.3.2 Refresha MStudio och kontrollera att databasen har kopierats riktigt. Notera att kopieringen hamnat som ett Job under Agenten som kan schemaläggas eller köras när som helst. 17.4 Skripta databas och data Databasens schema dvs all information om inställningar, tabeller och andra objekt kan lätt skriptas. Skriptet kan lätt köras på annan MS SQL Server för att installera databasen. OBS! Det är osannolikt att du kan köra skriptet felfritt på annan RDBMS än MS SQL Server. Mål: Att skripta databasen DBC och dess tabeller, users och data Anm. Med SQL Server 2012 kan man scripta både databas och dess tabeller på samma gång 17.4.01 Öppna MStudio och markera databasen DBC som du har sedan tidigare. Högerklicka och välj Script database as och skripta databasen. Byt namn från DBC till ABC skriptet (Sök och byt ut) och kör skriptet så att du får en ny databas. 17.4.02 Högerklicka och välj Tasks Generate Scripts Försök själv generera skript av tabeller, data, logins, users, constraints, index mm. med hjälp av den wizard som dyker upp. Kör därefter skriptet så att tabellerna hamnar i rätt databas. Följande kan vara lämpligt att enabla: "script logins", "script object level Permissions", "Script Data", "Script Indexes", 17.4.03 Gå därefter in i MStudio - Refresha databaserna och öppna den nya databasen. Kontrollera om det finns några data i personal-tabellen? Redovisning 17.4 17.4.50 Redovisa den kod i skriptet som fyller på Personal-tabellen med data Gratulerar! Du har nu fullföljt alla övningarna i administratörskursen. /Sven och Stina Tommy Löfqvist 2000-2012 17