MongoDB

2021/01/26 posted in  工作问题

MongoDB 服务启动

新下载的数据库

1. 配置ymal

文件格式config{端口号}.ymal ,配置几个副本集写几个文件,注意端口号

内容如下

systemLog:
  destination: file
  path: "./logs/mongodb.log"
  logAppend: true
storage:
  dbPath: "./data/db"
  wiredTiger:
    engineConfig:
      cacheSizeGB: 6
    collectionConfig:
      blockCompressor: "zstd"
replication:
  replSetName: "rs0"
net:
  bindIp: "0.0.0.0"
  port: 28017
setParameter:
  transactionLifetimeLimitSeconds: 900
  maxTransactionLockRequestTimeoutMillis: 3000

2. 启动服务 --start.bat

执行 start.bat 脚本
添加几个复制集 添加几个 ymal

@echo off
md data\db
md data\db1
md data\db2
md backup
path=%path%;.\bin\;
@start mongod.exe --config config28017.yaml
@start mongod.exe --config config28018.yaml
@start mongod.exe --config config28019.yaml
pause

3. 启动复制集 -- replset.bat

执行replset.bat

replset.js
注意 host 必须是对外开发的 ip

rs.initiate({ _id: "rs0",members: [{_id: 0,host: "192.168.3.183:28017"},{ _id: 1,host: "192.168.3.183:28018"},{ _id: 2,host: "192.168.3.183:28019"}]})

4. 创建数据库和用户名 -- createdb.bat

执行 createdb.bat

createdb.js
url 为复制集 url

var url = "mongodb://192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/?replicaSet=rs0";
var db = connect(url);
db.getSiblingDB("cobot").runCommand( {
       createUser: "cobot",
       pwd: "serc1727",
       roles: [
                { role: "readWrite", db: "cobot" }
              ]
});

5. 从旧的复制集导出数据并导入新复制集 --backup.bat

  • 先执行backup.bat

--host 旧复制集的 ip --port 旧复制集的端口 --db 要导出的数据库 --out 导出文件位置

@echo off
path=%path%;.\bin\;
mongodump.exe --host 192.168.1.193  --port 28017 --db cobot --out ./data\backup
pause
  • 执行完成后执行restore.bat

--host 本地服务 ip:port --db cobot --dir 上一步导出文件位置

@echo off
path=%path%;.\bin\;
mongorestore.exe --host 127.0.0.1:28017 --db cobot --dir ./data\backup\cobot
pause

6. 删除旧数据

执行removeCol.bat
remove.js

var url = "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0";
var db = connect(url);
var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++){  
	var   collName = collections[i];
	var  reatain = ["systemLogMongo","excludeFile","fileSuffix","userMongo","userRoleMongo","menuMongo","codeRule","codeRuleClass","codeRulePackage","commonConfig","commonDict","compileConfig","compilerConfig","configFather","configLibrary","deptMongo","detector","expireData","globalLogEntity","languageConfigC","languageConfigEntity","loginLogMongo","roleMenuMongo","roleMongo","roleMongo","userRoleMong"];
 	var col = db.getCollection(collName);
	var index = reatain.indexOf(collName);
	if (index <0 ){
		print(' remove collectiion start: ' + collName);
		 var col = db.getCollection(collName);
		 col.remove({});
		 print('remove collectiion end : ' + collName);
	}
}

如果是旧的数据库需要导出必要数据

重复 1 、 2 、3 步骤

执行export.bat

@echo off
path=%path%;.\bin\;
echo remove rule start
mongo.exe --nodb removeRule.js
echo remove rule end
echo export rule start
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=codeRule --out="./backup/codeRule.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=codeRuleClass --out="./backup/codeRuleClass.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=codeRulePackage --out="./backup/codeRulePackage.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=systemLogMongo --out="./backup/systemLogMongo.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=excludeFile --out="./backup/excludeFile.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=fileSuffix --out="./backup/fileSuffix.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=userMongo --out="./backup/userMongo.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=userRoleMongo --out="./backup/userRoleMongo.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=menuMongo --out="./backup/menuMongo.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=commonConfig --out="./backup/commonConfig.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=commonDict --out="./backup/commonDict.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=compileConfig --out="./backup/compileConfig.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=configFather --out="./backup/configFather.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=configLibrary --out="./backup/configLibrary.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=deptMongo --out="./backup/deptMongo.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=detector --out="./backup/detector.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=expireData --out="./backup/expireData.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=globalLogEntity --out="./backup/globalLogEntity.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=languageConfigC --out="./backup/languageConfigC.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=languageConfigEntity --out="./backup/languageConfigEntity.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=loginLogMongo --out="./backup/loginLogMongo.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=roleMenuMongo --out="./backup/roleMenuMongo.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=roleMongo --out="./backup/roleMongo.json"
mongoexport --uri "mongodb://cobot:serc1727@192.168.1.193:28019/cobot" --collection=userRoleMong --out="./backup/userRoleMong.json"
echo export rule end
echo import rule start
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=codeRule  --file=./backup/codeRule.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=codeRuleClass  --file=./backup/codeRuleClass.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=codeRulePackage  --file=./backup/codeRulePackage.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=systemLogMongo  --file=./backup/systemLogMongo.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=excludeFile  --file=./backup/excludeFile.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=fileSuffix  --file=./backup/fileSuffix.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=userMongo  --file=./backup/userMongo.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=userRoleMongo  --file=./backup/userRoleMongo.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=menuMongo  --file=./backup/menuMongo.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=commonConfig  --file=./backup/commonConfig.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=commonDict  --file=./backup/commonDict.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=compilerConfig  --file=./backup/compilerConfig.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=configFather  --file=./backup/configFather.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=configLibrary  --file=./backup/configLibrary.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=deptMongo  --file=./backup/deptMongo.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=detector  --file=./backup/detector.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=expireData  --file=./backup/expireData.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=globalLogEntity  --file=./backup/globalLogEntity.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=languageConfigC  --file=./backup/languageConfigC.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=languageConfigEntity  --file=./backup/languageConfigEntity.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=loginLogMongo  --file=./backup/loginLogMongo.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=roleMenuMongo  --file=./backup/roleMenuMongo.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=roleMongo  --file=./backup/roleMongo.json
mongoimport --uri "mongodb://cobot:serc1727@192.168.3.183:28017,192.168.3.183:28018,192.168.3.183:28019/cobot?replicaSet=rs0" --collection=userRoleMong  --file=./backup/userRoleMong.json
echo import rule start
pause