服务器系统搭建的重要性与挑战,如何实现高效与安全的管理?
710
2022-05-29
一、概述
1.1 MongoDB概念
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。在nosql数据库里,大部分的查询都是键值对(key、value)的方式。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的。其特征NoSQL、文档存储、Json数据模型、支持事务。
1.2 NoSQL概念
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
1.3 NoSQL的特征
高扩展性 :Nosql去掉了关系数据库的关系型特性,易于横向扩展。
高性能 :Nosql通过简单的key-value方式获取数据,非常快速。还有NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多。
灵活的数据模型 :相对于关系数据库里,增删字段的繁琐,NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
高可用 :NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如mongodb通过mongos、config server replica set,shard就可以快速配置出高可用配置。
二 备份恢复
a.mongodb数据备份
mongodump命令脚本语法如下:
mongodump -h dbhost -d dbname -o dbdirectory
-h:
MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:
需要备份的数据库实例,例如:test
-o:
备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
语法
描述
实例
mongodump --host HOST_NAME --port PORT_NUMBER
该命令将备份所有MongoDB数据
mongodump --host localhost --port 27017
mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY
mongodump --dbpath /data/db/ --out /data/backup/
mongodump --collection COLLECTION --db DB_NAME
该命令将备份指定数据库的集合。
mongodump --collection mycol --db test
b.mongodb数据恢复
mongorestore命令脚本语法如下:
>mongorestore -h
--host <:port>, -h <:port>:
MongoDB所在服务器地址,默认为: localhost:27017
--db , -d :
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
--drop:
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
mongorestore 最后的一个参数,设置备份数据所在位置,例如:/tmp/testdb
你不能同时指定
--dir:
指定备份的目录
你不能同时指定
此时查看数据已经正常恢复。
3.7 密码权限
为mongodb设置密码,需要进行auth启动,在配置文件添加auth=true
a.设置数据库管理员
> use admin switched to db admin > db.createUser({user:"root",pwd:"mongopwd",roles:["userAdminAnyDatabase"]}) #创建用户密码,并设置权限 Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] } > db.auth("root","mongopwd") #认证,返回1为认证成功 1
认证通过进入数据库db.auth 也可以在登录的时候直接指定用户名密码登录
mongo -u root -p mongopwd --authenticationDatabase admin
b.创建数据库用户
> use test switched to db test > db test > db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]}) Successfully added user: { "user" : "testuser", "roles" : [ "readWrite" ] } > db.auth("testuser","testpass") 1
MongoDB 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。