Skrypt powłoki do tworzenia kopii zapasowych bazy danych MongoDB

Skrypt powłoki do tworzenia kopii zapasowych bazy danych MongoDB

Czy wiesz, że bazy danych MongoDB mają wbudowany mechanizm kopii zapasowej, który jest dostępny za pośrednictwem powłoki lub procesu Mongood? Proces Mongooda automatycznie wykonuje migawkę za każdym razem, gdy baza danych przechodzi do innego stanu. Te różne stany to: rozpoczęcie, zatrzymanie, aktualizację i powrót do zdrowia po wypadku. Jednak te migawki nie wystarczą w przypadku katastrofalnych niepowodzeń, takich jak korupcja dysku lub klęska żywiołowa. Aby chronić cenne dane przed takimi zagrożeniami, zaleca się wdrożenie zautomatyzowanej strategii kopii zapasowej dla baz danych MongoDB.

W tym artykule omówimy, jak tworzyć automatyczne kopie zapasowe dla swoich baz danych MongoDB za pomocą prostego skryptu powłoki.

Skrypt powłoki dla kopii zapasowej MongoDB

Skrypt powłoki dla kopii zapasowej bazy danych MongoDB jest dostępny na Github. Możesz użyć poniższego linku, aby uzyskać dostęp do skryptu powłoki.

https: // github.com/tecrahul/shell-scripts/Blob/Master/Backup-Mongo.cii

Alternatywnie możesz skopiować poniższy skrypt i zapisać go w systemie Linux.

#!/bin/bash #########################################################################. ########################## ## ## MongoDB Database Backup Script ## Wpisanie przez: Rahul Kumar ## url: https: // tecadmin.net/ shell-script-backup-mongoDB-DATABASE/ ## Aktualizacja: 20 czerwca 2020 ## ######################################################### #######################################################. usr/bin:/usr/local/bin Today = "data +"%d%b%y "" ################################################################. ###################################################### #########################################################. ############## DB_BACKUP_PATH="/backup/mongo" MONGO_HOST="localhost" MONGO_PORT="27017" # If MongoDB is protected with a username password. # Ustaw Auth_Enabled na 1 # i dodaj wartości Mongo_User i Mongo_Passwd poprawnie auth_enabled = 0 Mongo_user = "Mongo_Passwd =" # SET DATABASE_NAMES. # lub podaj nazwy baz danych oddzielone przestrzenią do tworzenia kopii zapasowych # Tylko określone bazy danych. DATABASE_NAMES="ALL" #DATABASE_NAMES='mydb db2 newdb' ## Number of days to keep a local backup copy BACKUP_RETAIN_DAYS=30 ####################### ######################################################################### #########################################################. ################## Mkdir -p $ db_backup_path/$ dziś if [$ auth_enabled -eq 1]; następnie auth_param = "--username $ mongo_user - -password $ Mongo_Passwd" fi if [$ batabase_names = "all"]; Następnie echo "masz kopię zapasową wszystkich baz danych" MongoDump - -Host $ Mongo_Host --port $ Mongo_Port $ auth_param --out $ db_backup_path/ $ Dzisiaj/ else echo "Backu bazy danych „dla nazwy db_name in $ batabase_names do monongoDump - -host $ mongo_host --port $ mongo_port - -db $ db_name $ auth_param --out $ db_backup_path/ $ Dzisiaj/ doszło fi #######data = "$ backup_retain_days dni temu" "Jeśli [ ! -Z $ db_backup_path]; Następnie CD $ db_backup_path jeśli [ ! -Z $ dbdeldate] && [-d $ dbdeldate]; then rm -rf $DBDELDATE fi fi ######################### End of script ############ ##################
12345678910111213141516171819202122232425262728293031323334353633738394041424344445464748495051525354555657588596061626366646656662636646656662636646656662636646656662636646656662636646465666263664646566626366464656662636646465666263664646566266666467#!/bin/bash #########################################################################. ############################ MongoDB Database Backup Script ## Written By: Rahul Kumar## URL: https://tecadmin.net/shell-script-backup-mongoDB-DATABASE/## aktualizacja: 20 czerwca 2020 ########################################################## #######################################################. usr/bin:/usr/local/bintoday = 'data +"%d%b%y"' ########################################################### #########################################################. #########################################################. ############# DB_BACKUP_PATH='/backup/mongo'MONGO_HOST='localhost'MONGO_PORT='27017' # If MongoDB is protected with a username password.# Ustaw auth_enabled na 1 # i dodaj wartości Mongo_User i Mongo_Passwd poprawnie auth_enabled = 0mongo_user = "Mongo_Passwd =" # set Database_names do „Wszystkie”, aby zapasowe wszystkie bazy danych.# lub podaj nazwy baz danych oddzielone przestrzenią do tworzenia kopii zapasowych # Tylko określone bazy danych. DATABASE_NAMES='ALL'#DATABASE_NAMES='mydb db2 newdb' ## Number of days to keep a local backup copyBACKUP_RETAIN_DAYS=30 ######################## #########################################################. #########################################################. #################### Mkdir -p $ db_backup_path/$ dziś auth_param = "" if [$ auth_enabled -eq 1]; następnie auth_param = "--username $ mongo_user - -password $ Mongo_Passwd" fi if [$ batabase_names = "all"]; Następnie echo "masz kopię zapasową wszystkich baz danych" MongoDump - -Host $ Mongo_Host --port $ Mongo_Port $ auth_param --out $ db_backup_path/$ Dzisiaj/else echo "Backu bazy danych „dla nazwy db_name in $ batabase_names do MongoDump - -host $ Mongo_Host --port $ Mongo_Port - -db $ db_name $ auth_param -out $ db_backup_path/ $ dziś/ Donefi ######## -date = "$ backup_retain_days kilka dni temu" 'jeśli [ ! -Z $ db_backup_path]; Następnie CD $ db_backup_path jeśli [ ! -Z $ dbdeldate] && [-d $ dbdeldate]; then rm -rf $DBDELDATE fifi ######################### End of script ############# #################

Uruchom skrypt ręcznie

Zapisz powyższy skrypt w pliku z .cii rozszerzenie. Chcę zapisać wszystkie kopie zapasowe w katalogu kopii zapasowej. Więc umieścił skrypt powłoki w tym samym katalogu. Następnie ustaw uprawnienie Wykonaj na skrypcie.

CHMOD +X /Backup /Backup-Mongo.cii  

Uruchom skrypt powłoki jak poniżej:

Bash /Backup /Backup-Mongo.cii  

Zaplanuj skrypt kopii zapasowej MongoDB

Możesz łatwo zaplanować ten skrypt w ramach crontab, aby regularnie tworzyć tworzenie kopii zapasowych baz danych. Aby edytować crontab, uruchom crontab -e polecenie i dołącz poniższy kod:

## baza danych kopii zapasowej codziennie o 02:00 0 2 * * * * /Backup /Mongo-Backup.cii
12## baza danych kopii zapasowej codziennie o 02:00 AM0 2 * * * /Backup /Mongo-Backup.cii

Zakończyć

W tym samouczku omówiliśmy skrypt powłoki, który pomaga ręcznie tworzyć kopię zapasową baz danych MongoDB. Możesz także regularnie zaplanować scenariusze do tworzenia kopii zapasowych baz danych.