none
AlwaysON Backup über Mantenance Plan RRS feed

  • Frage

  • Hallo zusammen,

    ich habe ein AlwaysON über zwei Server eingerichtet. Die Server sind activ-activ. Es gibt keine Knote wo nur gesichert wird. Ich habe auf eine Knote Mantenance Plan eingerichtet. Das funktioniert nur wenn diese Knote für eine Verfügbarkeitsgruppe Primary, sobald diese Gruppe Secondary wird, bekomme ich Fehlermeldung "The EXECUTE permission was denied on the object 'xp_create_subdir', database 'mssqlsystemresource', schema 'sys'.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly", und DB wird nicht gesichert.

    Mein Plan ist folgende. Ich werde auf zwei Knoten gleiche Plane laufen. Es soll auf jeweilige Knote nur Secondary Replikats gesichert werden. Geht es? Oder gibt es andere Szenarios dafür.

    Backup Preference sind so eingestellt:

      

    Donnerstag, 7. Mai 2015 13:35

Antworten

  • Die die Log Files auf dem bevorzugten Sicherungsziel zu sichern (siehe dein Bild) kannst du über das folgende Skript arbeiten

    DECLARE @preferredReplica int SET @preferredReplica = (SELECT [master].sys.fn_hadr_backup_is_preferred_replica('AdventureworksDW')) IF (@preferredReplica = 1) BEGIN BACKUP LOG [AdventureworksDW] TO DISK = N'\\ALWAYSON-SRV1\SQL-LogBackups\AdventureworksDW_Log_backup.trn' WITH NOFORMAT, NOINIT, NAME = N'AdventureworksDW_Log_Backup', SKIP, REWIND, NOUNLOAD, STATS = 10 END GO


    Benjamin Hoch MCSA: Microsoft Certified Solutions Associate - SQL Server 2012, MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,

    • Als Antwort markiert andrej75 Freitag, 8. Mai 2015 13:47
    Donnerstag, 7. Mai 2015 14:30
  • Damit kannst steuern auf welchem Knoten die Transaktionslog Sicherung ausgeführt wird. Wenn du das zweite Skript von mir nimmst wird dort genau diese Einstellung abgefragt und dann auch nur dort ausgeführt.

    Beispiel:

    Du hast ausgewählt: Sekundärer Konten bevorzugen.

    Dann wird das Skript immer auf dem sekundären Konten den Wert 1 bekommen und ausgeführt werden.

    Fällt nun der sekundäre Knoten aus erhält das Skript auf dem primären Knoten dann den Wert 1 und wird nun dort ausgeführt bis der sekundäre wieder verfügbar ist.

    Das AlwaysON liefert immer nur auf einem Knoten den Wert 1  zurück. Nach welcher Logik legt die Einstellung fest.

    Hoffe der Zusammenhang ist klar geworden.

    Gruß aus Kassel


    Benjamin Hoch MCSA: Microsoft Certified Solutions Associate - SQL Server 2012, MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,

    • Als Antwort markiert andrej75 Freitag, 8. Mai 2015 13:47
    Donnerstag, 7. Mai 2015 17:56
  • Vollsicherung geht nur auf dem primären Server, nur das LOG kann auf dem sekundären gesichert werden.

    Was noch geht ist Vollsicherung als Copy-Only auf einem sekundären Knoten


    Benjamin Hoch MCSA: Microsoft Certified Solutions Associate - SQL Server 2012, MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,

    • Als Antwort markiert andrej75 Freitag, 8. Mai 2015 09:19
    Freitag, 8. Mai 2015 09:09

Alle Antworten

  • Grüße,

    Ich habe mit den Wartungsplänen unter AlwaysOn sehr gemischte Erfahrungen gemacht. Habe inzwischen alles über ein TSQL Skript im Wartungsplan abgewickelt

    DECLARE @localReplicaRole int
    
    SET @localReplicaRole = (select role from [master].sys.dm_hadr_availability_replica_states ars JOIN [master].sys.dm_hadr_database_replica_states drs ON ars.group_id = drs.group_id WHERE (ars.is_local = 1) AND (drs.is_local = 1) AND (drs.database_id = db_id('AdventureWorksRef')))
    -- Role = 1 => primary
    -- Role = 2 => secondary
    
    IF (@localReplicaRole = 1)
    BEGIN
        BACKUP DATABASE [AdventureWorksRef] TO  DISK = N'\\ALWAYSON-SRV1\SQL-LogBackups\AdventureWorksRef_Full_Backup.bak' WITH NOFORMAT, NOINIT,  NAME = N'AdventureWorksRef-Full Database Backup', SKIP, REWIND, NOUNLOAD,  STATS = 10
    END
    GO
    
    

    Dort gibst du an ob auf dem Primären gesichert werden soll oder nicht und führst den Wartungsplan auf beiden Konten aus. Der Aktive sichert und der passive Knoten tut einfach nichts.

    Gruß Benjamin


    Benjamin Hoch MCSA: Microsoft Certified Solutions Associate - SQL Server 2012, MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,



    • Bearbeitet Benjamin.Hoch Donnerstag, 7. Mai 2015 14:30 Skriptblock eingefügt
    Donnerstag, 7. Mai 2015 13:58
  • Danke. Ich probiere es. Wenn ich Log auf Secondary Knote sichere. Wird es auf Primary abgeschnitten? Oder am besten beide Sicherungen auf Primary durchführen? 
    Donnerstag, 7. Mai 2015 14:03
  • Ich mache beides auf dem primären Knoten aber wenn ich mich nicht irre geht es auch auf dem passiven Knoten auch.

    Benjamin Hoch MCSA: Microsoft Certified Solutions Associate - SQL Server 2012, MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,

    Donnerstag, 7. Mai 2015 14:07
  • Die die Log Files auf dem bevorzugten Sicherungsziel zu sichern (siehe dein Bild) kannst du über das folgende Skript arbeiten

    DECLARE @preferredReplica int SET @preferredReplica = (SELECT [master].sys.fn_hadr_backup_is_preferred_replica('AdventureworksDW')) IF (@preferredReplica = 1) BEGIN BACKUP LOG [AdventureworksDW] TO DISK = N'\\ALWAYSON-SRV1\SQL-LogBackups\AdventureworksDW_Log_backup.trn' WITH NOFORMAT, NOINIT, NAME = N'AdventureworksDW_Log_Backup', SKIP, REWIND, NOUNLOAD, STATS = 10 END GO


    Benjamin Hoch MCSA: Microsoft Certified Solutions Associate - SQL Server 2012, MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,

    • Als Antwort markiert andrej75 Freitag, 8. Mai 2015 13:47
    Donnerstag, 7. Mai 2015 14:30
  • Noch ganz blöde Frage. Wozu braucht man Backup Preference in Verfügbarkeitsgruppen-Einstellungen.  
    Donnerstag, 7. Mai 2015 16:55
  • Damit kannst steuern auf welchem Knoten die Transaktionslog Sicherung ausgeführt wird. Wenn du das zweite Skript von mir nimmst wird dort genau diese Einstellung abgefragt und dann auch nur dort ausgeführt.

    Beispiel:

    Du hast ausgewählt: Sekundärer Konten bevorzugen.

    Dann wird das Skript immer auf dem sekundären Konten den Wert 1 bekommen und ausgeführt werden.

    Fällt nun der sekundäre Knoten aus erhält das Skript auf dem primären Knoten dann den Wert 1 und wird nun dort ausgeführt bis der sekundäre wieder verfügbar ist.

    Das AlwaysON liefert immer nur auf einem Knoten den Wert 1  zurück. Nach welcher Logik legt die Einstellung fest.

    Hoffe der Zusammenhang ist klar geworden.

    Gruß aus Kassel


    Benjamin Hoch MCSA: Microsoft Certified Solutions Associate - SQL Server 2012, MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,

    • Als Antwort markiert andrej75 Freitag, 8. Mai 2015 13:47
    Donnerstag, 7. Mai 2015 17:56
  • Gerade es funktioniert nicht :-( Full Sicherung macht er auf Mirror nicht.

    Meldung 3059, Ebene 16, Status 1, Zeile 16

    This BACKUP or RESTORE command is not supported on a database mirror or secondary replica.

    Meldung 3013, Ebene 16, Status 1, Zeile 16

    BACKUP DATABASE is terminating abnormally.

    Freitag, 8. Mai 2015 08:35
  • Vollsicherung geht nur auf dem primären Server, nur das LOG kann auf dem sekundären gesichert werden.

    Was noch geht ist Vollsicherung als Copy-Only auf einem sekundären Knoten


    Benjamin Hoch MCSA: Microsoft Certified Solutions Associate - SQL Server 2012, MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,

    • Als Antwort markiert andrej75 Freitag, 8. Mai 2015 09:19
    Freitag, 8. Mai 2015 09:09
  • Das ist aber komisch. :-( Microsoft hat tolle Präsi. Und eine Szenario sieht vor, dass man z.b. eine sekundäre Knote für Backups nutzen kann. Dabei leidet der Performance der Primary DB nicht.

    Danke für deine Hilfe!

    Freitag, 8. Mai 2015 09:22