Ugrás a tartalomra

2011-03-25

2

MS-SQL adatbázis ütemezett mentése

EIR, TRACK, PIR és egyéb adatbázisok mentése

“Ami az informatikában egy példányos, az nem létezik”
A rendszeres és automatizált mentésnek két egyszerű módját mutatja be a cikk, ugyanis alapvetően a Microsoft SQL (SQL2000-SQL2005-SQL2008) adatbázisok mentése két úton érhető el segédprogram használata nélkül.

A két módszer MS-SQL adatbázis mentése:

  • Osql (batch file-al)
  • NtBackup (grafikus felületen)
  • (Nem kerülnek bemutatásra  az SQL Backup Device használata, és külső backup programok sem.)

Nézzük ezeket sorban! (Az adatbázis mentése MS-SQL rendszergazdai feladat.)

OSQL – parancssori eszköz

Az osql.exe eszközzel lehetőségünk van arra, hogy T-SQL parancsokat, rendszer tárolt eljárásokat adjunk ki az SQL szervernek közvetlenül parancssori eszközből vagy script-ből. A megvalósítást az osql eszköz végzi. Az osql lehetőségei számosak, most csak a legegyszerűbb megoldást mutatom be.

Batch file tartalma (ez ütemezhető):

OSQL -E -S myserver\mysqlinstance < sqlbkp.sql

sqlbkp.sql file tartalma:

BACKUP DATABASE
[EIR_ADATBAZIS_NEVE]
TO
DISK = N’C:\sqlbackup\eirdb.bak'
WITH NOFORMAT, INIT,
NAME = N’EIR-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
exit

Készíthetünk olyan “sqlbkp-date.sql” scriptet is, ami hozzáteszi a filenévhez a dátumot, ezzel akár naponta is eltárolhatjuk az összes adatot. A script:

DECLARE @PATH VARCHAR(128)
DECLARE @DRIVER VARCHAR(128)
DECLARE @BAK VARCHAR(128)

SELECT @DRIVER =
-- Adja meg a biztonsági mentés helyét '' -ek között!
		'C:\Adatok\SQL Backup\EIR\EIR_'
-- ########################################
SELECT @PATH = (select CONVERT(NVARCHAR (24), GETDATE(), 112) +'_'+ CONVERT (NVARCHAR, DATENAME (HOUR, GETDATE())) + '_' +CONVERT (NVARCHAR, DATENAME (MINUTE, GETDATE())) + '_' + CONVERT (NVARCHAR, DATENAME (SECOND, GETDATE())) + '.bak')

BEGIN
SET @BAK = @DRIVER + @PATH
	BACKUP DATABASE
-- Adja meg a menteni kívánt adatbázis nevét!
		[EIR]
-- ########################################
		TO
		DISK = @BAK
		WITH NOFORMAT, INIT,
		NAME = N'EIR-Full Database Backup',
		SKIP, NOREWIND, NOUNLOAD, STATS = 10
END
GO
EXIT

NTBackup – grafikus eszköz

Lehetőségünk van arra, hogy file-okat, mappákat, vagy a teljes rendszert mentsük/visszaállítsuk. A grafikus felületen varázsló segíti a munkát. (A kötet árnyékmásolata is megoldható!)
Vannak a teljes mentés mellet egyéb lehetőségeink: pl.: különbözeti, növekményes mentés. A növekményes mentés javasolt, mert az csak akkor dolgozik, ha van változás, de lefut mindig. (Sajnos e-mailben nem tud értesít küldeni a mentés sikerességéről.)

Ennek használatát egy EEVR rendszergazdai képzésen mutattam be. Az EIRv5 rendszergazdai oktatás anyaga letöltető: Megtekintés ppt formátumban

Megjegyzések a jogosultságokkal kapcsolatban

Az OSQl használatával kapcsolatban fontos, hogy legyen joga az OSQL-nek ill. a futtató felhasználójának hozzáférni az adatbázishoz:
– Ehhez engedélyezni kell a tűzfalban (hardveres és szoftveres is) ill. az AD-ben és az SQL-ben a jogosultságokat

  • A tűzfalban: az alapértelmezetten 1433-as TCP PORT legyen nyitva annak a gépnek, amely bemegy arra a gépre, ahol az SQL fut.
  • A SQL-ben: A Surface Area Config-ban legyen BOTH az elérés az instance-hoz, (ez attól függ, mivel hivatkozunk (NamedPipe-al vagy IP-vel))
  • Az AD és az SQL kapcsolata:

Az alapkérdés: kinek a nevében fut az OSQL – ütemezésnél (szervízként futásnál) érdemes egy “osqlbkpusr”-t definiálni, aki mindig be van loggolva, amikor kell, mint bármelyik Windows BACKUP process-nél, ez ismert Windows rendszergazdai fogás.
Az OSQL-t futtató Windows Server user legyen SQL BACKUP jogosultságú user az SQL Server/Rootban, de legalább abban az /instance-ban, amiben a mentenő DB van.
Az OSQL-t futtaó az usernek legyen legalább local admin joga azon a szerveren, ahol fut az OSQL és ott is (AD) ahova a mentést teszi (- hogy biztosan tudja írni a file-t).

 

  1. Józsi
    Már 29 2011

    Hogy indítható az OSQL? És az NTBackup?
    (Kösz amúgy a cikket, lényegretörő és érthető.)

    Válasz
  2. Krisz
    Már 29 2011

    Az OSQL egyszerűen a futtatásba írt “cmd” parancssorból az “osql” paranccsal indul, a “-user” kapcsolóval.
    Tehát: “osql –“.

    Az NTBackup esetében a leggyorsabban a futtatásba gépelt “ntbackup” szócska, és Enter. (Természetesen a Kellékek – rendszer ágon is elérhető Windows Server 2003 alatt.)

    Válasz

Oszd meg velünk a véleményed! - Szólj hozzá!

(required)
(required)

Megjegyzés: HTML használható (max. egy url-el).Az e-mail címedet sohasem jelenítjük meg!

Értesítőt kérek a kommentekről RSS-ben