sql >> Database teknologi >  >> RDS >> Database

Database kun sikkerhedskopier i WHM

Nogle klienter spurgte os, om du kun kan opsætte database backup i WHM. For nogle vil dette lyde mærkeligt, men der er brugere, der ønsker sådan en funktion.

Du kan få adgang til WHM backup-indstillinger via WHM->Backup->Backup Configuration . Desværre er der ingen mulighed i øjeblikket for kun at sikkerhedskopiere brugernes databaser.

Opdatering:Fra den 20. april 2020 er denne cPanel-anmodning i "Åben diskussion"-status. Du kan kommentere og stemme på cPanel Feature Requests Site

Hvilke løsninger har du? Du kan bruge bash-kommandoer. En kommando til at sikkerhedskopiere alle databaserne på serveren til et .gz-arkiv er:

root@www [/backup]# mysqldump --all-databases | gzip > /backup/$(date +%Y-%h-%d)-alldatabases.sql.gz

Dette vil oprette en sikkerhedskopi med alle MySQL/MariaDB-databaser på serveren. Filnavnet vil inkludere den aktuelle dato. (f.eks. 2018-Sep-25-alldatabases.sql.gz) Du kan ændre kommandoen efter dine behov. Du kan også oprette et cron-job for at køre det på bestemte tidspunkter.

En anden mulighed er at sikkerhedskopiere hver database på serveren individuelt. Til dette skal du oprette en ny fil som backupdbs.sh Indholdet af filen er:

#!/bin/bash

mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
date=$(date +%Y-%h-%d)

backupdir="/backup"
mkdir -p $backupdir/$date

databases=`$mysql -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema)"`
for db in $databases; do
echo $db
$mysqldump --opt --databases $db | gzip > "$backupdir/$date/$db.sql.gz"
done

Sådan kører du scriptet:

root@www [/backup]# perl backupdbs.sh

Som i det foregående tilfælde kan du også justere scriptet efter dine behov og oprette et cron-job.


  1. MariaDB ROUND() vs FLOOR()

  2. DATE_SUB() Eksempler – MySQL

  3. Brug af SqlParameter i SQL LIKE-klausul virker ikke

  4. Hvordan ved du, hvad et godt indeks er?