Database "opbygning"



Relaterede dokumenter
Opsætning af Oracle Designer 10g repositorie

En Kort Introduktion til Oracle

Agenda. Typiske udfordringer. Begreber omkring recovery. Forretningens krav. Metoder/muligheder. Recovery med TSM. Nye teknologier

Informationssikkerhed Version

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning

OPRETTELSE AF SQL NODE

Optimering af Pervasive v 9 databasen

Import af rekursivt (parent-child) hierarki i Palo

SAS Scalable Performance Data Server

Projekt: VAX Integrator

Database. lv/

Dual boot. af Windows 7 og Linux Mint. Af Thomas Bødtcher-Hansen

Database design for begyndere

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

09. SEPTEMBER 2016 KL 16:00

Installationsguide til Oracle Database XE 10.2 og APEX 3.1.1

Installation af Oracle 10g Release 2 HTML DB

Agenda. Muligheder for anvendelse. Komponenter. Features. Restore muligheder. DR og TSM integration. Repository. Demo. Spørgsmål

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Velkommen. Backup & Snapshot v. Jørgen Weinreich / Arrow ECS Technical Specialist

Installation af Oracle 10g Release 2 database

FairSSL Fair priser fair support

Installation Aesiras 2009

SW6 SAI. Services 1: (Fil) service admin torsdag 7/4 05

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Produktspecifikationer Private Cloud Version 2.7

Installationsguide til SAP Business One 2005 SP1 (SBO 2005)

Velkommen på kursus hos Microworld

Logning. V/ Hans Kennet Larsen

BOULEVARDEN 19E 7100 VEJLE LERSØ PARKALLE KØBENHAVN Ø TLF Unik Bolig 4 Opdateringskontrol 4.7.0

Views etc. Databaser

Installationsguide IBM Tivoli Storage Manager for Databases Data Protection for Microsoft SQL Server

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Database optimering - Indeks

NewAngle Software ApS. Quick Guide. til. Version 1 Aug NewAngle Software

Opsætning af MobilePBX med Kalenderdatabase

Dansk Ride Forbund Stævnesystem 2 Installationsvejledning

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Modul 16, Word 5 Felter, tabeller og breve

OpenTele Server Performance Test Rapport

Skriftlig opgave. Designtanker i database-nære systemer

Denne vejledning er optimeret til Windows XP, men kan også bruges til de andre Windows styresystemer.

Installation af Elektronisk APV på flere PC er

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

FairSSL Fair priser fair support

DOtAB. Brugervejledning

Server, storage og backup as a Service

Acronis et stærkt værktøj til backup. Af Hanne B. Stegemüller 6. juni 2015

Safe Work Space service beskrivelse. Microsoft Windows version. Version (Maj 2018)

Indholdsfortegnelse. Installation

Database programmerings tips

Punkter som ikke synes relevante for det givne projekt besvares med: ikke relevant

IBM Storage-virtualisering

Installation og Drift. Aplanner for Windows Systemer Version

ALM / QualityCenter 11 Opgradering

Produktspecifikationer Private Cloud Version 2.5

Introduktion til OPC Access

Lageradministration Paging og segmentering

Projekt: VAX NemHandel 4.0

Produktspecifikationer Private Cloud Version 2.6

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

KIH Database. Systemdokumentation for KIH Databasen. 1. maj Side 1 af 13

Backuppolitik i Statens It s standarddriftsplatform. Aftalekompleksets bilag 11 Statens It s standarddriftsplatform Underbilag C

Gem dine dokumenter i BON s Content Management System (CMS)

Hosted services Pharmakon A/S 12. februar 2016

Umbraco installationsvejledning

SOSIGW. - Driftsvejledning for SOSIGW 1.0. Indeks

Database Implementering

\ \ Computerens Anatomi / /

FairSSL Fair priser fair support

OPRETTELSE AF EXCHANGE

Installation af kalibreringsprogrammet. (BDE versionen)

Tagwall med Php & MySQL

Håndbog Til CPR services. Bilag 10 Opsætning af CPR klienten til understøttelse af forskellige installationstyper

Hjælpeprogrammet Setup (Opsætning)

Oprettelse af Titelblok i Capture og Capture CIS

Sikker Drift. Inventio.IT s Sikker Drift sikrer proaktivt driften af dine medarbejders arbejdsstationer og virksomhedens IT.

Sikker Drift. Inventio.IT s Sikker Drift sikrer proaktivt driften af dine medarbejders arbejdsstationer og virksomhedens IT.

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

Installation af DATABOKS online backup manager

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret

Konkrete anvisninger på en sikker og ansvarlig cloudinfrastruktur. v/jørgen Smed og Erik Borch Olsen, Komplex it

Sortering fra A-Z. Henrik Dorf Chefkonsulent SAS Institute

MODERNISERINGSSTYRELSEN ØSLDV WINDOWS SERVICE DOKUMENTATION, INSTALLATION OG KONFIGURERING AF ØSLDV/RAY WINDOWSSERVICE

GIS: Anbefalinger og performance (NS )

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet.

Installation og Drift. Aplanner for Windows Systemer Version 8.15

Installationsvejledning til LMeSmartClient

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Gmail Lær det selv! Valdemar Bonde

Implementeringsvejledning til FKG-datamodel version 2.5 for MS SQL Server og ArcGIS

Java web applikationer med Tomcat

Database for udviklere. Jan Lund Madsen PBS10107

Vejledning til Teknisk opsætning

Databasesystemer. IT Universitetet i København 16. januar 2006

Dokumentering af umbraco artikeleksport:

Velkommen til OPEN Storage

Skrevet af Leif Pedersen Denne vejledning beskriver hvilke ting du skal være opmærksom på i forbindelse med backup fra ipad.

Data Warehouse Knowledge is Power - Sir Francis Bacon -

Transkript:

Database "opbygning" Dette områder falder mest under en DBA's ansvarsområde. Det kan sagtens tænkes at en database udvikler i nogle situationer vil blive nød til at oprette produktions og test) databaser, og derfor vil det være områder en udvikler kan komme i berøring med. De følgende paragrafer er mest for at give et overblik da det hurtigt kan gå hen og blive et meget komplekst og abstrakt område for en udvikler. Disse oplysninger er også specifikke til SQL Server 2005 og 2008. Jeg vil dog antage at andre relationelle database systemer har tilsvarende mekanismer og opbygning. Filer data) SQL Server består af flere filer. Der vil altid være mindst en datafil og en transaktionslog fil, men flere kan eksisterer. Datafiler er som navnet indikerer det sted hvor en databases data persisteres. Disse består af 1 primær datafil normalt.mdf) og nul til flere sekundære database filer normalt.ndf). Den primære datafil's opgave er blandt andet at kontrollere og administrere de sekundære filer ud over opbevaring af data. Sekundære datafiler benyttes kun til opbevaring af data. Der ud over findes mindst en log fil, hvilket jeg kommer ind på senere. Hvorfor så benytte multiple filer? Der er en række årsager til hvorfor der kan bør) benyttes flere data filer end blot den ene som oprettes som standard. En årsag er med hensyn til backup administration. Fordi man kan backup/restore på fil niveau giver det en fordel med store databaser at man kan nøjes med at arbejde med en fil frem for hele databasen. Samt kan man gøre sine data filer mindre så der hurtigere og nemmere kan køres en backup/restore. Så frem for at have en 20GB data fil, kan man have 4 på 5 GB der gør det nemmere at tage den backup og hurtigere at restore den igen. Der er ikke nogen performance fordel i flere filer på samme drev, ud over de fordele det kan give ved backup/restore. En anden årsag er at man ønsker sin database spredt ud over flere fysiske drev. Dette kan have performance fordele, fordi data der ofte bruges kan deles ud over flere diske og grupperes med data der bruges mindre. Fil håndtering Vurderinger der også kommer ind i overvejelserne når man arbejder med flere filer, er størrelsen på filer, må filerne vokse og hvis ja, hvor meget. Store filer der vokser med en fast procent sats kan give performance problemer mens den vokser.

Eksempelvis en 10 GB fil der har tilladelse til at vokse med 10% vil så vokse med 1 GB når der er brug for det hvilket kunne være ved indsættelse af en ny række. Er der plads på drevet? Gør det noget at SQL Server brugere tid og ressourcer på det? Rammer det ind i noget kritisk kørelse. Tilsvarende kan en fil sættes til at "mindskes" auto shrink). Og igen er de fleste af de samme overvejelser relevante fordi det kræver ressourcer. Hver fil vil også benytte sin egen tråd i SQL Server, så derfor er dette også en ressource man bør overveje da det betyder øget hukommelsesforbrug. Som eksempel har jeg her oprettet en database med 2 filer: CREATE DATABASE [ASH_TestFilePlacement] ON PRIMARY NAME = N'ASH_TestFilePlacement', FILENAME = N'D:\Databaser\MSSQL10.MSSQLSERVER\MSSQL\DATA\ASH_TestFilePlacement.mdf', ), NAME = N'ASH_TestFileSeconday', FILENAME = N'C:\ASH_Test\ASH_TestFileSeconday.ndf', ) LOG ON NAME = N'ASH_TestFilePlacement_log', FILENAME = N'D:\Databaser\MSSQL10.MSSQLSERVER\MSSQL\DATA\ASH_TestFilePlacement_log.ldf ', SIZE = 1024KB, MAXSIZE = 2048GB, FILEGROWTH = 10% ) GO Efter at have indsat 750.000 rækker i en table bestående af ID/Value så er filerne sådan her: Til sammenligning, hvis jeg kun havde en data fil:

Filgrupper data) En database vil derudover bestå af 1 eller flere filgrupper, der er en logisk gruppering af de individuelle datafiler i strukturer. En filgruppe vil altid være den primære filgruppe som benyttes som default, med mindre andet specificeres på fil niveau. Hvorfor benytte filgrupper. En af de primære grunde til man benytter filgrupper er at det gøre det nemmere at administrere hvis man ønsker at dele sin database ud over flere fysiske medier. Så kan man tilknytte sine datafiler til disse forskellige fil grupper. En fordel er at man herved også kan bestemme hvilke tabeller ligger i hvilke filgrupper, og dermed selv har kontrol over dele af I/O processen. Eksempelvis hvis man har 2 tabeller der bruges meget og 2 der bruges lidt mindre, så kan der være en fordel i at dele I/O ud således der er en tabel der bruges meget på to forskellige diske. En tommelfinger regel som jeg sjældent selv benytter er at efter databasen er oprettet, så lave en sekundær datafil og sæt den som default. Så vil alle data og data strukturer gemmes i den fil mens den primære fil kun vil skulle håndterer databasens struktur. Eksempelvis CREATE DATABASE [ASH_TestFilegroup] ON PRIMARY NAME = N'ASH_TestFilegroup', FILENAME = N'D:\Databaser\MSSQL10.MSSQLSERVER\MSSQL\DATA\ASH_TestFilegroup.mdf', ), FILEGROUP [Secondary] DEFAULT NAME = N'SecondaryFile', FILENAME = N'C:\ASH_Test\SecondaryFile.ndf', ), FILEGROUP [Tertiary] NAME = N'ThirdFile', FILENAME = N'C:\ASH_Test\ThirdFile.ndf', ) LOG ON NAME = N'ASH_TestFilegroup_log', FILENAME = N'D:\Databaser\MSSQL10.MSSQLSERVER\MSSQL\DATA\ASH_TestFilegroup_log.ldf', SIZE = 1024KB, MAXSIZE = 2048GB, FILEGROWTH = 10% ) GO

Jeg har markeret Secondary filgruppen som default, så hvis jeg ikke specificerer andet, så vil alle data blive oprettet i denne filgruppe benyttende de underliggende filer. Men nu kan jeg specificerer hvilket drev og filgruppe de forskellige tabeller bliver placeret i og derved selv påvirke I/O performance. CREATE TABLE TABLE1 ID INT, VALUE NVARCHARMAX)) ON Secondary CREATE TABLE TABLE2 ID INT, VALUE NVARCHARMAX)) ON Tertiary Transaktions log Transaktions loggen normalt.ldf) er den struktur hvor SQL Server gemme ændringer foretaget i data som navnet indikerer via transaktioner. Her menes ikke kun transaktioner som "BEGIN TRANSACTION" men kørsler der modificerer data insert/delete/update). Transaktion loggen skrives til løbende for at SQL Server kan garanterer data konsistens og gør at selv de fleste ændringer til data i memory kan genskabes ved nedbrud. Essentielt set vil der blive skrevet til transaktions loggen før en "commit" er blevet sendt til klient processen for at kunne garanterer denne konsistens. En feature der er forvirrende for mange med hensyn til transaktions loggen er at den ikke automatisk gøres mindre når der tages backup, hvilket gør at den vokser voldsomt i pladsbrug hvis der er mange data modificeringer. Eksempler fra min egen verden er at jeg har set databaser på ~200 300 MB have 5GB og større transaktions log filer. Dette er normalt noget man bør håndterer i sin backup strategi, hvilket igen gør at vi falder ind i DBA området. Backup/restore er et meget stort område med mange overvejelser. Det er også transaktions loggen der gør differentiel backup /restore mulig mellem fulde backup, fordi man der kun tager backup af dataændringer. Fordi der skrives kontinuerligt og ofte til transaktions loggen, så er disk I/O en overvejelse hvis performance er et højt krav. Der er ingen grund til den ligges på samme drev som data filerne således disse skal konkurrerer over I/O tid. Og som ved data filer vil transaktions loggen også kunne vokse, og igen fordi der skrives ofte til denne fil, så kan det give problemer hvis en 5GB log fil skal vokse med 10% fordi det kan betyde at andre transaktioner må venter og eventuelt time ud. Derfor hvis man arbejder på fil niveau med en database, så bør der være noget omtanke bag håndteringen af transaktions loggen. Og hvis man står for backup/restore er det vigtigt at huske størrelses problemet med loggen. Pages På "nederste" niveau er databasen inddelt i "pages" som er enheder på 8KB stykket. Det er disse der er komponenterne internt i filerne. Der findes mange typer af index pages, data pages, hvilke pages er allokeret, oplysninger om fri plads, hvilke pages er ændret og meget andet.

Det er områder som er dybt inde i database opbygningen og meget komplekse, og jeg vil henvise til litteratur hvis man er interesseret Eks. Inside Microsoft SQL Server 2005: The Storage Engine). En ting der dog er nyttigt viden omkring pages er at man sågar kan backup/restore på page niveau. Det er dog sjældent en brugt feature med mindre ens database er meget stor der gør fil backup/restore problematisk enten pga oppetid eller størrelse. Litterateur for dem der er interesseret blandt andet): Inside Microsoft SQL Server 2005: The Storage Engine Microsoft SQL Server 2005 Administrator's Companion http://msdn.microsoft.com/en us/library/ms179316.aspx Files and Filegroups Architecture) http://msdn.microsoft.com/en us/library/ms179355.aspx Transaction Log Physical Architecture)