MongoDB
1 前言
一个问题,一篇文章,一出故事。
上一个章节,我们使用导出脚本导出mongoDB的数据,详细如下,
所以,本章将实现使用脚本导入mongoDB数据。
2 最佳实践
2.1 创建脚本
mkdir ~/scripts/ vim ~/scripts/mongoimportAllData.sh
加入如下配置,
#!/bin/bash
mongoHost="localhost"
mongoPort="27017"
backupDir="/backup/comchatBackup/mongoExport"
mongoImportLog="/var/log/mongodb/mongoImport.log"
cd "$backupDir"
if [ $? != 0 ]; then
echo "`date '+%Y-%m-%d %H:%M:%S'` Backup storage '""$backupDir""' access failed!" | tee -a "$mongoImportLog"
exit 0
fi
if [ ! -d `dirname "$mongoImportLog"` ]; then
mkdir -p `dirname "$mongoImportLog"`
fi
echo "`date '+%Y-%m-%d %H:%M:%S'` Backup restore start!" | tee -a "$mongoImportLog"
for i in `find -name \*.json -type f | sed 's/.\///g'`; do
importFile="$i"
dataBase=`echo "$importFile" | cut -d"." -f1`
collection=`echo "$importFile" | cut -d"." -f2`
mongoimport -h "$mongoHost" --port "$mongoPort" -d "$dataBase" -c "$collection" --type=json --file "$importFile"
if [ $? == 0 ]; then
echo "`date '+%Y-%m-%d %H:%M:%S'` Backup restore $dataBase.$collection successfully!" | tee -a "$mongoImportLog"
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Backup restore $dataBase.$collection failed!" | tee -a "$mongoImportLog"
fi
done
echo "`date '+%Y-%m-%d %H:%M:%S'` Backup restore end!" | tee -a "$mongoImportLog"
2.2 执行导出操作
sh ~/scripts/mongoimportAllData.sh
执行过程中,如果遇到如下错误,
Failed: invalid JSON input. Position: 171. Character: N
“mongoimport”命令可加入如下参数解决,
--legacy
2.3 检查执行日志
cat /var/log/mongodb/mongoImport.log
错误处理参阅
===================
https://stackoverflow.com/questions/59381172/mongoimport-error-failed-invalid-json-input
没有评论