Automātiski dublējiet vairākas MySQL vai MariaDB datu bāzes

Ievads

Šajā pārskatā mēs apskatīsim, kā dublēt vairākas MySQL vai MariaDB datu bāzes, kas atrodas tajā pašā mašīnā, izmantojot pielāgotu bash skriptu un iestatot cron darbu.

Datu bāzes dublējums(-i)

Mēs pieņemsim, ka mūsu Vultr instancē ir trīs MySQL datu bāzes ar nosaukumu db-vultr-site , db-vultr-blog , db-vultr-app (Neuztraucieties par šo datu bāzu izveidi, varēsiet aizstāt to nosaukumus jūsu gadījumā, ja tie tiek izmantoti skriptā tālāk 2. darbībā) .

  1. Piesakieties savā MySQL vai MariaDB datu bāzē un palaidiet zem vaicājuma, lai izveidotu datu bāzes lietotāju, db_user_backupskas apstrādātu dublējumus

    GRANT LOCK TABLES, SELECT, SHOW VIEW, REPLICATION CLIENT ON *.* TO 'db_user_backups'@'%' IDENTIFIED BY '{COMPLEX-PASSWORD}';
    

    Palaidiet arī tālāk, lai pārliecinātos, vai MySQL ir konfigurēts, lai pareizi atjaunotu saglabātās procedūras

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Iestatiet nepieciešamo direktoriju struktūru un nepieciešamos failus

    # create backup directory with environment and log file
    sudo mkdir /backups && cd /backups
    sudo touch .env db-backup.sh db-backup.log
    sudo chmod -R 775 /backups
    sudo chmod -R g+s /backups
    sudo chmod +x db-backup.sh
    
    # add mysql backup user credentials into environment file
    echo "export MYSQL_USER=db_user_backups" > /backups/.env
    echo "export MYSQL_PASS={COMPLEX-PASSWORD}" >> /backups/.env
    
  3. Atveriet db-backup.sh nano /backups/db-backup.shun ielīmējiet tajā zemāk esošo kodu, pēc tam saglabājiet failu (Ctrl+X -> Y -> nospiediet taustiņu Enter) .

    DB_NAMES=( 'db-vultr-site' 'db-vultr-blog' 'db-vultr-app' ) #replace with your own database name(s)
    BKUP_NAMES=()
    BKUP_DIR="/backups"
    
    # get total number of directories
    total_dbs=${#DB_NAMES[@]}
    
    # create backup file names
    for (( i=0; i<${total_dbs}; i++ )); do
        BKUP_NAMES[$i]="`date +%Y%m%d%H%M`-backup-$${DB_NAMES[$i]}.sql.gz"
    done
    
    # get backup users credentials
    source $BKUP_DIR/.env
    
    # create backups
    for (( i=0; i<${total_dbs}; i++ )); do
        # NOTE: --routines flag makes sure stored procedures are also backed up
        mysqldump --routines -u ${MYSQL_USER} -p${MYSQL_PASS} | gzip > ${BKUP_DIR}/${BKUP_NAMES[$i]}
    done
    

    Iepriekš minētais kods tiek cauri masīvam ar tās(-o) datu bāzes(-u) nosaukumiem, kuru(-u) vēlaties dublēt, un to dara.

Cronjob iestatīšana

Iestatiet cronjob palaišanu katru pusnakti, kurā tiek palaists dublējuma skripts un rezultāts/izvade tiek saglabāta dublējuma žurnālā.

  1. Atveriet crontab

    crontab -e
    
  2. Pievienojiet zemāk esošo ierakstu crontab

    0 0 * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

    Piezīme. Testēšanas laikā varat iestatīt cronjob palaišanu ik pēc 1 minūtes, kā norādīts tālāk

    * * * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

    -VAI- ik pēc 5 minūtēm (aizstāt 5 ar vēlamo minūšu skaitu)

    */5 * * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

Ko tālāk

Jūs, visticamāk, nevēlaties, lai jūsu dublējums(-i) būtu tajā pašā serverī(-s), kurā(-s) darbotos jūsu datu bāze, bet gan serverī, kas atrodas citā ģeogrāfiskā vietā. Ir vairāki veidi, kā to izdarīt, sākot no SFTP izmantošanas līdz pielāgotu rīku izmantošanai, ko nodrošina neskaitāmi pieejamie mākoņu krātuves pakalpojumu sniedzēji. Viena laba alternatīva ir Rsync, kā paskaidrots šeit - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Raksta Lami Adabonyan

Atstājiet komentāru

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk