Backup SQLServer cz3.

Ostatnią prezentowaną formą wykonywania kopi zapasowych usługi SQL Server na zasobie zdalnym jest wykorzystanie GSMA, czyli grupowego zarządzanego konta serwisowego. Zasada działania jest zbliżona do poprzedniej metody, jednakże jest nieco bezpieczniejsza, gdyż nie wykorzystujemy klasycznego konta użytkownika AD, które nie tylko uprawnia do wystartowania usługi oraz dostępu do katalogu, ale może być wykorzystane również do innych celów.

Mianowicie, aby skorzystać z GSMA, należy najpierw włączyć i skonfigurować odpowiednie elementy po stronie usługi Active Directory:

Add-KDSRootKey –EffectiveImmediately

Niestety, powyższy proces ten wymaga nieco cierpliwości. Jeżeli jej nie mamy za wiele możemy odrobinę oszukać system, jednakże nie zalecałbym stosowanie tej metody w produkcyjnym środowisku.

Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))

Gdy zostanie już całkowicie zakończony powyższy proces, możemy przejść do utworzenia grupowego zarządzanego konta serwisowego:

New-ADServiceAccount -Name SQLGSMA -DNSHostName SQLGSMA.contoso.com -Enabled $true

Ostatecznie przypisujemy do niego maszynę odpowiadającą serwerowi SQL i instalujemy w ramach niej GSMA:

Set-ADServiceAccount SQLGSMA -PrincipalsAllowedToRetrieveManagedPassword "SQLServer$"
Install-AdServiceAccount SQLGSMA

Cała pozostała procedura jest analogiczna do poprzednich, tzn. zmieniamy poświadczenia dla usługi MSSQLSERVER, z tym wyjątkiem, iż nie definiujemy hasła.

$Account="CONTOSO\SQLGSMA$"

$Service = Get-WmiObject Win32_Service -Filter "Name='MSSQLSERVER'"
$Service.change($null,$null,$null,$null,$null,$null,$Account,$null,$null,$null,$null)

Restart-Service MSSQLSERVER

Oraz ostatecznie udostępniamy odpowiedni zasób gdzie będziemy składować kopie zapasowe.

$Trustee = ([WMIClass] "Win32_Trustee").CreateInstance()
$Trustee.Name = "SQLGSMA$”
$Trustee.Domain = "Contoso"

$ACE = ([WMIClass] "Win32_ACE").CreateInstance()
$ACE.AccessMask = 2032127
$ACE.AceFlags = 3
$ACE.AceType = 0
$ACE.Trustee = $Trustee

$SD = ([WMIClass] "Win32_SecurityDescriptor").CreateInstance()
$SD.DACL += $ACE.psObject.baseobject

$Share = [WmiClass]"Win32_Share"
$Parameters = $Share.psbase.GetMethodParameters("Create")
$Parameters.Access = $SD
$Parameters.Description = "SQL Backups"
$Parameters.MaximumAllowed = $Null
$Parameters.Name = "SQLBackup"
$Parameters.Password = $Null
$Parameters.Path = "C:\SQLBackup"
$Parameters.Type = [uint32]0

$Share.PSBase.InvokeMethod("Create", $Parameters, $Null)

$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule `
("Contoso\SQLGSMA$","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")

$Acl = Get-Acl "C:\SQLBackup"
$acl.SetAccessRule($AccessRule)
$Acl | Set-Acl

Po tym zabiegu wystarczy uruchomić zadanie kopi zapasowej

BACKUP DATABASE [NORTHWND] TO DISK = N'\\BKPServer.contoso.com\SQLBackup\Northwind.bak' WITH NOFORMAT, NOINIT, NAME = N'NORTHWND-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

… i poczekać na jej zakończenie.

10 percent processed.
20 percent processed.
30 percent processed.
40 percent processed.
50 percent processed.
60 percent processed.
70 percent processed.
80 percent processed.
90 percent processed.
Processed 552 pages for database 'NORTHWND', file 'Northwind' on file 1.
100 percent processed.
Processed 4 pages for database 'NORTHWND', file 'Northwind_log' on file 1.
BACKUP DATABASE successfully processed 556 pages in 1.664 seconds (2.610 MB/sec).

I po raz kolejny widzimy pozytywny wynik backup.

Źródła:
http://technet.microsoft.com/en-us/library/jj128430.aspx
http://technet.microsoft.com/en-us/library/jj128431.aspx
http://msdn.microsoft.com/en-us/library/aa394435(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/aa394501(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/aa394063(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/aa394402(v=vs.85).aspx

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s