差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
it:database:mongo_install [2021-07-22 19:24] – [配置用例] goldentianyait:database:mongo_install [2024-05-25 15:42] (当前版本) – [MongoDB 架构] goldentianya
行 1: 行 1:
 ====== MongoDB 架构 ====== ====== MongoDB 架构 ======
  
 +[[https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/|安装 [email protected] ubuntu]] [[https://www.mongodb.com/docs/v5.0/tutorial/install-mongodb-on-os-x/|mac OX]]
 +
 +[[https://www.mongodb.com/developer/products/mongodb/mongodb-on-raspberry-pi/|树莓派只能安装4.4版本]]
 +
 +  sudo systemctl restart mongod
  
 ===== 安全 ===== ===== 安全 =====
行 48: 行 53:
 </code> </code>
  
 +此文章提及到主节点[[https://www.jianshu.com/p/73b5ad930f47|人工降级]]为副本集。
 ===== 数据备份 ===== ===== 数据备份 =====
  
行 53: 行 59:
  
 <code bash> <code bash>
-mongodump --uri="mongodb://user:[email protected].136:33720" --authenticationDatabase admin -d Stock -o ~/projects/Backup +mongodump --uri="mongodb://user:[email protected].157:33720" --authenticationDatabase admin -d Stock -o ~/projects/Backup 
-mongorestore --uri="mongodb://user:pw@217.160.61.19:33720" --authenticationDatabase admin -d stockapi ~/projects/Backup/stockapi +mongorestore --uri="mongodb://user:pw@143.47.185.127:33720" --authenticationDatabase admin -d Stock ~/projects/Backup/Stock
- +
 </code> </code>
  
行 63: 行 67:
 ==== 压缩文件备份 ==== ==== 压缩文件备份 ====
  
-将目录压缩到一个文件当中 ''<color #7092be>tar -czf /home/ubuntu/Backup/`date +%F`_mongo_all.tar.gz /home/mongodata/data/</color>'' \\ 解压到原来的目录 ''<color #7092be>tar -xzf /home/mongobackup/2021-07-17_mongo_all.tar.gz -C /</color>''+将目录压缩到一个文件当中 <color #ff7f27>''%%tar -czf /home/ubuntu/Backup/`date +%F`_mongo_all.tar.gz /home/ssd/mongodb%%''</color> 
 + 
 +解压到原来的目录 <color #ff7f27>''%%tar -xzf /home/ubuntu/Backup/2021-07-17_mongo_all.tar.gz -C /%%''</color>
  
 :!: //解压的参数写根目录就可以了,它会按照压缩时的目录解压//  :!: //解压的参数写根目录就可以了,它会按照压缩时的目录解压// 
行 101: 行 107:
   PV         VG Fmt  Attr PSize   PFree   PV         VG Fmt  Attr PSize   PFree
   /dev/sdc1     lvm2 ---  <30.00g <30.00g   /dev/sdc1     lvm2 ---  <30.00g <30.00g
- 
- 
 </code> </code>
  
行 112: 行 116:
   PV /dev/sdc1   VG datavg          lvm2 [<30.00 GiB / <30.00 GiB free]   PV /dev/sdc1   VG datavg          lvm2 [<30.00 GiB / <30.00 GiB free]
   Total: 1 [<30.00 GiB] / in use: 1 [<30.00 GiB] / in no VG: 0 [0   ]   Total: 1 [<30.00 GiB] / in use: 1 [<30.00 GiB] / in no VG: 0 [0   ]
- 
- 
 </code> </code>
  
行 124: 行 126:
 vgreduce datavg /dev/sdd # 减少 vgreduce datavg /dev/sdd # 减少
 pvmove /dev/sdd [/dev/sdc] # 将物理卷 sdd 的数据导出到 /dev/sdc,也可以不添加第二个参数 pvmove /dev/sdd [/dev/sdc] # 将物理卷 sdd 的数据导出到 /dev/sdc,也可以不添加第二个参数
- 
- 
 </code> </code>
  
 === 4 创建逻辑卷 === === 4 创建逻辑卷 ===
  
-[[https://blog.csdn.net/debimeng/article/details/72470030|lvcreate 解释]] 创建一个名为 '"mongolv" 的逻辑卷+创建一个名为 '"mongolv" 的逻辑卷(([[https://blog.csdn.net/debimeng/article/details/72470030|lvcreate 解释]]))
  
 <code bash> <code bash>
行 137: 行 137:
 # lvcreate mongovg -L 5G -n mongolv      #5G的卷 # lvcreate mongovg -L 5G -n mongolv      #5G的卷
 lvcreate -l 102400 -n datalv datavg # 使用6000PE,大概 80%左右的容量 lvcreate -l 102400 -n datalv datavg # 使用6000PE,大概 80%左右的容量
- 
- 
 </code> </code>
  
行 147: 行 145:
 $> lvscan $> lvscan
 ACTIVE   '/dev/datavg/datalv' [<23.44 GiB] inherit ACTIVE   '/dev/datavg/datalv' [<23.44 GiB] inherit
- 
- 
 </code> </code>
  
行 161: 行 157:
 lvextend -l 15  /dev/datavg/datalv   # 最终到15个LE lvextend -l 15  /dev/datavg/datalv   # 最终到15个LE
 lvextend -l +15 /dev/datavg/datalv   # 加15个LE lvextend -l +15 /dev/datavg/datalv   # 加15个LE
- 
- 
 </code> </code>
  
行 172: 行 166:
 # ext4 格式 # ext4 格式
 resize2fs /dev/datavg/datalv resize2fs /dev/datavg/datalv
- 
- 
 </code> </code>
  
行 184: 行 176:
 mkfs.ext4 /dev/datavg/datalv mkfs.ext4 /dev/datavg/datalv
 mkfs.xfs /dev/datavg/datalv #也行 mkfs.xfs /dev/datavg/datalv #也行
- 
- 
 </code> </code>
  
行 193: 行 183:
 mkdir /home/mongosnap mkdir /home/mongosnap
 mount /dev/datavg/datalv /home/ssd mount /dev/datavg/datalv /home/ssd
- 
- 
 </code> </code>
  
行 206: 行 194:
 $> df -Th $> df -Th
 /dev/mapper/datavg-datalv ext4   30G   45M   28G   1% /home/mongosnap /dev/mapper/datavg-datalv ext4   30G   45M   28G   1% /home/mongosnap
- 
- 
 </code> </code>
  
 也可以设置完 ''fstab'' 文件后用 ''<color #7092be>mount -a</color>'' 命令看看是否挂载成功。 也可以设置完 ''fstab'' 文件后用 ''<color #7092be>mount -a</color>'' 命令看看是否挂载成功。
-=== 7 使用 LVM 创建快照 snapshot === +=== 7 使用 LVM 创建快照 snapshot ===  
- +创建快照卷(([[https://qastack.cn/ubuntu/424225/setting-up-lvm-snapshot-as-a-backup-restore-point-in-ubuntu|将LVM快照设置为ubuntu中的备份/还原点]]))
-[[https://qastack.cn/ubuntu/424225/setting-up-lvm-snapshot-as-a-backup-restore-point-in-ubuntu|参考文章]]+
  
 <code bash> <code bash>
行 221: 行 206:
 # Logical volume "mdb-snap" created. # Logical volume "mdb-snap" created.
 lvcreate -l 100%FREE -n mdb-snap -p r -s /dev/datavg/datalv lvcreate -l 100%FREE -n mdb-snap -p r -s /dev/datavg/datalv
- 
- 
 </code> </code>
  
行 239: 行 222:
   ACTIVE   Original '/dev/datavg/datalv' [<23.44 GiB] inherit   ACTIVE   Original '/dev/datavg/datalv' [<23.44 GiB] inherit
   ACTIVE   Snapshot '/dev/datavg/mdb-snap' [<6.56 GiB] inherit   ACTIVE   Snapshot '/dev/datavg/mdb-snap' [<6.56 GiB] inherit
- 
- 
 </code> </code>
  
行 250: 行 231:
 # xfs 格式的挂载要用参数 -o nouuid # xfs 格式的挂载要用参数 -o nouuid
 mount -o nouuid,ro /dev/datavg/mdb-snap /home/mdb-snap mount -o nouuid,ro /dev/datavg/mdb-snap /home/mdb-snap
- 
- 
 </code> </code>
  
行 263: 行 242:
 <file sh dosnapshot.sh> <file sh dosnapshot.sh>
 #!/bin/bash #!/bin/bash
- 
 # db.fsyncLock() # db.fsyncLock()
 umount /dev/datavg/mdb-snap umount /dev/datavg/mdb-snap
行 271: 行 249:
 # umount /dev/datavg/mdb-snap # umount /dev/datavg/mdb-snap
 # dd if=/dev/datavg/mdb-snap | gzip> /home/mongobackup/mdb-snap`date +%F`.gz # dd if=/dev/datavg/mdb-snap | gzip> /home/mongobackup/mdb-snap`date +%F`.gz
- 
 mount -o nouuid,ro /dev/datavg/mdb-snap /home/mdb-snap # 只读 mount -o nouuid,ro /dev/datavg/mdb-snap /home/mdb-snap # 只读
 tar -czf /home/mongobackup/`date +%F`_mongo_all.tar.gz /home/mb-snap tar -czf /home/mongobackup/`date +%F`_mongo_all.tar.gz /home/mb-snap
- 
- 
 </file> </file>
  
行 292: 行 267:
 ls -l /var/lib #得出以下信息 ls -l /var/lib #得出以下信息
 drwxr-xr-x  4 mongodb   mongodb   4096 Jul 15 15:01 mongodb drwxr-xr-x  4 mongodb   mongodb   4096 Jul 15 15:01 mongodb
- 
 </code> </code>
  
行 309: 行 283:
 # 权限好像不需要更改 # 权限好像不需要更改
 chmod -R 777 /home/mongodata chmod -R 777 /home/mongodata
- 
- 
 </code> </code>
  
行 318: 行 290:
 ls - lat /tmp/mongodb-2222.sock # 2222 为设定的数据库端口 ls - lat /tmp/mongodb-2222.sock # 2222 为设定的数据库端口
 sudo chown mongodb:mongodb /tmp/mongodb-2222.sock sudo chown mongodb:mongodb /tmp/mongodb-2222.sock
- 
- 
 </code> </code>
  
 ===== 优化与管理 ===== ===== 优化与管理 =====
  
 +限制内存用量
  
 +<code>
 +storage:
 +  dbPath: /var/lib/mongodb
 +  journal:
 +    enabled: true
 +#  engine:
 +  mmapv1:
 +    smallFiles: true
 +  wiredTiger:
 +    engineConfig:
 +      configString : cache_size=160M
 +</code>
it/database/mongo_install.1626981889.txt.gz · 最后更改: 2021-07-22 19:24 由 goldentianya
回到顶部
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0