kategória | ||||||||||
|
||||||||||
|
||
Adatbázisok kezelése
Rendszer adatbázisok
Az SQL Serverben négy ún. rendszer adatbázis kerül telepítésre.
Master: A master adatbázis tárol az SQL Server működésével kapcsolatos minden rendszer szintű információt, így gyakorlatilag az SQL Server lelke. Itt tárolódnak a felhasználói fiókok, a rendszer konfigurációs beállításai, minden más adatbázis összes paramétere, pl. az őket tároló elsődleges adatfájlok pontos helye.
Tempdb: Ez az adatbázis a helye az átmeneti tábláknak és tárolt eljárásoknak. A lekérdezések során generálódó munkatáblák is itt jönnek létre. Minden SQL Server induláskor újra létrejön. Ez az adatbázis is képes növelni méretét, ha 515f56f szükséges, de újrainduláskor mindig az eredeti méretben jön létre.
Model: Ez egy mintaadatbázis, új adatbázis létrehozásakor kap szerepet, az új adatbázis egyszerűen ennek a másolata lesz. Fontos, hogy ez az adatbázis mindig létezzen, hiszen a tempdb-nek minden induláskor elő kell állnia, ehhez pedig szükség van a model mintára.
Msdb: Ezt az adatbázist az SQL Server Agent használja, ebben tárolódnak az ütemezett feladatok.
Adatbázis létrehozása
Az adatbázis létrehozása előtt el kell dönteni az adatbázis nevét, a tulajdonosát, a méretét és azoknak a fájloknak a nevét és helyét, ahol majd az adatbázis tárolódni fog. Adatbázis létrehozására többféle mód is kínálkozik, mi ebből kettőt fogunk megmutatni.
Enterprise Manager:
Kattintsunk az SQL Server Group-ra, majd az SQL Server nevére.
Jobb oldali gombbal kattintsunk a Databases-re, majd New Database...
Töltsük ki az adatbázis neve mezőt. Ekkor létrejön az elsődleges adatfájl és a tranzakciós napló, ha pl. MyDB az adatbázis neve, egy MyDB_Data.mdf és egy MyDB_Log.ldf nevű fájl jön létre. Amikor egy adatbázis létrejön, nem történik más, mint hogy másolat készül a model nevű adatbázisról, ezért a kezdeti mérete is ugyanakkora lesz. Az elsődleges adatfájl ekkor még csak rendszertáblákat tartalmaz.
Az elsődleges adatfájl paramétereinek megváltoztatásához a General fülön, a tranzakciós napló fájl paramétereinek változtatásához a Transaction Log fülön kell matatnunk. Mindkét fülön szerepelnek a File name, a Location, Initial Size oszlopok, ide beírhatjuk a fájl nevét, kijelölhetjük a pontos helyét a meghatón és meghatározhatjuk, hogy milyen méretű legyen a fájl.
Ha az adatbázis növekedése során eléri az őt tároló fájl méretét, az SQL Server automatikusan megnöveli a fájl méretét. Hogy miképpen, azt mi állíthatjuk be. Lehetőségünk van a növekedést megabájtokban (In megabytes) vagy százalékban (By percent) megadni. Ha nem akarjuk, hogy a fájl mérete magától változzon, ne legyen kiválasztva az Automatically grow file. Megadhatunk egy maximális fájl méretet is (Restrict filgrowth) vagy engedhetjük, hogy a növekedés szükség esetén mindig megtörténjen (Unrestricted filegrowth).
Ugyanezek a kapcsolók természetesen a tranzakciós naplóra is igazak.
T-SQL:
(A T-SQL az SQL Server 7.0 programozására szolgáló kiszolgáló programnyelv. Részletesen a 6. fejezetben kerül bemutatásra.)
Az adatbázis létrehozásához a master adatbázisban kell lennünk. Az adatbázis létrehozásakor azzal egyidejűleg a tranzakciós napló is létrejön. Adatbázis létrehozása a CREATE DATABASE utasítással történik:
CREATE DATABASE adatbázisnév
[ ON [PRIMARY]
[ fájl [,...n] ]
[ LOG ON ]
Ahol a fájl ::=
( [
NAME = logikai fájlnév, ]
FILENAME = 'operációs rendszer fájlnév'
[, SIZE = méret]
[, MAXSIZE = ]
[, FILEGROWTH = növekedés] ) [,...n]
Az Enterprise Manager-rel létrehozott adatbázis megbeszélése után a parancs paraméterei már beszédesek. Példaképpen hozzunk létre egy adatbázist Sales néven. A fájlok legyenek az mssql7\data könyvtárban. Az elsődleges fájl kezdeti mérete legyen 10 MB, 5 MB-onként növekedjen, de 50 MB-nál ne tovább. Ugyanezek a paraméterek a tranzakciós napló esetében legyenek 5 MB, 5 MB és 25 MB. A parancs ekkor a következő:
USE master
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'c:\mssql7\data\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
FILENAME = 'c:\mssql7\data\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO
Nézzünk még néhány példát!
USE master
GO
CREATE DATABASE Products
ON
( NAME = prods_dat,
FILENAME = 'c:\mssql7\data\prods.mdf',
SIZE = 4,
MAXSIZE = 10,
FILEGROWTH = 1 )
GO
Products néven hoztunk létre adatbázist. Mivel csak az elsődleges adatfájlt specifikáltuk, egy 1 MB-os tranzakciós napló jön létre automatikusan. A size paraméternél nem írtunk MB-ot vagy KB-ot, a MB az alapértelmezett. A tranzakciós naplóra nincs méretkorlátozás.
CREATE DATABASE mytest
Említettük, hogy az adatbázis létrehozása a model nevű rendszeradatbázis lemásolását jelenti. Mivel itt nem adtunk meg semmilyen paramétert, a mytest nevű adatbázis minden tekintetben meg fog egyezni a model adatbázissal.
USE master
GO
CREATE DATABASE Products2
ON
( NAME = prods2_dat,
FILENAME = 'c:\mssql7\data\prods2.mdf' )
GO
Mivel csak a neveket határoztuk meg a létrejövő adatbázis mérete a modal adatbázis méretével fog megegyezni. A tranzakciós napló automatikusan létrejön, mérete ilyenkor mindig negyede az adatbázis méretének, de minimum 512 KB. Mivel MAXSIZE paraméter nincs megadva, az állományok igény szerint növekedhetnek.
Adatbázis módosítása és törlése
Előfordul, hogy az adatmennyiség növekedése miatt szeretnénk megnövelni az adatbázis méretét. Ezt megtehetjük az Enterprise Manager-rel vagy az ALTER DATABASE utasítással. Három dolgot tehetünk. Automatikus növekedést állítunk be, ahogy az előző szakaszban leírtuk. Megnöveljük az aktuális adatfájl vagy naplófájl méretét, vagy másodlagos fájlokat hozunk létre.
Az ALTER DATABASE utasítás így néz ki:
ALTER DATABASE database
ahol a fájl ::=
(NAME = logikai fájlnév
[, FILENAME = ' operációs rendszer fájlnév ' ]
[, SIZE = méret]
[, MAXSIZE = ]
[, FILEGROWTH = növekedés] )
A következő példában létrehozunk egy adatbázist, aztán hozzáadunk még egy adatfájlt:
USE master
GO
CREATE DATABASE Test1 ON
NAME = Test1dat1,
FILENAME = 'c:\mssql7\data\t1dat1.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
GO
ALTER DATABASE Test1
ADD FILE
NAME = Test1dat2,
FILENAME = 'c:\mssql7\data\t1dat2.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
GO
Ha egy adatbázis nagyobb, mint amekkorára szükség van, méretét csökkenthetjük. Ahogy a méret növelésénél, itt is lehetőség van kézi és automatikus méretváltoztatásra. Egy adatbázis méretét maximum az eredeti méretére csökkenthetjük vissza! Az Enterprise Manager-ben álljunk az adatbázisunkra, majd jobb kattintás után válasszuk az All Tasks/Shrink Database... parancsot. Állítsuk be a kívánt méretcsökkenést és kész is vagyunk. Az automatikus méretcsökkenés beállításához az adatbázison a Properties-re majd az Options fülre kattintsunk.
A megfelelő T-SQL utasítás a következő:
DBCC SHRINKDATABASE
( database_name [, target_percent]
)
Egyetlen fájl méretcsökkentésére is lehetőség van, ekkor a DBCC SHRINKFILE utasítást kell használnunk.
Számtalan beállítási lehetőség van, amivel szabályozni tudjuk egy adatbázis működési tulajdonságait. Ehhez az Enterprise Managerben az adatbázis Property/Options részébe kell ellátogatnunk.
Ha egy adatbázisra nincs többé szükség, ki kell törölnünk. Az Enterprise Managerben jobb egérgombbal kattintva az adatbázisra válasszuk a Delete parancsot. Az ennek megfelelő T-SQL utasítás a következő:
DROP DATABASE database_name
Találat: 1524