Posts mit dem Label SQL werden angezeigt. Alle Posts anzeigen
Posts mit dem Label SQL werden angezeigt. Alle Posts anzeigen

Montag, 2. Juli 2018

[SQL] SQL-Server Standard richtig sichern

Wichtig, geht nur bei Standard und nicht Express

(Für Express empfehle ich: https://sqlbackupandftp.com/)

Vorraussetzungen prüfen:
SQL Server Agen Dienst
-> auf Automatisch gestellt

Das Backup wie folgt einrichten:
SQL Management mit dem SA / Admin Benutzer verbinden

In den Servereigenschaften, Datenbankeinstellungen:
Im Optimalfall ein eigenes Laufwerk für die Sicherung einrichten (in diesem Beispiel H:\)

In den Eigenschaften jeder Datenbank, das Wiederherstellungsmodell auf "Vollständig" setzen

Unter Verwaltung -> Wartungspläne -> Rechte Maus -> Assisten ausführen:
Name: taeglich

Zeitplan:
Täglich
Häufigkeit: Einmalig 12:00 Uhr

Wartungstasks:
Datenbank sichern (voll und transaktionsprotokoll)
Datenbank verkleinern
Verlauf Bereinigen
Wartung bereinigen / Wartungscleanup

(wichtig, im folgedialog die abfolge wie oben machen)


Einstellungen Voll und Transaktion:
Allgemein: Alle Benutzerdatenbanken
Ziel: separate Unterverzeichnisse erstellen: ein
Optionen: Integrität, Bei Fehler fortsetzen und Prüfsumme: ein

Einstellungen Verkleinern:
Allgemein: Alle Benutzerdatenbanken


Einstellungen Verlauf:
4 Wochen

Einstellungen Wartung:
Sicherungsdateien:
Odner: H:\
Dateiwerweiterung: bak
Unterordner einschliessen

Löschen älter als: 3 Tage


In H:\ nun manuel einen Odner "Logs" erstellen

Bericht in Textdatei schreiben:
H:\Logs



Nun fehlen noch zweimal bereinigungen:
Den Task "taeglich" doppelklicken
Oben Links in der Toolbar/Toolbox "Task Wartung bereinigen" hinzufügen

Verknüpfen zu unterst und dann Doppelklicken


Datentyp: Sicherungsdateien
Ordner: H:\
Dateierweiterung: trn
Unterordner einschliessen

4 Wochen



Datentyp: Textberichte für Wartungsplan
Ordner: H:\Logs
Dateierweiterung: txt
Unterordner einschliessen

4 Wochen

SPEICHERN

Fertig

Der task "taeglich" kann nun testweise ausgeführt werden


Komprimierung einstellen:
Auf dem Task Daten sichern Vollbackup und Differenzial kann unter den Optionen die Sicherungskomprimierung noch eingeschaltet werden

Ich empfehle dies

Mittwoch, 28. Februar 2018

[SERVER][IIS][EXCHANGE][SQL] Logfiles aufräumen

IIS Logs löschen alle 7 Tage:


Achtung: Pfade bitte anpassen!
Task automatisch erstellen:
SchTasks /Create /SC WEEKLY /D SAT /TN "Remove IIS logs older than 7 days" /TR "Forfiles.exe -p C:\inetpub\logs\LogFiles\W3SVC1 -m *.log -d -7 -c \"Cmd.exe /C del @path\\"" /ST 11:59

Für alte Server ohne SchTasks:at 12:00 /EVERY:Su Forfiles.exe -p C:\WINDOWS\system32\LogFiles\W3SVC1 -m *.log -d -30 -c \"Cmd.exe /C del @path\"

Wichtig: Task bearbeiten -> Ausführen auf SYSTEM ändern


Falls Exchange 2013 / 2016 Installiert, kann auch folgendes .ps1 Script benutzt werden:
(IIS & Exchange)


Achtung: Pfade bitte ggf. anpassen!

Set-Executionpolicy RemoteSigned
$days=7
$IISLogPath="C:\inetpub\logs\LogFiles\"
$ExchangeLoggingPath="C:\Program Files\Microsoft\Exchange Server\V15\Logging\"
$ETLLoggingPath="C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\ETLTraces\"
$ETLLoggingPath2="C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\Logs"
Function CleanLogfiles($TargetFolder)
{
    if (Test-Path $TargetFolder) {
        $Now = Get-Date
        $LastWrite = $Now.AddDays(-$days)
        $Files = Get-ChildItem $TargetFolder -Include *.log,*.blg, *.etl, *.txt -Recurse | Where {$_.LastWriteTime -le "$LastWrite"}
        foreach ($File in $Files)
            {Write-Host "Deleting file $File" -ForegroundColor "white"; Remove-Item $File -ErrorAction SilentlyContinue | out-null}
       }
Else {
    Write-Host "The folder $TargetFolder doesn't exist! Check the folder path!" -ForegroundColor "white"
    }
}
CleanLogfiles($IISLogPath)
CleanLogfiles($ExchangeLoggingPath)
CleanLogfiles($ETLLoggingPath)
CleanLogfiles($ETLLoggingPath2)

Aufgabenplanung:

Programm:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

Argument:
-command "C:\Scripts\Pfad_zum_Skript.ps1"
 

SBS SQL Datenbanken verkleinern:
Achtung: Pfade bitte anpassen!

Das Script muss zwei mal ausgeführt werden, damit die DBs effektiv kleiner werden!

cd C:\Backup\

@ECHO OFF
SETLOCAL

rem Zeitstempel erzeugen
for /f "tokens=1-4 delims=. " %%i in ("%date%") do (
  set day=%%i
  set month=%%j
  set year=%%k
)

for /f "tokens=1-4 delims=.:, " %%i in ("%time%") do (
 set hour=%%i
 set minute=%%j
 set second=%%k
 set hundredth=%%l
)

REM Build a list of databases to backup
SET DBList=SQLDBList.txt
SqlCmd -E -S \\.\pipe\mssql$microsoft##ssee\sql\query -h-1 -W -Q "SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE [Name] NOT LIKE 'master' AND [Name] NOT LIKE 'model' AND [Name] NOT LIKE 'msdb' AND [Name] NOT LIKE 'tempdb' AND [Name] NOT LIKE 'SUSDB' AND [Name] NOT LIKE 'WSS_SEARCH%%'" > "%DBList%"



REM Backup each database, prepending the date to the filename
FOR /F %%I IN (%DBList%) DO (
ECHO Backing up database: %%I
SqlCmd -E -S \\.\pipe\mssql$microsoft##ssee\sql\query -Q "BACKUP LOG [%%I] TO  DISK = N'C:\Backup\SP_Config%%I' WITH NOFORMAT, NOINIT,  NAME = N'Sicherung', SKIP, NOREWIND, NOUNLOAD,  STATS = 10"
ECHO.
)


REM Shrink each database, prepending the date to the filename
FOR /F %%I IN (%DBList%) DO (
ECHO Shrinking up database: %%I

SqlCmd -E -S \\.\pipe\mssql$microsoft##ssee\sql\query -Q "USE [%%I]; DBCC SHRINKFILE (N'%%I_log' , 0, TRUNCATEONLY)"
ECHO.
)


REM Clean up the temp file
IF EXIST “%DBList%” DEL /F /Q “%DBList%”


ENDLOCAL

Freitag, 2. September 2016

[SQL] SQL Server Express 2014 installieren auf Foundation / Essentials mit Domäne

Als erstes, die Voraussetzungen prüfen:
https://msdn.microsoft.com/en-us/library/ms143506(v=sql.120).aspx

(Grob gesagt, alles ab Server 2008 SP2 geht)

Download des Installers von Microsoft:
https://www.microsoft.com/de-ch/server-cloud/products/sql-server-editions/sql-server-express.aspx

SQL Server Express mit Tools auswählen

Falls Server Deutsch (Schweiz) ist (=Fehler bei Start von Setup.exe bez. Sprache), die Sprache während der installation auf Deutsch (Deutschland) setzen

Bekannter Fehler, bei Server mit Domäne:
Fehler 0x851A001A

Ändern Sie den Benutzer, welcher den Dienst Datenbank Engine ausführt auf NT-AUTORITÄT\Netzwerkdienst

Danach klappt die Installation ohne Fehler

Spreache wieder auf Deutsch (Schweiz) ändern nicht vergessen!

Mittwoch, 10. August 2016

[SERVER][SQL] Windows eigene SQL Datenbanken verkleinern



Server 2008 SharepointXXX.LDF oder andere Windows Internal Database sind riesig

Schnelles freimachen von Speicherplatz
(Achtung: Datei wächst wieder nach gewisser Zeit)


SQL Server Management Studio Express starten (Als Administrator starten)

Servername: \\.\pipe\mssql$microsoft##ssee\sql\query
Windows-Anmeldung

Rechtsklick auf die Datenbank - Tasks - Sichern…

Sicherungstyp: Transaktionsprotokoll
Ziel: Festplatte und Ordner hinzufügen

OK Startet das Backup

Nach dem Backup:
Rechtsklick auf die Datenbank à Tasks à Verkleinern à Dateien

Dateityp: Protokoll

OK Startet das verkleinern

Falls die Datei XXX.LDF nicht kleiner wird, Vorgang wiederholen
(Teilweise braucht es 2 Backups aus irgendeinem Grund)

Ebenfalls:
Verbinden zu:
[servername]\SBSMonitoring

Die DB kann auch riesig werden mit der Zeit


Fehlermeldung: Unzureichende Zugriffsrechte

DB Owner Setzen:

Neue Abfrage:
sp_helpdb

Wenn in der Spalte „owner“ der wert „NULL“ ist, kann mit folgendem Befehl ein neuer Besitzer gesetzt werden:

sp_changedbowner ,DOMAIN\USER’

Mit dem ersten Befehl überprüfen, ob der Besitzer korrekt gesetzt wurde