Jolene (2008) watch online
Sinners and Saints (2010) online
Into the Abyss (2011) online

PowerShell - backup baz SQL

Skrypt w BUDOWIE

Scenariusz:

1. Należy zrobić kopie baz danych z Serwera SQL w formacie: NazwaBazy.bak,

2. Wszyskie kopie BAZ DANYCH mją zostać spakowane do archiwum ZIP w formacie: archiwum-datawykonania.zip,

3. Skopiowanie wszystkich plików ZIP do innej lokalizacji (dysk lokalny, dysk sieciowy, FTP, azureBlob....),

4. Skasowania z bierzącego katalogu (C:\APP_BACKUP) wszystkich plików *.bak (na bierząco),

5. Skasowania z bierzącego katalogu (C:\Archiwum) plików archiwum ZIP starszych niż 5 dni,

4. Skasowania z bierzącego katalogu (C:\APP_BACKUP) wszystkich plików *.zip (na bierząco),

6. Skrypt ma się wykonywać codziennie według harmonogramu zadać.

Jeżeli są jakieś pomysły to poproszę o Wasze wersje ;) na:Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.

 

 

#Zmienne

$ServerInstance = "CU01SQL\INSERTGT"

$DataBase1 = „baza1”

$DataBase2 = "baza2”

$DataBase3 = "baza3”

$DataBase4 = "baza4”

$DataBase5 = "baza5”

$SharedFolder = "\\cu01sql\APP_BACKUP"

$destenation = "C:\APP_BACKUP"

$Date = Get-Date -format yyyyMMdd

$Archive = "Archiwum"

$ThisBak = (Get-Date).AddDays(0).ToString("dd-mm-yyyy")

$OldFile = (Get-Date).AddDays(-5).ToString("dd-mm-yyyy")

$compressionLevel= [System.IO.Compression.CompressionLevel]::Optimal

 

#Call SQL Command

Backup-SqlDatabase -ServerInstance $ServerInstance -Database $DataBase1 -BackupFile "$($SharedFolder)\$DataBase1-$Date.bak"

Backup-SqlDatabase -ServerInstance $ServerInstance -Database $DataBase2 -BackupFile "$($SharedFolder)\$DataBase2-$Date.bak"

Backup-SqlDatabase -ServerInstance $ServerInstance -Database $DataBase3 -BackupFile "$($SharedFolder)\$DataBase3-$Date.bak"

Backup-SqlDatabase -ServerInstance $ServerInstance -Database $DataBase4 -BackupFile "$($SharedFolder)\$DataBase4-$Date.bak"

Backup-SqlDatabase -ServerInstance $ServerInstance -Database $DataBase5 -BackupFile "$($SharedFolder)\$DataBase5-$Date.bak"

 

#ZIP Kompresja plików *.bak do *.zip z datą w nazwie--------------------------------------------------------
Compress-Archive -Path C:\APP_BACKUP\*.bak -Update -DestinationPath $Destenation\Archiwum_$DateTime 

#Usuwanie plików *BAK

Remove-Item C:\APP_BACKUP\*.bak

 

#Usówanie plików starszych niz 5 dni C:\archiwum .*ZIP-------------------------------------------------------

Get-ChildItem –Path $DestArchiwum -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-5))} | Remove-Item

Kopia na do katalogu C:\APP_BACKUP\ i na Serwer NAS-------------------------------------------------------
$NetworkPath = "\\192.168.1.3\backup\cumulus"
$UserAndDomain = "backup"
$pass = "xxxxxxxx" #hasło

Copy-Item -Path "C:\APP_BACKUP\*.zip" -Destination "C:\archiwum" -recurse -Force
New-SMBMapping -LocalPath 'S:' -RemotePath $NetworkPath -UserName $UserAndDomain -Password $pass
Copy-Item -Path "C:\APP_BACKUP\*.zip" -Destination "S:\" -recurse -Force

#Usówanie plików C:\APP_BACKUP\ .*ZIP-------------------------------------------------------
Get-ChildItem –Path $Destenation -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(0))} | Remove-Item

______________________________________________________________________________________________________________________

WERSJA z pętelką

# !!!!! zamiast wartości w sekcji #Call SQL Command wprowadzasz  foreach i w zmiennych dodajesz listę baz danych $Database = 'BAZA1', 'BAZA2', 'BAZA3', ... ;

 

$ServerInstance = "CU01SQL\INSERTGT"
$Destenation = "C:\APP_BACKUP"
$Database = 'BAZA1', 'BAZA2', 'BAZA3', ... ;


foreach ($dbname in $Database)
{
Backup-SqlDatabase -ServerInstance $ServerInstance –Database $dbname -BackupFile "$Destenation\$dbname.bak" -PassThru
}

______________________________________________________________________________________________________________________

#Poziomy kompresji
-
CompressionLevel Optimal
-CompressionLevel Fastest
-NoCompression
Opcjonalnie można użyć parametru -CompressionLevel z jedną z trzech wartości: Optimal, NoCompression lub Fastest. 
Optimal jest ustawieniem domyślnym, jeśli parametr -CompressionLevel nie jest ustawiony; 
używa najlepszej dostępnej kompresji, ale może to potrwać dłużej niż użycie najszybszej. Aby utworzyć archiwum bez kompresji, użyj wartości NoCompression.

 

#Description

The Compress-Archive cmdlet creates a compressed, or zipped, archive file from one or more specified files or directories. An archive packages multiple files, with optional compression, into a single zipped file for easier distribution and storage. An archive file can be compressed by using the compression algorithm specified by the CompressionLevel parameter.

The Compress-Archive cmdlet uses the Microsoft .NET API System.IO.Compression.ZipArchive to compress files. The maximum file size is 2 GB because there's a limitation of the underlying API.

 

Joomla Template - by Joomlage.com