SQLServer 3. téma Adatbázis karbantartása Server adatbázisok Tartalmazott adatbázisok: Master: rendszer metaadatok Msdb: Agent metaadatok (ütemezéshez) Tempdb: ideiglenes munkaadatok Mssqlsystemresource: DBMS rendszerkód Model: felhasználói DB-k üres mintája Northwind: példa DB Pubs: példa DB Felhasználói DB-k 1
Adatbázis felépítés adatbázis schema filegroup filegroup logfile fulltext view table file file file file extent extent Adatbázisok állományai - DB adatfileok: - XXX.MDF : primary datafile (ROWS type) - XXXn. : secondary datafile (ROWS type) - XXX.LDF : logfile (LOG type) - YYY. : fulltext (FULLTEXT type) - adatfile státusza: - ONLINE - OFFLINE - RECOVERING - RESTORING - DEFUNCT - Adatbázis állományok nyilvántartása: - SYS.DATABASE_FILES 2
Adatbázis létrehozása Parancsmód: CREATE DATABASE XXX ON PRIMARY (file-mdf), (file1-ndf),, LOG ON (file-log) File leíró: NAME = db_név, FILENAME = os_név, SIZE = induló méret, MAXSIZE = max. méret, FILEGROWTH = növekedési ráta Filegroup kezelés Adatfileok logikai egysége Karbantartási egység (paraméterek, mentés, státusz beálltás...) Csak adatfileokat (ROWS) tartalmaz Primary filegroup: mdf-et tartalmazza Default filegroup User-defined filegroup 3
Adatbázis kezelés Az állományok filegroup-ba rendelése CREATE DATABASE XXX ON PRIMARY (file-mdf), (file1-ndf),, FILEGROUP F1 (file2-ndf), (file3-ndf), FILEGROUP F2 (file4-ndf), (file4-ndf), LOG ON (file-log) Adatbázis kezelés Új filegroup hozzáadása az adatbázishoz ADD FILEGROUP YY; ADD FILE (NAME=xx,FILENAME=..,SIZE=.., MAXSIZE=, FILEGROWTH=..),.. TO FILEGROUP YY; 4
Adatbázis kezelés Egy tábla megadott filegroup-hoz rendelése CREATE TABLE nev (mezők..) ON filegroup_nev DEFAULT; Séma: táblák, view-k együttese: CREATE SCHEMA nev AUTHORIZATION user CREATE TABLE CRAETE VIEW GRANT ; Adatbázis kezelés Egy filegroup default filegroup-pá tétele MODIFY FILEGROUP YY DEFAULT; Egy filegroup csak módosíthatóságának beállítása MODIFY FILEGROUP YY READONLY READWRITE; 5
Egy adatfile megszüntetése Adatbázis kezelés REMOVE FILE yyy; Egy filegroup megszüntetése REMOVE FILEGROUP YY; Adatbázis kezelés Egy naplófile hozzáadása az adatbázishoz ADD LOG FILE (NAME=.., FILENAME=.., SIZE=.., MAXSIZE=..); Az adatbázis paramétereinek megtekintése sp_helpdb @dbname=xxx 6
Adatfileok karbantartása - Helyfelszabadítás: - DBCC SHRINKFILE file mód - DBCC SHRINKDATABASE db mód - mód: NOTRUNCATE, TRUNCATEONLY - ALTER DATABASE db - ADD FILE - MODIFY FILE - REMOVE FILE - SET mód (READ_ONLY) - DBCC CHECKDB db Adatfileok karbantartása Adatfile szerkezete: FileHeader PageFreeSpace GAM SGAM IndexAllocationMap DCM BCM Adat extent Extent: 8 egymáskövető lemezpage (64Kb) Extent típusok: uniform vagy mixed (egy vagy több objektum) Az objektum létrehozáskor mixed extentbe kerül 7
Adatfileok karbantartása Extent menedzsment elemei: GAM page: extentek foglaltsági bittérképe minden extent benne van (1 bit,0: foglalt,1: szabad) 1 GAM page 4GB adatteret tud lefedni SGAM page: a szabad mixed típusú extentek listája ez is bittérkép akkor szabad az extent, ha legalább 1 page szabad benne Extent allokálás algoritmusa : GAM-ban : 0 és SGAM-ban: 1 ha nincs GAM-ban: 1 ha nincs file full Adatfileok karbantartása Extent allokációs tábla: Egy objektum (pl. tábla) több extenthez is tartozhat Allocation unit: egy objektumhoz allokált egységek együttese Minden objektumnak egy saját IAM bitmapje van IAM szerkezete: 1 bit jelzi, hogy az adott objektum az adott extenhez allokált-e 8
Adatfileok karbantartása Az adatok módosítását érintő bitmap táblák DCM, Differential Changed Map: azon extentek listája, melyek megváltoztak az utólsó mentés óta BCM, Bulk Changed Map: azon extentek listája, melyek részt vettek egy bulk-copy módosításban Bulk-copy: minimális naplózás Adatbázis ellenőrzés Adatbázis ellenőrzés: konzisztencia, objektumok épsége DBCC: Database Console Command DBCC CHECKDB xxxx REPAIR_REBUILD NOINDEX DBCC CHECKALLOC xxxx DBCC CHECKTABLE xxxx DBCC CHECKCATALOG xxx 9
Adatbázis működési módok Hozzéférés jellege: SINGLE USER RESTRICTED USER MULTI USER Adatművelet: READ WRITE READ ONLY Elérése: ONLINE OFFLINE EMERGENCY Adatbázis működési módok További kezelhető paraméterek: CURSOR kezelés AUTO_SHRINK SQL dialektus DB Recovery mód DB Mirroring mód Service Broker (ENABLE_BROKER) Snapshot kezelés 10
Kapcsolt szerverek kezelése procedure Kapcsolat módja: - ad-hoc: OPENROWSET() - permanens: LINKED SERVER (OLE-DB alapú) sp_addlinkedserver helyinév, OLE DB Provider, adatforrás Tanácsok Upgrade-hez - Az alapállományok mentése - Adatbázis konzisztencia ellenőrzés (DBCC CHECKDB) - Rendszeradatbázisoknak hely biztosítása (AUTOGROWTH) - LOGIN adatok átmásolása - STARTUP eljárások leállítása - Replikáció leállítása - Alkalmazások leálltása - SERVER regisztrálása az Upgrade után - Statisztikák frissítése (DBCC UPDATEUSAGE) - SERVER konfigurálása 11
Korábbi verziók frissítése Az adatbázis migráció lehetőségei: Detach / Attach Adatbázis leállás, nincs másolat Backup / Restore Tömörebb, másolatként szolgál Copy Database Wizard Testreszabási lehetőség SQL script Database Mail A DB MAIL komponens a felhasználóknak küld üzeneteket Database Mail komponensei: - Konfigurációkezelő modul: - Profiles: accountok listája - Account: elérési adatok (SMTP server, mail-cím,..) - Üzenetkezelő modul - Levél küldő modul (külső:databasemail90.exe) - Naplózó modul 12