dermoebelprofi
Aktives Mitglied
Hallo,
ich bin gerade in den Vorbereitungen für die Live-Schaltung meiner Wawi in Verbindung mit dem JTL- Shop 2.
Da es im SQL Server 2005 Express leider keinen Wartungplan gibt habe ich mir ein Script für die Sicherung der Datenbanken organisiert dieses kann ich über die geplanten Tasks auch sehr schön laufen lassen und erhalte nach Fertigstellung eine E-Mail mit dem Log-File. Soweit so gut...
Mein einzige Frage ist ob die DB zum Zeitpunkt der Sicherung überhaupt konsistent ist?
Gibt es eine Art "Wartungsmodus" oder ähnliches in den man den SQL Server versetzen kann, damit die Änderungen während des Backups gepuffert werden und anschließend wieder in die Datenbank laufen. Sollte während der Sicherung z.B. ein Datensätz angelegt oder geändert werden wäre meine Datenbank nicht wirklich konsistent.
Hier einmal der Code des Backup-Scripts:
Hoffe es kann mir jemand eine Auskunft dazu geben, ich würde mich sehr drüber freuen!
Vielen Dank für die Hilfe
Ingo
ich bin gerade in den Vorbereitungen für die Live-Schaltung meiner Wawi in Verbindung mit dem JTL- Shop 2.
Da es im SQL Server 2005 Express leider keinen Wartungplan gibt habe ich mir ein Script für die Sicherung der Datenbanken organisiert dieses kann ich über die geplanten Tasks auch sehr schön laufen lassen und erhalte nach Fertigstellung eine E-Mail mit dem Log-File. Soweit so gut...
Mein einzige Frage ist ob die DB zum Zeitpunkt der Sicherung überhaupt konsistent ist?
Gibt es eine Art "Wartungsmodus" oder ähnliches in den man den SQL Server versetzen kann, damit die Änderungen während des Backups gepuffert werden und anschließend wieder in die Datenbank laufen. Sollte während der Sicherung z.B. ein Datensätz angelegt oder geändert werden wäre meine Datenbank nicht wirklich konsistent.
Hier einmal der Code des Backup-Scripts:
Code:
DECLARE @dateString CHAR(12), @dayStr CHAR(2), @monthStr CHAR(2), @hourStr CHAR(2), @minStr CHAR(2)
--month variable
IF (SELECT LEN(CAST(MONTH(GETDATE()) AS CHAR(2))))=2
SET @monthSTR=CAST(MONTH(GETDATE()) AS CHAR(2))
ELSE
SET @monthSTR= '0' + CAST(MONTH(GETDATE()) AS CHAR(2))
--day variable
IF (SELECT LEN(CAST(DAY(GETDATE()) AS CHAR(2))))=2
SET @daySTR=CAST(DAY(GETDATE()) AS CHAR(2))
ELSE
SET @daySTR='0' + CAST(DAY(GETDATE()) AS CHAR(2))
--hour variable
IF (SELECT LEN(DATEPART(hh, GETDATE())))=2
SET @hourStr=CAST(DATEPART(hh, GETDATE()) AS CHAR(2))
ELSE
SET @hourStr= '0' + CAST(DATEPART(hh, GETDATE()) AS CHAR(2))
--minute variable
IF (SELECT LEN(DATEPART(mi, GETDATE())))=2
SET @minStr=CAST(DATEPART(mi, GETDATE()) AS CHAR(2))
ELSE
SET @minStr= '0' + CAST(DATEPART(mi, GETDATE()) AS CHAR(2))
--name variable based on time stamp
SET @dateString=CAST(YEAR(GETDATE()) AS CHAR(4)) + @monthStr + @dayStr + @hourStr + @minStr
--=================================================================
DECLARE @IDENT INT, @sql VARCHAR(1000), @DBNAME VARCHAR(200)
SELECT @IDENT=MIN(database_id) FROM SYS.DATABASES WHERE [database_id] > 0 AND NAME NOT IN ('TEMPDB')
WHILE @IDENT IS NOT NULL
BEGIN
SELECT @DBNAME = NAME FROM SYS.DATABASES WHERE database_id = @IDENT
/*Change disk location here as required*/
SELECT @SQL = 'BACKUP DATABASE '+@DBNAME+' TO DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\'+@DBNAME+'_db_' + @dateString +'.BAK'' WITH INIT'
EXEC (@SQL)
SELECT @IDENT=MIN(database_id) FROM SYS.DATABASES WHERE [database_id] > 0 AND database_id>@IDENT AND NAME NOT IN ('TEMPDB')
END
Hoffe es kann mir jemand eine Auskunft dazu geben, ich würde mich sehr drüber freuen!
Vielen Dank für die Hilfe
Ingo