En av de backuptjänster vi erbjuder är Bacula. Den här tjänsten rekommenderar vi främst för fysiska servrar. För våra virtuella plattformar avänder vi Idera och Veeam. För att komma igång med backup av din server behöver du först kontakta oss på mail via support@glesys.se.
Denna guide riktar sig till Windows-användare. Linux-användare hänvisas till Bacula för Linux.
Nedan följer instruktioner på hur du installerar och konfigurerar Bacula för användning tillsammans med vårt system.
Först måste du logga in mot din server som användaren Administrator eller som en användare med rättigheter som motsvarar detta.
Ladda ner och installera den senaste Bacula-versionen här.
Skapa mappen C:\TEMP
.
Leta upp och öppna bacula-fd.conf
. Filen bör uppträda som Edit Client Configuration i Baculas startmeny-mapp.
Ersätt allt innehåll i bacula-fd.conf
med följande.
Om din server är placerad i Stockholm:
Director {
Name = bacula01-fbg-dir
Password = YourPasswordGoesHere
}
FileDaemon {
Name = ds****-fd
FDport = 9102
FDAddress = 0.0.0.0
WorkingDirectory = C:/TEMP
Pid Directory = C:/TEMP
Maximum Concurrent Jobs = 20
}
Director {
Name = bacula01-fbg-mon
Password = "4CbWhjnxrVUuRA0ZSljhByGPJtaoyPTVF"
Monitor = yes
}
Messages {
Name = Standard
director = bacula01-fbg-dir = all, !skipped
}
Om din server är placerad i Falkenberg:
Director {
Name = bacula03-vbdc-dir
Password = YourPasswordGoesHere
}
FileDaemon {
Name = ds****-fd
FDport = 9102
FDAddress = 0.0.0.0
WorkingDirectory = C:/TEMP
Pid Directory = C:/TEMP
Maximum Concurrent Jobs = 20
}
Director {
Name = bacula03-vbdc-mon
Password = "-Uqm36DICZsRgHje12wxxo1JwRd75hyzF"
Monitor = yes
}
Messages {
Name = Standard
director = bacula03-vbdc-dir = all, !skipped
}
Ändra YourPasswordGoesHere
till ett godtyckligt lösenord. Ändra även ds****-fd
till ditt servernamn, t.ex. ds1234-fd
.
Starta om Bacula-tjänsten.
Lägg till regler i brandväggen för Bacula. Bacula måste kunna kommunicera med inkommande trafik på port 9102
och utgående trafik på port 9103
.
Skicka ett meddelande till support@glesys.se som innehåller det nya lösenordet samt en lista på vilka kataloger du vill säkerhetskopiera. Gärna i formatet nedan:
bacula::config { "ServerName":
client => "ServerName",
address => 'IpAddress',
password => 'Password',
files => ['C:/Backup/', 'F:/Internt/'],
storage => 20, #utrymme för de filer som ska ha backup x4
email => 'kund@mail.toppdomän',
excludes => ['C:/Backup/mapp1', 'F:/Internt/mapp2'], #om man inte ska ta backup på undermappar
}
Backup i Bacula sker på filnivå och läser data från disk. När det gäller MSSQL är det inte alltid säkert att all data har sparats ner på disk och återläsning av SQL-datafiler fungerar inte alltid. Därför rekommenderar vi att du dumpar databasen till .bak-filer med jämna mellanrum.
Här nedan visar vi ett exempel på hur du kan schemalägga en dump av databasen.
Skapa en fil eller använd PowerShell ISE med nedanstående innehåll och spara ner den som backup-script.ps1
.
#Backup-MSSQL-Database
#module needed for Powershell to "talk" to SQL
Import-Module “sqlps” -DisableNameChecking
$backupdir = "C:\backup"
$date = get-date -format dd-MM-yyyy
# Create MSSQL-backup folder if not existing
$tmpDir = Test-Path $backupdir\MSSQL\
If ($tmpDir -eq $True) {}
Else {
New-Item $backupdir\MSSQL\ -type directory -force |Out-Null
}
#Deletes everything in the folder (This is needed before the backup because it will otherwise merge with the files that's already there.)
Get-ChildItem $backupdir\MSSQL\ -Recurse | Remove-Item -Force -Recurse
# Check the name of the instance
$checkinstance = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances
if ($checkinstance -match "MSSQLSERVER") {
$instancename = "DEFAULT"
}
Else {
$instancename = $checkinstance
}
# Go to the database location
$computername = Get-ChildItem SQLSERVER:\SQL\
$machinename = $computername.MachineName
# Start the backup
# If the script can't find the location of to the database, run PowerShell with "SQLPS" enabled and type "SQLPS". Traverse the SQL directory until you get to the folder Databases.
# Change the Set-Location to match your new location.
$Error.clear()
Set-location SQLSERVER:\sql\$machinename\$instancename\Databases
Write-Host -Foregroundcolor White " -> [INFO] Starting MSSQL backup"
foreach($database in (Get-ChildItem)) {
$dbName = $database.Name
Backup-SqlDatabase -Database $dbName -BackupFile $backupdir\MSSQL\$dbName-$date.bak -BackupAction Database }
if ($Error -ne $null) {
Write-Host -Foregroundcolor Red " -> [CRITICAL] Could not complete the MSSQL backup"
Wait-Event -Timeout 5
Exit
}
Else {
Write-Host -Foregroundcolor Green " -> [OK] MSSQL backup completed successfully"
}
# If you are using the Standard Version of MSSQL server you can add "-Compression on" like so, to compress the backup.
# Backup-SqlDatabase -Database $dbName -BackupFile $backupdir\MSSQL\$dbName-$date.bak -BackupAction Database -Compression on }
Notera att detta skript är avsett för MSSQL-installationer där det lokala administratörskontot har åtkomst till databasen.
Det skriptet först gör är att importera MSSQL-modulen till PowerShell (är det inte installerat så kommer skriptet inte fungera).
Sedan så kollar det av ifall C:\backup\MSSQL
finns, gör den inte det så kommer den att skapa katalogen.
Nu till det lite mer avancerade. Skriptet försöker lista ut sökvägen till din databas, men det är inte alltid det klarar av det. Det är lite beroende på hur installationen är gjord och vilken version av MSSQL som körs.
Skulle det inte fungera så står det i skriptet hur du manuellt ställer in sökvägen till databasen.
När det är gjort så kommer det leta upp dina databaser och dumpa de till separata .bak-filer.
Detta skript hade kunnat köras med följande instruktion för att spara databasen till fil varje dag klockan 23:00. För att schemalägga dumpningen så öppna kommandotolken och ange följande kommandon:
SchTasks /Create /SC DAILY /TN "Backup" /TR “Powershell.exe C:\Users\Administrator\backup-script.ps1" /ST 23:00
Backup i Bacula sker på filnivå och läser data från disk. När det gäller MySQL är det inte alltid säkert att all data har sparats ner på disk och återläsning av MySQLdata-filer fungerar inte alltid. Därför rekommenderar vi att du dumpar databasen till .sql-filer med jämna mellanrum.
Här nedan visar vi ett exempel på hur du kan schemalägga en dump av databasen. Skapa en fil med nedanstående innehåll och spara ner den som backup-script.bat
:
set MYSQLUSER=<Användarnamn för MySQL>
set MYSQLPASS=<Lösenord för MySQL>
set BATCHFILE=C:\Users\Administrator\dump-database.bat
set DUMPPATH=<Sökväg till backupkatalog> Exempel C:\backup\MySQL
echo @echo off > %BATCHFILE%
echo cd %DUMPPATH% >> %BATCHFILE%
mysql -u%MYSQLUSER% -p%MYSQLPASS% -AN -e"SELECT CONCAT('mysqldump -u%MYSQLUSER% -p%MYSQLPASS% --single-transaction -f ',schema_name,' > ',schema_name,'.sql') FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','performance_schema')" >> %BATCHFILE%
type %BATCHFILE%
C:\Users\Administrator\dump-database.bat
Det skriptet gör är att ansluta till MySQL-databasen och letar upp vilka databaser det ska ta backup av. Därefter så skapar ny .bat-fil (dump-database.bat
) där varje databas blir ett separat jobb.
Den nya .bat-filen skapas i C:\Users\Administrator\
och körs direkt efter att första .bat-filen är klar.
Exempel på hur dump-database.bat
kommer att se ut:
@echo off
cd C:\backup\MySQL
mysqldump -uroot -pSuperSecretMySQLPassword --single-transaction -f datbas1 > databas1.sql
mysqldump -uroot -pSuperSecretMySQLPassword --single-transaction -f databas2 > databas2.sql
Detta skript hade kunnat köras med följande instruktion för att spara databasen till fil varje dag klockan 23:00. För att schemalägga dumpningen så öppna kommandotolken och ange följande kommandon:
SchTasks /Create /SC DAILY /TN "Backup" /TR “C:\Users\Administrator\backup-script.bat" /ST 23:00`
Kontakta oss gärna för mer information. Vi hjälper dig att komma fram till den bästa lösningen för dina behov.