iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何进行mongdb备份恢复
  • 309
分享到

如何进行mongdb备份恢复

2024-04-02 19:04:59 309人浏览 薄情痞子
摘要

如何进行mongdb备份恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、物理备份(拷贝文件)#!/bin/sh DATE=`date

如何进行mongdb备份恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、物理备份(拷贝文件)

#!/bin/sh
DATE=`date +%Y%m%d`
DEL_DATE=$(date -d '-30 days' "+%Y%m%d")
HOST=10.10.17.27
PORT=27000
USER=admin
PASSWord=123456
DATA_DIR="/data/mongoDB/navy_db/db"
BACKUP_PATH="/data/monGodbbackup/$DATE"

date +%Y%m%d%H%M >>/data/log/mongodb_bak.log
#第一步表
lock()
{
echo "db.fsyncLock()"|  mongo  --host $HOST --port $PORT -u $USER -p $PASSWORD  admin
}
execute()
{
  lock
  if [ $? -eq 0 ]
  then
    echo "mongodb lock successfully!" >>/data/log/mongodb_bak.log
  else
    echo "mongodb lock fail!" >>/data/log/mongodb_bak.log
  fi
}
execute
#第二步备份
back()
{
rsync -av $DATA_DIR $BACKUP_PATH/
}
execute()
{
  back
  if [ $? -eq 0 ]
  then
    echo "mongodb back successfully!" >>/data/log/mongodb_bak.log
  else
    echo "mongodb back fail!" >>/data/log/mongodb_bak.log
  fi
}
execute
#第三部解锁
unlock()
{
echo "db.fsyncUnlock()"|  mongo  --host $HOST --port $PORT -u $USER -p $PASSWORD  admin
}
execute()
{
  unlock
  if [ $? -eq 0 ]
  then
    echo "mongodb unlock successfully!" >>/data/log/mongodb_bak.log
  else
    echo "mongodb unlock fail!" >>/data/log/mongodb_bak.log
  fi
}
execute
#删除历史数据
rm -rf "/data/mongodbbackup/${DEL_DATE}/"

PS:

物理备份只能全库恢复,不能恢复单个表

恢复步骤:

1、停止需要恢复的实例
2、备份清空/data/mongodb/navy_db/db目录
3、拷贝/data/mongodbbackup/$DATE下面的所有文件和文件夹到/data/mongodb/navy_db/db目录
4、chown mongod:mongod /data/mongodb/navy_db/db/ -R
5、启动实例

二、mongodump备份

#!/bin/sh
DATE=`date +%Y%m%d`
DEL_DATE=$(date -d '-30 days' "+%Y%m%d")
HOST=10.10.17.27:27000
USER=admin
PASSWORD=123456
BACKUP_PATH="/backup/mongodbbackup/$DATE"
date +%Y%m%d%H%M >>/data/log/mongodb_bak.log
start()
{
mongodump -h $HOST -u $USER -p $PASSWORD   -o $BACKUP_PATH
}
execute()
{
  start
  if [ $? -eq 0 ]
  then
    echo "mongodb back successfully!" >>/data/log/mongodb_bak.log
  else
    echo "mongodb back fail!" >>/data/log/mongodb_bak.log
  fi
}
execute
rm -rf "/backup/mongodbbackup/${DEL_DATE}/"

恢复:

1、全库恢复

mongorestore --host 10.10.17.27 --port  27000   /backup/mongodbbackup/20150818/

2、单集合(表的概念)恢复

 mongorestore --host 10.10.17.27 --port  27001 --db navy_db_new --collection navy_db_table_new   /backup/mongodbbackup/20150818/navy_db/navy_db_table.bson

三、复制集备份

#!/bin/sh
DATE=`date +%Y%m%d`
DEL_DATE=$(date -d '-30 days' "+%Y%m%d")
HOST="dbset/10.10.17.27:27000,10.10.17.26:27000"
USER=admin
PASSWORD=123456
BACKUP_PATH="/data/mongodbbackup/$DATE"
date +%Y%m%d%H%M >>/data/log/mongodb_bak.log
start()
{
mongodump -h $HOST -u $USER -p $PASSWORD  --oplog  -o $BACKUP_PATH
}
execute()
{
  start
  if [ $? -eq 0 ]
  then
    echo "mongodb back successfully!" >>/data/log/mongodb_bak.log
  else
    echo "mongodb back fail!" >>/data/log/mongodb_bak.log
  fi
}
execute
rm -rf "/backup/mongodbbackup/${DEL_DATE}/"

PS:

备份复制集和备份单个mongodb实例用mongodump备份的方法差不多,只是host的写法不一样,需要指定复制集名称,还有就是加上 --oplog参数,来跟踪备份时主库上发生的所有写操作,获取一个pointin-time快照,否则备份的状态将与集 群中其他节点不匹配。在恢复时,还必须创建oplog,并指定--oplogReplay参数来应用这些操作,否则恢复的成员将不知道从何处开始同步,从 而在某个时间点上与源服务器保持一致。

恢复:

1、降复制集中要恢复的节点移除

rs.remove("10.10.17.26:27000")

2、运行mongorestore --oplogReplay命令

mongorestore --host 10.10.17.26 --port  27000 --oplogReplay  /data/mongodbbackup/20150820/

3、创建oplog

use local 
db.createCollection("oplog.rs", {"capped" : true, "size" : 10000000})

4、恢复oplog

mongorestore --host 10.10.17.26 --port  27000 -d local -c oplog.rs  /data/mongodbbackup/20150820/oplog.bson

5、将该节点加入到复制集 

 rs.add("10.10.17.26:27000")

关于如何进行mongdb备份恢复问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: 如何进行mongdb备份恢复

本文链接: https://www.lsjlt.com/news/61244.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何进行mongdb备份恢复
    如何进行mongdb备份恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、物理备份(拷贝文件)#!/bin/sh DATE=`date...
    99+
    2024-04-02
  • FreeBSD如何进行备份和恢复
    FreeBSD可以使用多种工具来进行备份和恢复,以下是一些常用的方法: 使用rsync命令进行备份和恢复: 备份:可以使用rs...
    99+
    2024-04-02
  • 如何进行Grafana的备份和恢复
    要备份Grafana,可以按照以下步骤进行: 备份Grafana的配置文件:在Grafana的安装目录下找到grafana.in...
    99+
    2024-04-02
  • 如何进行Zabbix的备份和恢复
    Zabbix的备份和恢复可以通过以下步骤实现: 备份Zabbix数据: 在Zabbix服务器上登录到命令行界面。 使用以下命令备份...
    99+
    2024-04-02
  • 如何进行MySQL中的xtrabackup备份恢复
    这篇文章给大家介绍如何进行MySQL中的xtrabackup备份恢复,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。    XtraBackup是Percona推出...
    99+
    2024-04-02
  • Cassandra如何进行数据备份和恢复
    Cassandra是一个分布式数据库系统,具有高可用和容错能力。要对Cassandra进行数据备份和恢复,可以采取以下步骤: 数据备...
    99+
    2024-04-09
    Cassandra
  • SQLite中如何进行数据备份和恢复
    在SQLite中进行数据备份和恢复可以采用以下方法: 数据备份: 使用SQLite的命令行工具进行数据备份: sqlite3 o...
    99+
    2024-03-14
    SQLite
  • MySQL中如何进行备份和恢复数据
    在MySQL中,可以使用mysqldump命令来备份数据库,使用mysql命令来恢复数据库。 备份数据: mysqldump -u ...
    99+
    2024-04-09
    MySQL
  • CentOS中如何进行系统备份和恢复
    在CentOS中进行系统备份和恢复通常使用工具例如tar、rsync或者dd来实现。下面是使用这些工具进行系统备份和恢复的步骤: ...
    99+
    2024-03-13
    CentOS
  • MySQL中如何进行数据备份和恢复
    MySQL 中可以通过使用 mysqldump 工具来进行数据备份和恢复操作。以下是备份和恢复的步骤: 数据备份: 打开命令行工具...
    99+
    2024-03-06
    MySQL
  • FreeBSD中如何进行备份和恢复数据
    在FreeBSD中进行数据备份和恢复可以使用多种工具和方法,以下是其中一种常用的方法: 备份数据: 使用rsync命令进行数据...
    99+
    2024-04-02
  • OpenBSD中如何进行系统备份和恢复
    在OpenBSD中,可以使用dump和restore命令来进行系统备份和恢复操作。 备份系统: 要备份整个OpenBSD系统,可以...
    99+
    2024-04-02
  • Fedora中如何进行系统备份和恢复
    在Fedora中,可以使用一些工具来进行系统备份和恢复。以下是一种常用的方法: 使用备份工具:Fedora默认自带了一个名为“D...
    99+
    2024-04-02
  • 如何在Oracle中进行备份恢复测试
    在Oracle中进行备份恢复测试的步骤如下: 创建一个测试数据库:首先,在Oracle数据库中创建一个新的测试数据库,用于进行备...
    99+
    2024-04-09
    Oracle
  • 如何在PostgreSQL中进行备份和恢复操作
    在PostgreSQL中进行备份和恢复操作可以使用pg_dump和pg_restore工具。 备份操作: 使用pg_dump工具来...
    99+
    2024-04-09
    PostgreSQL
  • Cassandra中如何进行数据的备份和恢复
    在Cassandra中进行数据备份和恢复通常有两种方法:使用Cassandra自带的工具和第三方工具。 使用Cassandra自带...
    99+
    2024-04-02
  • 如何进行mysql的备份与恢复的探讨
    如何进行mysql的备份与恢复的探讨,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1,我现在的备份方案为:A(master)-...
    99+
    2024-04-02
  • 如何在MySQL中进行数据备份和恢复
    在MySQL中进行数据备份和恢复可以使用以下几种方法: 使用mysqldump命令进行数据备份: 备份数据库:mysqldum...
    99+
    2024-04-09
    MySQL
  • 如何使用MySQL进行数据备份和恢复?
    如何使用MySQL进行数据备份和恢复?数据库中的数据对于任何企业或个人而言都是非常重要的。由于各种原因(如硬件故障、人为错误或恶意攻击等),数据可能会丢失或损坏。因此,定期进行数据库备份是非常重要的。MySQL作为最受欢迎的开源关系型数据库...
    99+
    2023-10-22
    数据恢复 MySQL备份 MySQL数据备份
  • 如何在MariaDB中对表进行备份和恢复
    在MariaDB中,可以使用mysqldump命令来对数据库表进行备份和恢复。以下是备份和恢复表的步骤: 备份表: 打开命令行窗口...
    99+
    2024-04-09
    MariaDB
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作