Anlage des Repos
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
@ECHO OFF
|
||||
TITLE DIGITAL DATA - SQL-Sicherungstask
|
||||
|
||||
ECHO Stapelverarbeitungsprogramm
|
||||
ECHO SQL-Sicherungstask
|
||||
ECHO -
|
||||
ECHO Digital Data
|
||||
ECHO Ludwig-Rinn-Strasse 16
|
||||
ECHO 35452 Heuchelheim
|
||||
ECHO Tel.: 0641 / 202360
|
||||
ECHO E-Mail: info@didalog.de
|
||||
ECHO -
|
||||
ECHO Version 1.1
|
||||
ECHO Letzte Aktualisierung: 14.01.2014
|
||||
ECHO -
|
||||
ECHO Programmstart am %date% um %time:~0,8% auf %computername%.
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
REM Definition der Variablen.
|
||||
|
||||
SET Server=localhost
|
||||
SET temppfad=E:\DB\Microsoft SQL Server 2008 R2\MSSQL10_50.MSSQLSERVER\MSSQL\Backup
|
||||
SET finalerpfad=\\APPEL-NAS02\appel\Sicherung\appel-DB01\SQL-Datenbanken
|
||||
SET SicherungsLaufwerk=S:
|
||||
SET LaufwerkBenutzer=domain\Username
|
||||
SET LaufwerkPasswort=aPassword
|
||||
SET Aufbewahrungszeit=14
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
ECHO -
|
||||
ECHO Beginne Laufwerksmapping (CMD Befehl forfiles arbeitet nicht mit UNC Pfaden).
|
||||
IF EXIST %SicherungsLaufwerk% (net use %SicherungsLaufwerk% /delete /yes)
|
||||
net use %SicherungsLaufwerk% %finalerpfad% %LaufwerkPasswort% /user:%LaufwerkBenutzer%
|
||||
|
||||
ECHO -
|
||||
ECHO Entferne Log-Dateien die aelter sind als %Aufbewahrungszeit% aus Pfad: %temppfad%.
|
||||
C:\Windows\System32\forfiles /P "%temppfad%" /M *.log /C "cmd /c if @isdir==FALSE del @file" /D -%Aufbewahrungszeit%
|
||||
|
||||
ECHO -
|
||||
ECHO Erstelle Datenbank Sicherung in temporären Pfad: %temppfad%.
|
||||
SQLCMD -E -S %Server% -i "%temppfad%\SQL-Sicherungstask.SQL" -o "%temppfad%\SQL-Sicherungstask_Schritt_2_von_2_%date:~-10,2%%date:~-7,2%%date:~-4,4%_%time:~-11,2%%time:~-8,2%%time:~-5,2%%time:~-2,2%.log"
|
||||
|
||||
ECHO -
|
||||
ECHO Kopiere Datenbank Sicherung in finalen Pfad (Von %temppfad% nach %finalerpfad% )
|
||||
copy "%temppfad%\*.bak" %finalerpfad%
|
||||
|
||||
ECHO -
|
||||
ECHO Entferne Datenbank Sicherung aus temporären Pfad: %temppfad%.
|
||||
del "%temppfad%\*.bak"
|
||||
|
||||
ECHO -
|
||||
ECHO Entferne Backup-Dateien die aelter sind als %Aufbewahrungszeit% Tage aus %finalerpfad%.
|
||||
C:\Windows\System32\forfiles /P %SicherungsLaufwerk% /M *.bak /C "cmd /c if @isdir==FALSE del @file" /D -%Aufbewahrungszeit%
|
||||
|
||||
ECHO -
|
||||
ECHO Laufwerksmapping wird wieder entfernt.
|
||||
net use %SicherungsLaufwerk% /delete /yes
|
||||
|
||||
ECHO -
|
||||
ECHO Alle Aufgaben wurden abgeschlossen. Beende Programm.
|
||||
exit
|
||||
@@ -0,0 +1,9 @@
|
||||
declare @file nvarchar(255)
|
||||
|
||||
SELECT @file = N'E:\DB\Microsoft SQL Server 2008 R2\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\' + REPLACE(convert(varchar,GEtDate(),102),'.','_') + N'_appel_msnav.bak'
|
||||
|
||||
BACKUP DATABASE [appel_msnav]
|
||||
TO DISK = @file
|
||||
WITH INIT,
|
||||
NAME = N'appel_msnav-Vollständig Datenbank Sichern'
|
||||
GO
|
||||
Binary file not shown.
95
current/Backup-SQLDatabase/Backup-SQLDatabase.ps1
Normal file
95
current/Backup-SQLDatabase/Backup-SQLDatabase.ps1
Normal file
@@ -0,0 +1,95 @@
|
||||
cls
|
||||
|
||||
import-module SQLPS
|
||||
|
||||
Set-Variable Servername -Value "DD-VMP02-DB01" -Scope global
|
||||
Set-Variable SicherungsPfad -Value "E:\Sicherung\SQL" -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\SQL\" -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
|
||||
}
|
||||
|
||||
# For-Schleife für mehrere Instanzen
|
||||
for($i = 0; $instanzen.count -gt $i; $i++){
|
||||
write-host "Backup von der Datenbank $dbs auf der Instanz $($instanzen[$i]) wird erstellt" -ForegroundColor Yellow
|
||||
|
||||
# Backup für remote Instanzen
|
||||
if($instanzen[$i] -ne $Servername -and !$instanzen[$i] -eq $false){
|
||||
|
||||
Write-host $args[1].Substring(1, 15)
|
||||
Write-Host $args[0]
|
||||
Invoke-Command -ComputerName $instanzen[$i].Substring(1, 15) -ScriptBlock {
|
||||
|
||||
Backup-SqlDatabase -ServerInstance $args[1].Substring(1, 15) -Database $args[0] -BackupFile "$($args[2])\$($args[0]).bak"
|
||||
|
||||
} -ArgumentList $dbs, $instanzen[$i], $pfadzumbackup, $holedatum
|
||||
}
|
||||
# Backup für eine lokale Instanz
|
||||
elseif($instanzen[$i] -eq $Servername -and !$instanzen[$i] -eq $false){
|
||||
Backup-SqlDatabase -ServerInstance $instanzen[$i] -Database $dbs -BackupFile "$pfadzumbackup\$holedatum\$($dbs).bak"
|
||||
|
||||
}
|
||||
else{
|
||||
write-host "$($instanzen[$i]) existiert nicht"
|
||||
}
|
||||
} # ende von for-schleife
|
||||
}
|
||||
#######################################################################################################################
|
||||
#Call backup task for every db
|
||||
|
||||
#target must be online
|
||||
if (test-path -Path $SicherungsPfadFinal ) {
|
||||
|
||||
FOREACH ($db in $dbs) {
|
||||
|
||||
[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!"
|
||||
|
||||
}
|
||||
45
current/Backup-SQLDatabase/Backup-SQLDatabase_Caller.cmd
Normal file
45
current/Backup-SQLDatabase/Backup-SQLDatabase_Caller.cmd
Normal file
@@ -0,0 +1,45 @@
|
||||
@ECHO OFF
|
||||
TITLE DIGITAL DATA - Run all files in directory with current permissions
|
||||
ECHO -
|
||||
ECHO Batch Script
|
||||
ECHO Run all files in directory with current permissions
|
||||
ECHO -
|
||||
ECHO Digital Data
|
||||
ECHO Ludwig-Rinn-Strasse 16
|
||||
ECHO 35452 Heuchelheim
|
||||
ECHO Tel.: 0641 / 202360
|
||||
ECHO E-Mail: info@didalog.de
|
||||
ECHO -
|
||||
ECHO Version 1.0.0.0
|
||||
ECHO Date: 13.08.2015
|
||||
ECHO -
|
||||
ECHO Program Startup %date% at %time:~0,8% oclock, on %computername%.
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
REM ------------------------set variables-------------------------
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
setlocal enableextensions
|
||||
|
||||
SET DIRECTORY="%cd%"
|
||||
SET FILEEXTENSION=*.ps1
|
||||
SET COUNT=0
|
||||
|
||||
REM --------------------------------------------------------------
|
||||
REM ---------------------Program 1 / Script 1---------------------
|
||||
REM --------------------------------------------------------------
|
||||
|
||||
FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do (ECHO %%f && set /a count+=1)
|
||||
ECHO -
|
||||
ECHO Found %count% File(s) with File Extension %FILEEXTENSION% in Directory:
|
||||
ECHO %DIRECTORY%.
|
||||
|
||||
ECHO -
|
||||
ECHO Running this/them now, with your permissions!
|
||||
FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do (PowerShell.exe -Command "& {Start-Process PowerShell.exe -WindowStyle hidden '-ExecutionPolicy Bypass -File "%%f"'}")
|
||||
|
||||
ECHO -
|
||||
ECHO This Window will close in:
|
||||
#timeout /T 10
|
||||
endlocal
|
||||
exit
|
||||
Binary file not shown.
Reference in New Issue
Block a user