Anlage des Repos
This commit is contained in:
79
current/Backup-MariaDatabase/Backup-MariaDatabase.ps1
Normal file
79
current/Backup-MariaDatabase/Backup-MariaDatabase.ps1
Normal file
@@ -0,0 +1,79 @@
|
||||
cls
|
||||
|
||||
import-module SQLPS
|
||||
|
||||
Set-Variable Servername -Value "localhost" -Scope global
|
||||
Set-Variable Username -Value "root" -Scope global
|
||||
Set-Variable Passwort -Value "123456789dd!" -Scope global
|
||||
Set-Variable SicherungsPfad -Value "E:\Sicherung\MariaDB" -Scope global
|
||||
Set-Variable SicherungsPfadTemp -Value $null -Scope global
|
||||
Set-Variable holedatum -Value (get-date -Format 'yyyyMMdd_HHmm') -Scope global
|
||||
Set-Variable SicherungsPfadFinal -Value "\\dd-sto01\f$\DD-STO01-A3\Backup\Computer\DD-VMP02-DB01\MariaDB" -Scope global
|
||||
Set-Variable Datenbanken -Value @("nextcloud") -Scope global
|
||||
|
||||
# $dbs = Get-SqlDatabase -ServerInstance $Servername
|
||||
#######################################################################################################################
|
||||
Function Backup-SQLDatabases {
|
||||
|
||||
# Parameter definieren
|
||||
param(
|
||||
[parameter(mandatory=$true)]
|
||||
[validatecount(1, 10)]
|
||||
[string[]]$instanzen,
|
||||
[parameter(mandatory=$true)]
|
||||
[validatepattern("[A-Z]")]
|
||||
[validatecount(1,99)] #[validatecount(1, 9)]
|
||||
[string]$dbs
|
||||
)
|
||||
|
||||
$pfadzumbackup = $SicherungsPfad
|
||||
|
||||
if(!(test-path -Path "$($pfadzumbackup)\$holedatum")){
|
||||
try {
|
||||
new-item -path $pfadzumbackup -Name $holedatum -ItemType Directory -ErrorAction Stop | Out-Null
|
||||
Set-Variable SicherungsPfadTemp -Value "$($pfadzumbackup)\$holedatum" -Scope global
|
||||
}
|
||||
|
||||
catch {
|
||||
write-host "Ordner für Backup konnte nicht erstellt werden" -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
else{
|
||||
write-host "Backup-Ordner existiert bereits" -ForegroundColor Yellow
|
||||
Set-Variable SicherungsPfadTemp -Value "$($pfadzumbackup)\$holedatum" -Scope global
|
||||
}
|
||||
|
||||
write-host "Backup von der Datenbank $dbs wird erstellt" -ForegroundColor Yellow
|
||||
$arguments = "--host=$($Servername) --port=3306 --user=$($Username) --password=$($Passwort) --databases $($dbs) --result-file $($SicherungsPfadTemp)\$($db).sql"
|
||||
write-host "Parameter $($arguments)" -ForegroundColor Yellow
|
||||
Start-Process -FilePath "mysqldump.exe" -ArgumentList $arguments -Wait
|
||||
}
|
||||
#######################################################################################################################
|
||||
#Call backup task for every db
|
||||
|
||||
#target must be online
|
||||
if (test-path -Path $SicherungsPfadFinal ) {
|
||||
|
||||
FOREACH ($db in $Datenbanken) {
|
||||
|
||||
[string]$db = $db
|
||||
$db = ($db.replace("[",""))
|
||||
$db = ($db.replace("]",""))
|
||||
|
||||
If ($db -ne "tempdb" -and $db -ne "master" -and $db -ne "model" -and $db -ne "msdb") {
|
||||
Write-Host "Sicherung von $db"
|
||||
Backup-SQLDatabases -instanzen $Servername -dbs $db
|
||||
}
|
||||
}
|
||||
#######################################################################################################################
|
||||
#move dir incl. backup files to sto01
|
||||
write-host $SicherungsPfadTemp
|
||||
Move-Item -Path $SicherungsPfadTemp -Destination $SicherungsPfadFinal -Force
|
||||
|
||||
}
|
||||
|
||||
Else {
|
||||
|
||||
Write-Host "Target is offline!"
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user