差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| it:database:mongo_install [2021-07-22 19:27] – [硬盘快照备份] goldentianya | it:database:mongo_install [2025-12-30 14:39] (当前版本) – goldentianya | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== MongoDB 架构 ====== | ====== MongoDB 架构 ====== | ||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | sudo systemctl restart mongod | ||
| ===== 安全 ===== | ===== 安全 ===== | ||
| 行 48: | 行 53: | ||
| </ | </ | ||
| + | 此文章提及到主节点[[https:// | ||
| ===== 数据备份 ===== | ===== 数据备份 ===== | ||
| 行 53: | 行 59: | ||
| <code bash> | <code bash> | ||
| - | mongodump --uri=" | + | mongodump --uri=" |
| - | mongorestore --uri=" | + | mongorestore --uri=" |
| </ | </ | ||
| 行 61: | 行 67: | ||
| ==== 压缩文件备份 ==== | ==== 压缩文件备份 ==== | ||
| - | 将目录压缩到一个文件当中 | + | 将目录压缩到一个文件当中 <color #ff7f27>'' |
| + | |||
| + | 解压到原来的目录 <color #ff7f27>'' | ||
| :!: // | :!: // | ||
| 行 85: | 行 93: | ||
| 0 2 1 * 0 / | 0 2 1 * 0 / | ||
| </ | </ | ||
| - | ==== 硬盘快照备份 ==== | ||
| - | |||
| - | 参考文章:[[https:// | ||
| - | |||
| - | === 1 挂载一个USB并且格式化 === | ||
| - | |||
| - | '' | ||
| - | === 2 全部转换成物理分区 === | ||
| - | |||
| - | <code bash> | ||
| - | pvcreate /dev/sdc | ||
| - | $> pvs # | ||
| - | PV VG Fmt Attr PSize PFree | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | === 3 创建卷组 VG (VolumeGroup) === | ||
| - | |||
| - | <code bash> | ||
| - | vgcreate datavg /dev/sdc | ||
| - | $> pvs # | ||
| - | PV / | ||
| - | Total: 1 [<30.00 GiB] / in use: 1 [<30.00 GiB] / in no VG: 0 [0 ] | ||
| - | </ | ||
| - | |||
| - | 创建完可以用命令查看 ''< | ||
| - | |||
| - | 将来需要用到分区扩容或者减容,用一下命令 | ||
| - | |||
| - | <code bash> | ||
| - | vgextend datavg /dev/sdd # /dev/sdd 是新的物理硬盘 | ||
| - | vgreduce datavg /dev/sdd # 减少 | ||
| - | pvmove /dev/sdd [/dev/sdc] # 将物理卷 sdd 的数据导出到 / | ||
| - | </ | ||
| - | |||
| - | === 4 创建逻辑卷 === | ||
| - | |||
| - | [[https:// | ||
| - | |||
| - | <code bash> | ||
| - | # lvcreate -l 100%VG -n datalv datavg | ||
| - | # lvcreate mongovg -l 80%Free -n mongolv #80%空余 | ||
| - | # lvcreate mongovg -L 5G -n mongolv | ||
| - | lvcreate -l 102400 -n datalv datavg # 使用6000PE,大概 80%左右的容量 | ||
| - | </ | ||
| - | |||
| - | <code bash> | ||
| - | $> lvs # | ||
| - | LV | ||
| - | datalv datavg -wi-a----- <23.44g | ||
| - | $> lvscan | ||
| - | ACTIVE | ||
| - | </ | ||
| - | |||
| - | <color # | ||
| - | |||
| - | === 逻辑卷扩容 === | ||
| - | |||
| - | 需要两个操作,一个是逻辑卷的扩容,一个是文件系统的扩展 | ||
| - | |||
| - | <code bash> | ||
| - | vgs # | ||
| - | lvextend -l 15 / | ||
| - | lvextend -l +15 / | ||
| - | </ | ||
| - | |||
| - | 以上只是逻辑卷扩容,但文件系统没有扩大,还需要对文件系统扩容 | ||
| - | |||
| - | <code bash> | ||
| - | # xfs 格式 | ||
| - | xfs_growfs / | ||
| - | # ext4 格式 | ||
| - | resize2fs / | ||
| - | </ | ||
| - | |||
| - | === 5 格式化 === | ||
| - | |||
| - | 建议使用 xfs 格式,比ext4格式要更优秀。 | ||
| - | |||
| - | <code bash> | ||
| - | mke2fs -t ext4 / | ||
| - | mkfs.ext4 / | ||
| - | mkfs.xfs / | ||
| - | </ | ||
| - | |||
| - | === 6 挂载 === | ||
| - | |||
| - | <code bash> | ||
| - | mkdir / | ||
| - | mount / | ||
| - | </ | ||
| - | |||
| - | 如果要开机就挂载 | ||
| - | |||
| - | <code bash> | ||
| - | vim /etc/fstab | ||
| - | # 加入一下一行 | ||
| - | / | ||
| - | # 重启后查看是否已经挂载。 | ||
| - | $> df -Th | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | 也可以设置完 '' | ||
| - | === 7 使用 LVM 创建快照 snapshot(([[https:// | ||
| - | |||
| - | |||
| - | |||
| - | <code bash> | ||
| - | vim /etc/fstab | ||
| - | # lvcreate -L 100M -n mdb-snap -s / | ||
| - | lvcreate -l 100%FREE -n mdb-snap -s / | ||
| - | # Logical volume " | ||
| - | lvcreate -l 100%FREE -n mdb-snap -p r -s / | ||
| - | </ | ||
| - | |||
| - | <color # | ||
| - | -s: snapshot 创建快照\\ | ||
| - | 对 datavg 下面的逻辑卷 datalv 进行快照,快照名称mb-snap</ | ||
| - | |||
| - | 查看结果 | ||
| - | |||
| - | <code bash> | ||
| - | $> lvs | ||
| - | LV | ||
| - | datalv | ||
| - | mdb-snap datavg swi-a-s--- | ||
| - | $> lvscan | ||
| - | ACTIVE | ||
| - | ACTIVE | ||
| - | </ | ||
| - | |||
| - | <color # | ||
| - | |||
| - | <code bash> | ||
| - | mkdir / | ||
| - | mount -o ro / | ||
| - | # xfs 格式的挂载要用参数 -o nouuid | ||
| - | mount -o nouuid,ro / | ||
| - | </ | ||
| - | |||
| - | <color # | ||
| - | 防止快照卷中的数据被破坏</ | ||
| - | |||
| - | <note tip> | ||
| - | |||
| - | 日常维护时需要的脚本 | ||
| - | |||
| - | <file sh dosnapshot.sh> | ||
| - | #!/bin/bash | ||
| - | # db.fsyncLock() | ||
| - | umount / | ||
| - | lvremove -f / | ||
| - | lvcreate -l 100%FREE -n mdb-snap -s / | ||
| - | # db.fsyncUnlock(); | ||
| - | # umount / | ||
| - | # dd if=/ | ||
| - | mount -o nouuid,ro / | ||
| - | tar -czf / | ||
| - | </ | ||
| - | |||
| - | 更高效的恢复数据方式为。将快照文件恢复到逻辑卷,然后删除掉自己。 <color # | ||
| - | |||
| - | {{tag> | ||
| - | |||
| - | |||
| - | ===== 数据库迁移 ===== | ||
| - | |||
| - | 参考文章 [[https:// | ||
| - | |||
| - | 查看文件夹信息 '' | ||
| - | < | ||
| - | |||
| - | ls -l /var/lib # | ||
| - | drwxr-xr-x | ||
| - | |||
| - | </ | ||
| - | |||
| - | //<color # | ||
| - | |||
| - | 复制数据内容到新的目录: | ||
| - | |||
| - | 检查文件数目是否出错 '' | ||
| - | |||
| - | 更改文件所有人以及权限,同样操作日志文件 ''/ | ||
| - | |||
| - | <code bash> | ||
| - | chown -R mongodb: | ||
| - | # drwxr-xr-x 5 mongodb mongodb 4096 Jul 15 15:09 mongodata | ||
| - | drwxr-xr-x 4 mongodb mongodb 4096 Jul 15 15:18 mongodb | ||
| - | # 权限好像不需要更改 | ||
| - | chmod -R 777 / | ||
| - | |||
| - | |||
| - | </ | ||
| - | |||
| - | 如果启动失败,查看一下sock文件的权限 | ||
| - | |||
| - | <code bash> | ||
| - | ls - lat / | ||
| - | sudo chown mongodb: | ||
| - | |||
| - | |||
| - | </ | ||
| - | |||
| - | ===== 优化与管理 ===== | ||
| - | |||
