Ręczne wykonywanie kopii zapasowych jest zawodne – w natłoku codziennych obowiązków łatwo o nich zapomnieć, szczególnie gdy system działa bez problemów przez długi czas. Automatyzacja procesu tworzenia kopii zapasowych Insert Gratyfikant nexo eliminuje ten czynnik ryzyka i zapewnia, że najnowszy punkt przywrócenia jest zawsze dostępny. Gratyfikant nexo oferuje możliwość automatycznych backupów zarówno przez wbudowane narzędzia, jak i przez skrypty systemowe.
Automatyczne kopie przez nexo.Serwis
nexo.Serwis może być skonfigurowany do automatycznego tworzenia kopii zapasowych w zaplanowanych godzinach. Konfiguracja odbywa się przez plik ustawień nexo.Serwis lub panel administracyjny aplikacji (zależnie od wersji). Backup automatyczny tworzony jest w formacie .nexobak w zdefiniowanej lokalizacji. Zalecane jest skonfigurowanie backupu na godziny nocne (np. 2:00), gdy nikt nie pracuje w systemie.
Automatyczny backup SQL Server przez SQL Server Agent
W konfiguracji z SQL Server rekomendowany jest backup przez SQL Server Agent. Przykładowa definicja zadania dla backupu pełnego o 2:00 każdej nocy:
USE msdb;
EXEC sp_add_job @job_name = N'Backup GratyfikantNexo nightly';
EXEC sp_add_jobstep @job_name = N'Backup GratyfikantNexo nightly',
@step_name = N'Full backup',
@command = N'BACKUP DATABASE [GratyfikantNexo] TO DISK =
''D:\Backup\GratyfikantNexo_'' + CONVERT(VARCHAR,GETDATE(),112) + ''.bak''
WITH COMPRESSION, CHECKSUM;';
EXEC sp_add_schedule @schedule_name = N'Codziennie 2:00',
@freq_type = 4, @freq_interval = 1,
@active_start_time = 020000;
EXEC sp_attach_schedule @job_name = N'Backup GratyfikantNexo nightly',
@schedule_name = N'Codziennie 2:00';
EXEC sp_add_jobserver @job_name = N'Backup GratyfikantNexo nightly';Skrypt PowerShell z Harmonogramem zadań Windows
Dla instalacji SQLite lub gdy SQL Server Agent nie jest dostępny, skrypt PowerShell w połączeniu z Harmonogramem zadań Windows to skuteczne rozwiązanie. Przykładowy skrypt tworzący kopię z rotacją (7 dziennych, 4 tygodniowych, 12 miesięcznych):
$backupDir = "D:\Backup\GratyfikantNexo"
$sourceFile = "C:\ProgramData\Insert\nexo.Serwis\data\GratyfikantNexo.db"
$date = Get-Date -Format "yyyyMMdd_HHmm"
$destFile = "$backupDir\daily\GratyfikantNexo_$date.db"
# Kopia dzienna
Copy-Item $sourceFile $destFile
# Rotacja – usuń pliki starsze niż 7 dni
Get-ChildItem "$backupDir\daily" -Filter "*.db" |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item
# Kopia tygodniowa – w każdą niedzielę
if ((Get-Date).DayOfWeek -eq "Sunday") {
Copy-Item $destFile "$backupDir\weekly\GratyfikantNexo_week$(Get-Date -UFormat '%V').db"
Get-ChildItem "$backupDir\weekly" | Sort-Object LastWriteTime |
Select-Object -SkipLast 4 | Remove-Item
}Monitoring i alerty kopii zapasowych
Sam backup bez monitoringu to połowa rozwiązania. Skrypt powinien zapisywać wyniki do pliku dziennika oraz wysyłać alert e-mail w przypadku niepowodzenia. Dla SQL Server Agent można skonfigurować powiadomienie e-mail przy błędzie zadania przez SQL Server Database Mail. Dla skryptu PowerShell można wysłać wiadomość przez Send-MailMessage. Regularnie (co tydzień) sprawdzaj dziennik backupów i wykonuj testowe przywrócenie – tylko zweryfikowana kopia jest prawdziwym zabezpieczeniem.