Konsistente Datensicherung SQL Server 2005 Express

dermoebelprofi

Aktives Mitglied
2. Juni 2008
13
0
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:
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
 

dermoebelprofi

Aktives Mitglied
2. Juni 2008
13
0
Danke für den Link!

Aber hier weiß ich ja leider auch nicht ob ich wirklich einen konsistenten Datenbankstand habe?

Von der Art der Sicherung nehmen sich die beiden Methoden nicht viel, ich sichere halt zusätzlich noch die Systemdatenbanken mit, was im Fehlerfall kein Nachteil sein muss.

Was mir wichtig ist, ist dass ich sicherstellen kann dass zum Zeitpunkt der Sicherung keine Transaktion in die DB läuft.
 

Dealux-GmbH

Sehr aktives Mitglied
5. März 2007
8.676
7
Düsseldorf
Einfach die Automatische Sicherung immer nachts um 03:23.42 Uhr machen, da wird wohl keiner an der WaWi arbeiten oder? Also wir hatten bisher noch nie Probleme mit Backups, mit der Methode des Links.
 

dermoebelprofi

Aktives Mitglied
2. Juni 2008
13
0
:wink: klar, dass werde ich dann wohl auch machen!

Dachte nur vielleicht gibt es so eine Möglichkeit auch im SQL Server, ich kenne diese Funktion aus der Oracle-DB, ist einfach noch mal auf Nummer Sicher beim Backup.

Aber danke für die Hilfe!
Ingo
 

Dealux-GmbH

Sehr aktives Mitglied
5. März 2007
8.676
7
Düsseldorf
Hab mich noch nicht mit MSSQL-DBs genauer auseinander gesetzt. Aber habe mal auf ner Internetseite was gelesen, was ich ziemlich passend zu diesem Thema fand:

Datenbank sind wie Leberwurst und Politik. Weiß man ein mal wie es gemacht wird, wünscht man sich es besser doch nicht zu wissen. ;)
 

dermoebelprofi

Aktives Mitglied
2. Juni 2008
13
0
Irgendwie doch sehr treffend :p

Eigentlich sind ja alle DBs sehr ähnlich, die Oberfläche für die Administration ist immer etwas anders und die Verarbeitung unterscheidet sich etwas, aber eigentlich muss man im laufenden Betrieb sehr wenig administrieren.

Ich hab schon viel mit DBs gearbeitet, vor allem aber mit dem SQL Server 2005 und MySQL, allerdings gibt es in der "Vollversion" einen Wartungsplan, der nimmt einem viel Scriptarbeit ab...dafür kostet es aber auch gutes Geld :wink:

Ich denke es sollte mit dem Backup schon klappen, die Rücksicherungstests waren ja auch erfolgreich, aber es war für mich einfach interessant zu wissen ob diese Möglichkeit besteht!

Also vielen Dank und frohes Schaffen!
Ingo
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Was passiert wenn ich Amazon Aufträge, Lieferscheine und Rechnungen per SQL aus der WAWI-Datenbank lösche? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Installation MS SQL 2022 Express: Fehler beim Warten auf das Wiederherstellungshandle des Datenbankmoduls Installation von JTL-Wawi 9
SQL Abfrage bei Workflow Datei Schreibn JTL-Wawi 1.9 1
Neu SQL-Abfrage von im Onlineshop aktiven Artikeln JTL Ameise - Eigene Exporte 2
Neu Biete: Windows Server optimiert für JTL und MS SQL Standard Lizenz (8 Monate alt, 42% unter Neupreis) Dienstleistung, Jobs und Ähnliches 0
Gespeicherte Filter (Lagerbewertung) nach SQL Umzug nicht mehr abrufbar JTL-Wawi 1.9 0
Neu Umzug von SQL 2016 Express auf SQL 2019 Standard mit Wawi 1.8.12.2 Installation von JTL-Wawi 10
Neu Update für Shopvote 1.1.0 führt zu SQL-Fehler Plugins für JTL-Shop 5
Neu SQL: Positionen eines Auftrags sind auf welchem Lieferschein gelandet? Eigene Übersichten in der JTL-Wawi 7
Neu Backup einrichten, habe die SQL Anmeldedaten verlegt Installation von JTL-Wawi 1
Sql Abfrage VK Preise pro Kundengruppe für Grafana JTL-Wawi 1.8 9
Neu SQL Query zum Bilder löschen Arbeitsabläufe in JTL-Wawi 3
Neu List & Label - Eigene SQL-Abfrage als Grundlage für Tabelle im Berichtscontainer? User helfen Usern - Fragen zu JTL-Wawi 10
Neu SQL Server kein Mandant auswählbar und Dienst lässt sich nicht starten Installation von JTL-Wawi 2
Neu Ameise-Vorlage per SQL abrufen und Daten als Ergebnis erhalten JTL Ameise - Eigene Exporte 1
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Neu SQL Vartable für Reservierte Artikel gesucht User helfen Usern - Fragen zu JTL-Wawi 2
Neu Innerhalb einer Variable -SQL Abfrage- das Wort "fett" schreiben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu SQL Eigener Export - Eigene Felder im Auftrag User helfen Usern - Fragen zu JTL-Wawi 7

Ähnliche Themen