Skrip shell untuk sandaran pangkalan data MongoDB

Skrip shell untuk sandaran pangkalan data MongoDB

Adakah anda tahu bahawa pangkalan data MongoDB mempunyai mekanisme sandaran terbina dalam yang boleh diakses melalui shell atau proses mongod? Proses Mongod secara automatik mengambil gambar setiap kali peralihan pangkalan data ke negeri lain. Negeri -negeri yang berbeza ini adalah: bermula, berhenti, menaik taraf, dan pulih selepas kemalangan. Walau bagaimanapun, gambar -gambar ini tidak akan mencukupi sekiranya berlaku kegagalan bencana seperti rasuah cakera atau bencana alam. Untuk melindungi data berharga anda dari ancaman tersebut, adalah dinasihatkan untuk melaksanakan strategi sandaran automatik untuk pangkalan data MongoDB anda.

Dalam artikel ini, kami akan membincangkan cara membuat sandaran automatik untuk pangkalan data MongoDB anda menggunakan skrip shell yang mudah.

Skrip shell untuk sandaran mongodb

Skrip shell untuk sandaran pangkalan data MongoDB boleh didapati di GitHub. Anda boleh menggunakan pautan di bawah untuk mendapatkan akses skrip shell.

https: // github.com/tecrahul/skrip shell/gumpalan/master/sandaran-mongo.sh

Sebagai alternatif, anda boleh menyalin skrip di bawah dan menyimpannya pada sistem Linux anda.

#!/tong/bash ############################################# ########################### mongodb Pangkalan data sandaran sandaran ## Ditulis oleh: Rahul Kumar ## url: https: // tecadmin.Net/ Shell-Script-Backup-Mongodb-Database/ ## Kemas kini pada: 20 Jun, 2020 ## #############################################################################################################################################################araan ###################################### eksport jalur =/bin:/ usr/bin:/usr/local/bin hari ini = "tarikh +"%d%b%y "" ########################### ################################################# ############################################### ############# db_backup_path = "/sandaran/mongo" mongo_host = "localhost" mongo_port = "27017"#jika mongodb dilindungi dengan kata laluan nama pengguna. # Set auth_enabled ke 1 # dan tambahkan nilai mongo_user dan mongo_passwd dengan betul auth_enabled = 0 mongo_user = "mongo_passwd =" # set database_names ke "semua" untuk sandaran semua pangkalan data. # atau tentukan nama pangkalan data yang dipisahkan dengan ruang untuk sandaran # pangkalan data tertentu sahaja. 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/$ today if [$ auth_enabled -eq 1]; kemudian auth_param = "--username $ mongo_user --password $ mongo_passwd" fi if [$ database_names = "all"]; Kemudian echo "anda telah memilih untuk membuat sandaran semua pangkalan data" mongodump -host $ mongo_host --port $ mongo_port $ auth_param --out $ db_backup_path/ $ hari ini/ else echo " pangkalan data "untuk db_name dalam $ database_names do mongodump -host $ mongo_host --port $ mongo_port --da $ db_name $ auth_param --out $ db_backup_path/ $ hari ini Fi ####### membuang sandaran lebih tua daripada backup_retain_days hari ####### dbdeldate = "date +"%d%b%y " -date = "$ backup_retain_days hari yang lalu" "jika [ ! -z $ db_backup_path]; kemudian cd $ db_backup_path jika [ ! -z $ dbdeldate] && [-d $ dbdeldate]; kemudian rm -rf $ dbdeldate fi fi ###################### ujung skrip ##################################################################################################################################################araan #################
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#!/tong/bash ############################################# ########################## mongodb Pangkalan data sandaran sandaran ## Ditulis oleh: Rahul Kumar ## url: https: // tecadmin.Net/Shell-Script-Backup-Mongodb-Database/## Kemas kini pada: 20 Jun, 2020 ###########################################################################################################################################araan ###################################### eksport jalur =/bin:/ usr/bin:/usr/local/bintoday = 'date +"%d%b%y"' ############################## ############################################### ############################################### ############ db_backup_path = '/sandaran/mongo'mongo_host =' localhost'mongo_port = '27017'#jika mongodb dilindungi dengan kata laluan nama pengguna.# Tetapkan auth_enabled ke 1 # dan tambahkan nilai mongo_user dan mongo_passwd dengan betul auth_enabled = 0mongo_user = "mongo_passwd =" # set database_names ke "semua" untuk sandaran semua pangkalan data.# atau tentukan nama pangkalan data yang dipisahkan dengan ruang untuk sandaran # pangkalan data tertentu sahaja. Database_names = 'semua'#database_names = 'mydb db2 newdb' ## bilangan hari untuk menyimpan copybackup_retain_days tempatan ############################################### ############################################### ############### mkdir -p $ db_backup_path/$ hari ini auth_param = "" if [$ auth_enabled -eq 1]; kemudian auth_param = "--username $ mongo_user --password $ mongo_passwd" fi if [$ database_names = "all"]; Kemudian echo "anda telah memilih untuk membuat sandaran semua pangkalan data" mongodump -host $ mongo_host --port $ mongo_port $ auth_param --out $ db_backup_path/$ hari ini/else echo " pangkalan data "untuk db_name dalam $ database_names do mongodump -host $ mongo_host --port $ mongo_port --d $ db_name $ auth_param -keluar $ db_backup_path/ $ today/ donefi ####### membuang sandaran lebih tua daripada backup_retain_days hari ####### dbdeldate = 'date +"%d%b%y" - -date = "$ backup_retain_days beberapa hari yang lalu" 'jika [ ! -z $ db_backup_path]; kemudian cd $ db_backup_path jika [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Kemudian RM -RF $ dbdeldate fifi ###################### ujung skrip #########################################################################################################################################################################araan ###############

Jalankan skrip secara manual

Simpan skrip di atas dalam fail dengan .sh sambungan. Saya mahu menyimpan semua sandaran di bawah /direktori sandaran. Jadi meletakkan skrip shell dalam direktori yang sama. Kemudian tetapkan kebenaran melaksanakan skrip.

chmod +x /sandaran /sandaran-mongo.sh  

Jalankan skrip shell seperti di bawah:

Bash /Backup /Backup-Mongo.sh  

Jadual Skrip Backup MongoDB

Anda boleh dengan mudah menjadualkan skrip ini di bawah Crontab ke pangkalan data sandaran secara berkala. Untuk mengedit Crontab, lari Crontab -e Perintah dan masukkan kod di bawah:

## pangkalan data sandaran setiap hari di 02:00 pagi 0 2 * * * /sandaran /mongo-backup.sh
12## pangkalan data sandaran setiap hari di 02:00 am0 2 * * * /sandaran /mongo-backup.sh

Balut

Dalam tutorial ini, kami telah membincangkan skrip shell yang membantu menyokong pangkalan data MongoDB secara manual. Juga, anda boleh menjadualkan skrip untuk membuat sandaran pangkalan data secara berkala.