Archive:Microsoft SQL Server 2012/2014

From SEPsesam

Copyright © SEP AG 1999-2024. Alle Rechte vorbehalten.

Jede Form der Reproduktion der Inhalte dieses Benutzerhandbuches, ganz oder in Teilen, ist nur mit der ausdrücklichen schriftlichen Erlaubnis der SEP AG gestattet. Bei der Erstellung dieses Benutzerhandbuches wurde mit größtmöglicher Sorgfalt gearbeitet, um korrekte und fehlerfreie Informationen bereit stellen zu können. Trotzdem kann die SEP AG keine Gewähr für die Richtigkeit der Inhalte dieses Benutzerhandbuches übernehmen.

Einführung

Dieser Artikel befasst sich mit der Konfiguration und Administration von Sicherungen und Rücksicherungen für MS-SQL Server 2012 und 2014.

SEP sesam unterstützt die Sicherung von:

  • Einzelne Microsoft SQL Server.
  • Microsoft SQL Server Always On Failover Cluster (active/passive).
  • Microsoft SQL Server die in einer SharePoint Umgebung betrieben werden (für SharePoint wird eine zusätzliche Lizenz benötigt).

Systemanforderungen

  • SEP sesam Client ab Version 4.2.2.40
  • MS-SQL Server 2012/2014

Konfiguration MS-SQL Backup

Auf einem Microsoft SQL Server muss der Sesam Client Dienst unter einem User ausgeführt werden der vollen Zugriff auf alle MSSQL Datenbanken hat, z.B. ein User mit Domänenadmin Berechtigung.

Standardmäßig wird der Dienst des SEP sesam Clients nach der Installation mit dem lokalen Systemkonto gestartet. Läuft der sesam Client Dienst mit dem lokalen Systemkonto ist keine MSSQL Sicherung möglich!

System account sql.PNG


Anschließend können die zu sichernden Datenbanken durch browsen des Clients ausgewählt werden. Es kann der gesamte SQL Server, einzelne Instanzen bis hin zu einzelnen Datenbanken selektiert werden.

Browse sql 2012.PNG

Sicherungsmethoden

Für die Sicherung der SQL Datenbanken stehen 3 Sicherungsmethoden zur Verfügung:

COPY
Sichert nur die Datenbank ohne Logfiles
FULL
Sichert die Datenbank und zugehörige Logfiles
INC
Sichert nur die Logfiles (werden danach abgeschnitten)

Log Truncation

Achtung!
  • Nur mit INC Sicherungen werden MSSQL Log Dateien abgeschnitten (truncated)!

Wiederherstellungsmodelle

SEP empfiehlt dringend das Wiederherstellungsmodell 'Vollständig' / 'Full' zu verwenden, siehe auch:
SQL Server-Onlinedokumentation 'Übersicht über Wiederherstellungsmodelle'.

Nur mit dem Wiederherstellungsmodell 'Vollständig' kann bei einem worst case ein Datenverlust minimiert werden und die Wiederherstellung bis zu einem beliebigen Zeitpunkt ist möglich (z. B. vor Anwendungs- oder Benutzerfehlern). Das Wiederherstellungsmodell 'Vollständig' erfordert FULL und INC Sicherungen.


Achtung!
  • Datenbanken die mit dem Wiederherstellungsmodell Einfach betrieben werden, können nur mit Sicherungsmethode "COPY" gesichert werden, da in diesem Fall keine Logfiles vorhanden sind.
  • Falls mit einer FULL Sicherung Datenbanken mit dem Wiederherstellungsmodell Einfach gesichert werden, dann werden diese Datenbanken nicht mitgesichert und es kommt zu einer Warnung im Sicherungsprotokoll!


Recovery model simple.PNG

Restore

Bei einem Restore einer SQL Datenbank werden grundsätzlich 2 Szenarien unterschieden:

  • 1 Restore der Datenbank mit überschreiben oder wenn die Originaldatenbank gelöscht wurde.
  • 2 Restore der Datenbank in einen anderen Namen, wenn die Originaldatenbank noch vorhanden ist bzw. Restore auf eine andere Instanz.

Restore der original Datenbank mit Überschreiben

Um eine original Datenbank zu überschreiben, muss diese vorher im Microsoft SQL Management Studio offline genommen werden. Anschließend kann die Datenbank überschrieben werden. Sollen zusätzlich die Logfiles der inkrementellen Sicherungen wieder hergestellt werden, selektiert man einfach das inkrementelle Backup des gewünschten Zeitpunkts (Point in Time Restore) mit der Option Generations-Restore. Es wird automatisch die gesamte Sicherungskette seit dem letzten FULL Backup wieder hergestellt.

Genrestore sql2012.PNG


Die Rücksicherung erfolgt mit den Optionen existierende Dateien überschreiben und Auto Recover nach Restore

Sql restore original db.PNG


Restore der Datenbank mit Erstellung einer neuen Datenbank

Die MOVE Option ermöglicht die einzelnen Datenbankdateien zu verschieben und Konflikte mit vorhandenen Dateien zu vermeiden.

Sollte die Originaldatenbank noch auf dem System vorhanden sein, so muss die Rücksicherung der jeweiligen Datenbank bei MSSQL 2012 sowie MSSQL 2014 mit der MOVE Option durchgeführt werden, da ansonsten eine Rücksicherung nicht möglich ist. Ziel der MOVE Option ist es, dem MSSQL-Server den physikalischen Pfad der Datenbankdateien mitzuteilen. Die Option ist seit MSSQL 2012 Pflicht für eine Rücksicherung, wenn das Original noch vorhanden ist.

Angabe des neuen Datenbanknamens (in diesem Fall tpch10_new):

Sql move02.png

Achtung

Da bei den Ausführungs Optionen existierende Dateien überschreiben selektiert werden muss, ist unbedingt darauf zu achten einen neuen Namen für die Datenbank zu vergeben (im Beispiel tp10ch_new). Anderenfalls wird die original Datenbank überschrieben!

Die MOVE Option muss im letzten Reiter der Rücksicherungs-Wizard manuell angegeben werden. Dazu wählt man Experten Optionen und die Parameter dafür könnten dann wie folgt lauten:

-a move=Original_logischer_name:"pfad\filename.mdf" -a move=Original_logischer_name_log:"pfad\filename_log.ldf"

Der Logische Name der DB muss identisch zum Logischen Namen der Original DB sein!

Anders dürfen sein:

  • Servername
  • DB Instanz Name
  • DB Name
  • Name der .MDF und .LDF Dateien
  • Pfad zur den DB Dateien


Beispiel:

Sql move01.png

In diesem Fall wurde -a move=tpclineitem:"c:\temp\mydbrestore_new.mdf",move=tpclineitem_log:"C:\temp\mydbrestore_new.ldf" angegeben. Die Bezeichnung tpclineitem beschreibt hier den logischen Namen der primären MDF-Datei der Originaldatenbank, anschließend folgt der physikalische Pfad, wo die MDF Datei abgelegt werden soll. Als Zweites ist noch tpclineitem_log als logischer Name für die LDF-Datei der Originaldatenbank angegeben, gefolgt vom physikalischen Pfad, wo die LDF-Datei abgelegt werden soll. Die Option muss für jeden logischen Namen angegeben werden.

Information sign.png Note
Seit 4.4.3.45 Tigon V2 ermöglicht der Rücksicherungs-Wizard unter Experten Optionen -> Relokation die Logischen Dateinamen auszuwählen und physikalischen Dateinamen zum Verschieben der Datenbankdateien anzugeben.

MS SQL relocation de.jpg

Restore der Datenbank an einem anderen SQL Server

  1. Im restore Wizard muss der andere MSSQL Server als Zielknoten ausgewählt werden.
  2. Als Zielpfad muss der Computer Name, der MSSQL Server Name bzw. Instanzname und der DB Name angegeben werden, z.B: /computer-name/mssql-name/db-name
  3. Die weiteren Schritte finden Sie im folgenden Artikel: Restore der Datenbank mit Erstellung einer neuen Datenbank

Disaster Recovery

Mögliches Szenario für ein Disaster Recovery: MSSQL Server ist zwar installiert aber der MSSQL Server Dienst läuft nicht mehr.
(z.B. weil alle Datenbank Dateien inkl. der Systemdatenbanken defekt sind)

  • Variante 1:
    • Folgende Backups sind vorhanden: Neben MSSQL Sicherungen sind die Datenbank Dateien (inkl. Systemdatenbanken) auch nochmal in einer VSS Pfadsicherung vorhanden
    • Vorgehen:
      • 1. Nur die Dateien (*.mdf & *.ldf) der Systemdatenbanken werden aus der letzten Pfadsicherung auf den Original Pfad mit überschreiben wiederhergestellt
      • 2. MSSQL Server Dienst wieder starten
      • 3. Danach können einzelne DBs aus der letzten MSSQL Sicherung wiederherstellt werden, siehe: Restore der Datenbank an einem anderen SQL Server
  • Variante 2:
    • Folgende Backups sind vorhanden: Es existieren nur MSSQL Sicherungen aber es sind keine Datenbank Dateien in einer Pfadsicherung vorhanden
    • Vorgehen:
      • 1. Mit den MSSQL Setup files eine neue MSSQL Instanz erstellen. (Die Setup Files müssen die selben sein mit denen der MSSQL Server ursprünglich installiert wurde.)
      • 2. Danach können einzelne DBs in die neu erstellte Instanz wiederhergestellt werden, siehe: Restore der Datenbank an einem anderen SQL Server

Troubleshooting

Login incorrect - Anmeldung falsch

Problem: Wird eine Sicherung oder eine Rücksicherung fehlerhaft beendet und finden sich im Protokoll Zeilen wie die folgenden:

DB Module: [DB-Library: Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection.]
DB Module: [DB-Library message: Login incorrect.]

so wurde versucht auf einem Klienten eine SQL Server Instanz anzusprechen, die nicht lokal auf diesem System vorhanden ist. Die verwendete "Trusteed Connection" erlaubt eine Anmeldung nur an dem SQL Server an dem die Instanz lokal aktiv ist.

Lösung: In dem Fall muss der Backup Klient oder der Zielknoten auf den aktiven SQL Server geändert werden.


Sicherung schlägt fehl mit 'The server principal "NT AUTHORITY\SYSTEM" is not able to access the database "<database>" under the current security context.'

Problem: Der Benutzer "SYSTEM" darf sich nicht am MS-SQL server anmelden, weil der SEP sesam Dienst standardmäßig als Benutzer "SYSTEM" läuft.


Lösung: In diesem Fall muss man einfach den SEP sesam Dienst auf einen Benutzer ändern, der auf die MS-SQL Datenbank(en) zugreifen darf. Dazu die Windows Diensteverwaltung öffnen, die Eigenschaften des SEP sesam Dienstes bearbeiten und im Reiter "Anmeldung" autorisierte Benutzerdaten eingeben und anschließend den Dienst neu starten.


Rücksicherung misslingt mit "Directory lookup for the file '...' failed"

Problem: Falls Meldungen der Art

DB Module: [DB-Library: Directory lookup for the file "e:\Database\SQL Server 2000 SE\MSSQL\Data\sesam.mdf" 
  failed with the operating system error 21(The device is not ready.).]
DB Module: [DB-Library: File 'sesam_db' cannot be restored to 'e:\Database\SQL Server 2000 SE\MSSQL\Data\sesam.mdf'. 
  Use WITH MOVE to identify a valid location for the file.]

auftreten, dann existiert der Pfad in dem sich die Datenbankdateien ursprünglich befanden nicht auf dem Zielsystem oder mit der MOVE-Option wurde ein nicht existierender Pfad angegeben.

Lösung: Es muss der Pfad angelegt oder ein korrekter Pfad mit der Move-Option angegeben werden. Das Anlegen des Pfades ist i.allg. die einfachere Lösungsmöglichkeit. Außerdem kann es bei langen Pfaden zu Problemen mit der Move-Option kommen, die Eingabe wird dann verkürzt.

Rücksicherung misslingt mit "Unable to connect: SQL Server does not exist or network access denied."

Problem: Falls Meldungen der Art

DB Module: [DB-Library message: Unable to connect: SQL Server is unavailable or does not exist.  
  Unable to connect: SQL Server does not exist or network access denied.; Net-Library message: ConnectionOpen (Connect()).; ]

auftreten, dann existiert der Server nicht. Möglicherweise wurde fälschlicherweise eine Instanz ohne Server angegeben.

Lösung: Servernamen überprüfen, ggf. Rücksicherungs-Ziel voll qualifiziert mit

<HOSTNAME>/<Instance>/<DB Name> 

angeben.

Rücksicherung mit MOVE Option misslingt mit "The physical file name '...' may be incorrect"

Problem: Falls Meldungen der Art

DB Module: [DB-Library: A file activation error occurred. The physical file name 'c:/temp/sesam_log.ldf' may be incorrect. 
  Diagnose and correct additional errors, and retry the operation.]
DB Module: [DB-Library: File 'sesam_db_log' cannot be restored to 'c:/temp/sesam_log.ldf'. 
  Use WITH MOVE to identify a valid location for the file.]

auftreten, dann wurde eine falsche Syntax, im Beispiel / statt \, im Dateinamen verwendet.

Lösung: Pfad mit richtiger Syntax angeben.

Achtung

Falls der SEP sesam Server mit einer Postgres Datenbank arbeitet, z.B. auf Linux x64, dann müssen die \-Zeichen doppelt eingegeben werden, ansonsten verschwinden diese in den Pfaden!

Beispiel:

-a move=Mgmt_data:"e:\\SQL Server 2000 SE\\MSSQL\\Data\\Mgmt.mdf" -a move=Mgmt_log:"e:\\SQL Server 2000 SE\\MSSQL\\Data\\Mgmt_log.ldf"

Rücksicherung mit MOVE Option misslingt mit "Logical file '...' is not part of database"

Problem: Falls Meldungen der Art

DB Module: [DB-Library: Logical file 'Mgmt_data' is not part of database 'sesam_db2'. 
  Use RESTORE FILELISTONLY to list the logical file names.]

auftreten, dann wurde in der MOVE-Option ein falscher logischer Name angegeben.

Lösung: Logischen File Namen richtig angeben, er kann aus dem Sicherungsprotokoll (NOT-File) entnommen werden.

Beispiel: Im Sicherungsprotokoll stehen die Zeilen:

DB Module: [DB-Library: Processed 256 pages for database 'sesam_db', file 'sesam_db' on file 1.]
DB Module: [DB-Library: Processed 1 pages for database 'sesam_db', file 'sesam_db_log' on file 1.]

Die logischen File Namen lauten hier sesam_db und sesam_db_log.

Zurückgesicherte Datenbank bleibt im Zustand 'Restoring'

Problem: Nach der Rücksicherung einer MS SQLServer Datenbank verbleibt diese im Zustand '(Restoring...)'. Dieser Zustand tritt auf, wenn die Option 'Auto Recover' im Rücksicherungswizard nicht ausgewählt wurde.

Lösung: Rücksicherung mit Option 'Auto Recover' ausführen. Oder nachträglich durch manuellen Aufruf von sbc mit Option -a recover für die entsprechende Datenbank.

Beispiel:

MSSQL restoring.jpeg

Durch den folgenden sbc Aufruf auf dem Klienten kann die Datenbank recovered werden:

sbc -r -a recover sbcmsql:"/MIRACULIX/SECOND/msdb"


Hinweis

Auch bei der Rücksicherung einer Datenbank und zusätzlicher Transaktionslogdateien (Generationsrestore) verbleiben die Datenbanken solange im Zustand 'Restoring...' bis die letzte Rücksicherung (mit '-a recover') abgeschlossen wird.

Problem bei der Erstellung eines Sicherungsauftrages

Problem: Man baut sich die Sicherungsquelle für einen Sicherungsauftrag vom Typ Microsoft SQL Server im SEP sesam Dateisystembrowser zusammen. Unter der Instanz werden aber keine Datenbanken angezeigt.

Lösung: Der Dienst des SQL Servers ist vermutlich gestoppt. Starten Sie den SQL-Server Dienst auf dem betreffenden SEP sesam Client.

Beispiel: Mit folgendem Befehl kann der SQL Server auf der Kommandozeile gebrowst werden:

sm_client dir "/MS SQL Server:"
sm_client dir "/MS SQL Server:/<SERVERNAME>/<INSTANZNAME>"

Wenn der SQL Server nicht gestartet ist, wird dabei folgende Fehlermeldung angezeigt:

2015-10-28 19:26:03: sbc-3036: Info:    # DATABASE SUPPORT: SESAM MS SQL Server Backup Client, VERSION: 4.2.1.1, Released: Feb 24 2014 #
2015-10-28 19:26:20: sbc-3103: Info:    DB Module: [DB_InitOperation: return DB_NUM_E_FAILED]
2015-10-28 19:26:20: sbc-1146: Error:   DB Module: [Connect [<SERVERNAME>\<INSTANZNAME>] failed: [Microsoft][ODBC SQL Server Driver][DBMSLPCN]SQL Server does not exist or access denied.]
2015-10-28 19:26:20: sbc-3001: Info:    Exiting.
ID=20151028192603
STATUS=SUCCESS MSG=

Ist der SQL Server gestartet, erscheinen der Reihe nach die einzelnen Datenbanken.

2015-10-28 19:52:15: sbc-3036: Info:    # DATABASE SUPPORT: SESAM MS SQL Server Backup Client, VERSION: 4.2.1.1, Released: Feb 24 2014 #
"/MS SQL Server:/<SERVERNAME>/<INSTANZNAME>/master" db 2003-04-08 09:13:36.390 15.10.28 19:52:17. 4096  ,
"/MS SQL Server:/<SERVERNAME>/<INSTANZNAME>/model" db 2003-04-08 09:13:36.390 15.10.28 19:52:17. 4096  ,
"/MS SQL Server:/<SERVERNAME>/<INSTANZNAME>/msdb" db 2005-10-14 01:54:05.240 15.10.28 19:52:17. 4096 ,
"/MS SQL Server:/<SERVERNAME>/<INSTANZNAME>/tempdb" db 2015-10-28 19:50:43.850 15.10.28 19:52:17. 4096  ,not_saveable only for temporary operations
"/MS SQL Server:/<SERVERNAME>/<INSTANZNAME>/Datenbank1" db 2008-04-11 12:42:35.517 15.10.28 19:52:17. 4096  ,
"/MS SQL Server:/<SERVERNAME>/<INSTANZNAME>/Datenbank2" db 2008-04-11 12:31:12.237 15.10.28 19:52:17. 4096  ,
2015-10-28 19:52:17: sbc-3001: Info:    Exiting.
ID=20151028195215
STATUS=SUCCESS MSG=

Weitere Links/Literatur

http://msdn.microsoft.com/de-de/library/ms187048.aspx