Skrypt powłoki do tworzenia kopii zapasowych bazy danych MongoDB
- 1631
- 78
- Tacjana Karpiński
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:
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.
- « Jak zainstalować serwer Zabbix 5.0 na Ubuntu 20.04
- Jak zainstalować VirtualBox 6.1 na Ubuntu 20.04 »