MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。

Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

1、阿里云MongoDB还原备份到自建MongoDB步骤

1.1、下载阿里云MongoDB备份文件

使用wget命令下载阿里云数据库备份

阿里云文档说明:https://help.aliyun.com/document_detail/58329.html?spm=a2c6r.11610030.0.0.3aea42313v84vh

wget -c -O /tmp/hins7699283_data_20190603235309_qp.xb '阿里云备份URL地址'

1.2、安装阿里云备份文件解压工具(以单节点模式恢复MongoDB物理备份的数据)

1.安装epel包

yum install -y epel-release 

2.通过以root用户或sudo运行以下命令来安装Percona yum存储库 

yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm

3.启用存储库

percona-release enable-only tools release

4.运行以下命令安装Percona XtraBackup工具

Percona XtraBackup是一个基于MySQL的服务器的开源热备份实用程序 ,它不会在备份期间锁定您的数据库。
无论是24x7高负载服务器还是低事务量环境,Percona XtraBackup都旨在使备份成为一个无缝过程,而不会破坏生产环境中服务器的性能。

yum install -y percona-xtrabackup-

5.安装qpress才能使用innobackupex命令

qpress是使用QuickLZ的便携式文件存档器,旨在最大程度地利用快速存储系统。它通常比文件复制要快,因为目标小于源。

wget -c https://files.cnblogs.com/files/Sungeek/qpress-11-linux-x64.tar
tar xvf qpress--linux-x64.tar
chmod qpress
cp qpress /usr/bin

6.解压物理备份文件,例如数据库备份文件名为hins20191107_qp.xb

[root@localhost ~]#  cd  /data/mongodb/mongodb3717/data/
[root@localhost ~]# mv /tmp/hins20191107_qp.xb /data/mongodb/mongodb3717/data/
[root@localhost ~]# cat hins20191107_qp.xb | xbstream -x -v
[root@localhost ~]# innobackupex --decompress --remove-original ./
[root@localhost ~]# chown -R mongodb.mongodb /data/mongodb/mongodb3717/

注意:如果原来数据库有数据可以先删除,停mongo服务,删除所有数据库文件

[root@localhost ~]# /usr/local/mongodb/bin/mongo --host 127.0.0.1 --port  admin -uroot -p123456 --authenticationDatabase admin --eval 'db.shutdownServer({force:true})'

[root@localhost ~]#  cd  /data/mongodb/mongodb3717/data/

[root@localhost ~]#  rm -rf ./*

7.修改配置文件,把wiredTigerDirectoryForIndexes参数、replSet参数、oplogSize参数、keyFile参数注释掉

vi /etc/mongod.conf
#wiredTigerDirectoryForIndexes=true #为索引文件指定独立目录
#replSet=rpl
#oplogSize= #oplog大小
#keyFile=/data/mongodb/mongodb3717/data/mongodb-keyfile
#auth = true #

8.启动mongo服务

/etc/init.d/mongod start

1.3、副本集模式启动MongoDB数据库

云数据库MongoDB的物理备份默认带有原实例的副本集配置。启动时需以单节点模式启动,否则可能无法访问。

如需以副本集模式启动,需要先以单节点模式恢复MongoDB数据,再按照以下步骤执行:

1.先通过服务器的mongo shell登录MongoDB数据库。

mongo --host 127.0.0.1 -u <username> -p <password> --authenticationDatabase admin

2.移除原有副本集配置。

#主库执行
use local
db.system.replset.remove({})

3.关闭mongodb进程服务。

use admin
db.shutdownServer()

4.修改/etc/目录下的配置文件mongod.conf,添加replication相关配置。详细命令用法请参见MongoDB官方文档部署副本集

5.指定新建的配置文件 mongod.conf 来启动 MongoDB。

/etc/init.d/mongod -f /etc/mongod.conf

6.将成员加入副本集并初始化副本集。

说明:此步骤使用rs.initiate()命令进行操作,详细命令用法请参见MongoDB官方文档rs.initiate()命令介绍

rs.initiate(
{
_id: "myReplSet",
version: 1,
members: [
{ _id: 0, host : "mongodb0.example.net:3717" },
{ _id: 1, host : "mongodb1.example.net:3717" },
{ _id: 2, host : "mongodb2.example.net:3717" }
]
}
)

2、自建MongoDB还原到阿里云MongoDB

1.先登录自建的MongoDB备份

--备份所有库

/usr/local/mongodb/bin/mongodump --host 127.0.0.1 --port 3717 --authenticationDatabase admin --username root --password 密码  --out=/tmp/tse-MongoDB-20191107

--备份单个库(加--db参数)

/usr/local/mongodb/bin/mongodump --host 127.0.0.1 --port 3717 --authenticationDatabase admin --username root --password 密码 --db local --out=/tmp/tse-local-20191107

2.自建MongoDB服务器连接登录阿里云MongoDB

--测试登录成功以后开始还原刚刚的备份

/usr/local/mongodb/bin/mongo --host 填写阿里云公网URL --port 3717 admin -uroot -p阿里云MongoDB密码 --authenticationDatabase admin

--还原所有库到阿里云MongoDB

/usr/local/mongodb/bin/mongorestore  --host 阿里云公网URL --port 3717 --authenticationDatabase admin --username root --password 阿里云mongo密码  --drop  --stopOnError    /tmp/tse-MongoDB-20191107

--还原单个库到阿里云MongoDB

/usr/local/mongodb/bin/mongorestore  --host 阿里云公网URL --port 3717 --authenticationDatabase admin --username root --password 阿里云mongo密码  --drop  --stopOnError  --db local  /tmp/tse-local-20191107

提示:阿里云MongoDB需要开启自建服务器白名单才可以登录连接。

MongoDB自建和阿里云RDS备份还原的更多相关文章

  1. 阿里云rds 备份和还原

    阿里云rds 备份和还原 转发:https://www.cnblogs.com/lin1/p/8617764.html 转发:https://help.aliyun.com/knowledge_det ...

  2. 阿里云RDS备份 恢复到本地

    目录 一.恢复准备 二.具体操作 一.恢复准备 阿里云RDS默认配置了全备份+binlog,可以精准恢复到某个时间点上. 可以下载备份的包到本地,进行本地恢复,要预留好本地的数据库容量和cpu等规格, ...

  3. 阿里云RDS备份的tar格式包恢复到本地自建数据库

    说明 阿里云RDS-mysql数据库是通过percona-Xtrabackup进行备份的,所以恢复时也需要安装该软件. 另外注意的是:你自己下载的MySQL版本要和阿里云上的MySQL版本一致,不然会 ...

  4. 阿里云RDS备份在本地mysql快速还原

    本地准备: ##安装和RDS相同的mysql版本,拿mysql5.6为例 http://www.cnblogs.com/37yan/p/7513605.html ##安装Xtrabackup 包 cd ...

  5. wget下载阿里云RDS备份集

    [root@localhost tmp]# more wget.sh #!/bin/bash download_url=`python /tmp/geturl.py` echo $download_u ...

  6. 阿里云RDS数据库备份同步到自建库方法(SHELL脚本)

    一.背景: 由于阿里云RDS生产库每天都需要备份且拷贝到自建读库,而如果使用阿里云的自动拷贝到只读实例, 费用太高, 故采用自编写同步脚本方法实现. 二.前提: 1). 已开通阿里云RDS, 且开启定 ...

  7. 阿里云RDS for SQL Server使用的一些最佳实践

    了解RDS的概念 这也是第一条,也是最重要的一条,在使用某项产品和服务之前,首先要了解该产品或服务的功能与限制,就像你买一个冰箱或洗衣机,通常也只有在阅读完说明书之后才能利用起来它们的所以功能,以及使 ...

  8. 阿里云RDS数据库改造迁移方案

    1. 改造原因 (1) 由于历史原因, 本应该是同一个库的表分布在两个数据库中,需要对这两个库进行合并. (2) 已有的数据库性能无法满足业务的增长需要, 查询卡,慢问题突出. (3) 当前自建Mys ...

  9. 阿里云RDS与ECS服务器数据库做主从

    阿里云RDS与ECS服务器数据库做主从 [精] 里云RDS(数据库)基于飞天大规模分布式计算和存储能力,提供超高性价比的单机版实例,同时利用读写分离横向扩展读能力,满足网站类的业务需求.提供稳定.高性 ...

随机推荐

  1. more,less,head,tail

    当用cat,tac命令查看文件时,文件的所有内容都会被刷出来,因为缓存有限,被刷过去的内容可能就留不住了.用cat查看个小文件还可以,查看大文件时就用到下面的命令. more (选项)(参数)    ...

  2. 3. Git与TortoiseGit基本操作

    1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN的操作吧, 最常见的是 检出(Check out ...), 更新 (U ...

  3. JavaScript 类型 检测

    前言 ECMAScript中有5种数据类型,分别为Number,Boolean,Null,Undifined和String,以及一种复杂的数据类型Object(由名值对组成,是这门语言所有对象的基础类 ...

  4. k阶斐波那契数列fibonacci第n项求值

    已知K阶斐波那契数列定义为:f0 = 0,  f1 = 0, … , fk-2 = 0, fk-1 = 1;fn = fn-1 + fn-2 + … + fn-k , n = k , k + 1, … ...

  5. LitePal的查询

    转载:http://blog.csdn.net/guolin_blog/article/details/40153833 传统的查询数据方式 其实最传统的查询数据的方式当然是使用SQL语句了,Andr ...

  6. 【线性表基础】顺序表和单链表的插入、删除等基本操作【Java版】

    本文表述了线性表及其基本操作的代码[Java实现] 参考书籍 :<数据结构 --Java语言描述>/刘小晶 ,杜选主编 线性表需要的基本功能有:动态地增长或收缩:对线性表的任何数据元素进行 ...

  7. Hbase入门(五)——客户端(Java,Shell,Thrift,Rest,MR,WebUI)

    Hbase的客户端有原生java客户端,Hbase Shell,Thrift,Rest,Mapreduce,WebUI等等. 下面是这几种客户端的常见用法. 一.原生Java客户端 原生java客户端 ...

  8. Rust入坑指南:坑主驾到

    欢迎大家和我一起入坑Rust,以后我就是坑主,我主要负责在前面挖坑,各位可以在上面看,有手痒的也可以和我一起挖.这个坑到底有多深?我也不知道,我是抱着有多深就挖多深的心态来的,下面我先跳了,各位请随意 ...

  9. .Net Core AA.FrameWork应用框架介绍

    开发多年,一直在从社区获取开源的便利,也深感社区力量的重要性,今天开源一个应用基础框架AA.FrameWork,也算是回馈社区,做出一点点贡献,希望能够帮助类似当年入行的我. AA.FrameWork ...

  10. 最强最全的Java后端知识体系

    目录 最全的Java后端知识体系 Java基础 算法和数据结构 Spring相关 数据库相关 方法论 工具清单 文档 @(最强最全的Java后端知识体系) 最全的Java后端知识体系 最全的Java后 ...