Você pode escrever um script do PowerShell e fazer com que o Agendador de Tarefas do Windows o execute a cada 2 horas
Um script de exemplo rápido e sujo:
# Declare variables
$db = "[DB NAME]"
$user = "[DB USERNAME]"
$pw = "[DB PASSWORD]"
$date = (Get-Date).ToString("yyyy-MM-dd_HH.mm.ss")
$mysql_backupfile = ".\backup_$date.sql"
$zipped_backupfile = "$mysql_backupfile.zip"
# Backup MySql database
mysqldump --user=$user --password=$pw --databases $db > $mysql_backupfile
# Compress file using 7zip
sz a -tzip $zipped_backupfile $mysql_backupfile
# Remove uncompressed backup file
rm -Path $mysql_backupfile
Altere o nome do banco de dados, nome de usuário e senha e formato de data para o que você precisar.
Nota: Não tenho certeza absoluta das implicações de segurança de inserir o nome de usuário e a senha diretamente no script, mas se seu servidor estiver seguro, tenho certeza de que tudo ficará bem. Mas você pode carregar as credenciais da maneira que quiser (por exemplo, de uma variável de ambiente)
Editar para pergunta no comentário:
Para excluir arquivos '.zip' com mais de três dias:
Get-ChildItem -Filter '*.zip' |
where { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
Remove-Item