MongoDB entendimento banco de dados e notas de estudo

banco de dados MongoDB

A, MongoDB saber

MongoDB é uma fonte C desenvolvimento da linguagem aberta, multi-plataforma, banco de dados NoSQL orientado a documentos

O que é NoSQL?

Os dados não são armazenados no modelo relacional é baseado, não exige um formato de tabela fixa. banco de dados não-relacional como um banco de dados relacional suplemento, na era do desenvolvimento cada vez mais rápida do site desempenha um eficiente e de alto desempenho, NoSQL para armazenar dados muito grande escala

Comumente usado banco de dados não-relacional: MongoDB, Memcache Redis, HBase

As vantagens de bancos de dados não relacionais: 1. A demanda em alta simultâneo de leitura e banco de dados de gravação

                                        2. Alta eficiência do armazenamento de dados em massa e acesso

                                        Alta escalabilidade e alta disponibilidade requisitos 3. Banco de Dados

definição MangoDB

MongoDB é um produto com função de entre bases de dados relacionais e bases de dados não relacionais, funções de base de dados não relacionais entre o mais rico e mais, como uma base de dados relacional

Ele fornece aplicativos escaláveis da Web para soluções de armazenamento de dados de alto desempenho, aplicados principalmente para o cache de dados, cena local de armazenamento distribuído e dados de formato de documento JSON para grandes quantidades de dados , alta concorrência , baixos transacionais aplicações de Internet

vantagens e desvantagens MongoDB

Vantagens: Flexibilidade altamente expansível, de computação distribuído, de baixo custo, arquitectura, os dados de semi-estruturado, a relação não complicada

MongoDB oferece replicação, alta disponibilidade e fragmentação automática, apoiar uma rica expressões de consulta, suporta uma variedade de linguagens de programação, tais como Ruby, Python, Java, C ++, PHP, C #, etc.

Contras: não padronizado, função de pesquisa limitada

MongoDB é executado dois conceitos : coleta (coleta) e documentos (documentos)

MongoDB conceito mesa substituído a recolha de dados de conceito em um documento

Dois, MongoDB para Linux instalação

1. Baixe e instale MongoDB dependências do pacote de instalação

yum -y install openssl-devel

tar zxf mongodb-linux-x86_64-rhel62-3.2.10.tgz

mv mongodb-linux-x86_64-rhel62-3.2.10 / usr / / mongodb locais

2. Criar do MongoDB diretório de armazenamento de dados / Dados / mongodb1 , diretório log / dados / registros , arquivos de log e adicionar autoridade

Note-se que alguns dos métodos mais UNIX-like sistemas operacionais, incluindo Linux e OS X, prevê limite básico para cada processo e cada usuário usando tópicos, arquivos e conexões de rede e outros recursos do sistema:

Mkdir -p / dados / mongodb1

Mkdir -p / dados / logs / mongodb

tocar /data/logs/mongodb/mongodb1.log

chmod -R 777 /data/logs/mongodb/mongodb1.log

Quando MongDB frequentemente visitados no estado, se o shell para iniciar o processo ocupada recurso é muito baixo, isso causará um erro não pode conectar MongoDB, você precisa conjunto

sistemas Linux processar um número máximo padrão de arquivos abertos é 1024 vezes, valores padrão para esses limites são muito pequenas, que podem causar uma série de problemas durante a operação normal MongoDB

-u de 25.000 ulimit (número único processo de arquivos abertos)

-n de 25.000 ulimit (processo aberto / rosca)

3. Criar arquivo de configuração MangoDB e definir os parâmetros de arranque

vim /usr/local/mongodb/bin/mongodb1.conf

port=27017      \\默认服务端口号 
dbpath=/data/mongodb1      \\数据存储目录
logpath=/data/logs/mongodb/mongodb1.log     \\日志文件
logappend=true       \\使用追加的方式写日志
fork=true      \\后台运行
maxConns=5000       \\最大同时连接数,默认是2000
storageEngine=mmapv1    \\指定存储引擎为内存映射文件

4. Defina os parâmetros do kernel

 echo "0"> / proc / sys / vm / zone_reclaim_mode

sysctl -w vm.zone_reclaim_mode = 0

echo "nunca"> / sys / kernel / mm / transparent_hugepage / habilitado

echo "nunca"> / sys / kernel / mm / transparent_hugepage / defrag

5. iniciar e parar MongoDB

启动: / usr / local / mongodb / bin / mongod --config /usr/local/mongodb/bin/mongodb1.conf

停止: / usr / local / mongodb / bin / mongod --config /usr/local/mongodb/bin/mongodb1.conf --shutdown

Múltiplas instâncias de MongoDB

MongoDB para criar um novo diretório de armazenamento de dados / Dados / mongodb2 , arquivos de log e permissões add

Mkdir / dados / mongodb2

tocar /data/logs/mongodb/mongodb2.log

chmod -R 777 /data/logs/mongodb/mongodb2.log

No diretório de armazenamento do arquivo de configuração principal para criar novos arquivos de configuração primárias, comparando a primeira instância dos seguintes parâmetros podem ser modificados arquivo de configuração (você precisa criar várias instâncias de cópia de editar vários nomes diferentes)

vim /usr/local/mongodb/bin/mongodb2.conf

porto = 27018

dbpath = / dados / mongodb2

logpath = / dados / logs / mongodb / mongodb2.log

Inicie a instância (iniciar da mesma forma com a primeira instância)

Três, base MongoDB

estrutura de armazenamento MongoDB

estrutura lógica composta principalmente de um (Collection) recolha , o documento (o documento) , banco de dados (banco de dados) composto de três partes, que é o conceito central do documento, que é a unidade de armazenamento MongoDB armazenamento lógico menor

★ coleção:

nome legal da coleção: um nome de coleção não pode ser uma string vazia ""

                          2. O nome da coleção não pode conter o \ 0 caracteres (caractere nulo), esse personagem representa o fim do nome da coleção.

                          3. O nome da coleção não pode ser "sistema." No início, que é reservado para o sistema de coleta do prefixo.

                          4. nome da coleção criada pelo usuário não pode conter caracteres reservados, alguns motoristas não suporte incluídos no conjunto estavam lá, porque esta é a coleção contém algum personagem gerado pelo sistema, a menos que queira acessar esta coleção criada pelo sistema, ou mil $ milhões não vai aparecer no nome

★ documento:

Documento é um conjunto de chaves (chave de valor) par (isto é BSON), não necessidade documento MongoDB definir o mesmo campo, e o mesmo tipo de campo de dados necessidade não ser idênticas, o que é muito diferente a partir de uma base de dados relacional, igualmente característica muito proeminente MongoDB

Note-se que: 1. O documento de pares de chave / valor são ordenados

                         2. O valor do documento pode ser não só o interior da string entre aspas duplas, ele também pode ser de vários outros tipos de dados (ou mesmo toda incorporado o documento)

                         3.MongoDB para distinguir os tipos e sensível

                         documento 4.MongoDB não pode ter chaves duplicadas

                         Os documentos chaves são strings , com poucas exceções, a chave pode ser qualquer caracteres UTF-8

estrutura de armazenamento físico:

estrutura de armazenamento de dados: arquivo namespace (.NS final do arquivo) arquivo de dados (.0,1,2,3 ...)

Log estrutura de armazenamento: arquivos de log de jornal: para a proteção de recuperação de falhas MongDB

                         operação de cópia oplog arquivo de log: só aparece após a abertura principal da cópia

                         log de consultas lentas: pode precisar abrir depois

★ banco de dados:

Inicial banco de dados embutido: admin: admin banco de dados Main Library armazenar informações de conta.

                             local: banco de dados local nunca é para ser copiado a partir do nó, ele pode ser usado para armazenar qualquer conjunto de servidores está limitado a um único local,

                             config: ambiente de cluster de banco de dados de configuração para a fragmentação, armazenar metadados pedaços de informação relacionados.

                             teste: MongoDB padrão criou uma biblioteca de teste

Tipo de dados MongoDB

Cordas : dados de cadeia armazenada tipo de dados comum, no MongoDB, string UTF-8 codificado é válido
Integer : valor inteiro para armazenar um valor, de acordo com o servidor você está empregado, pode ser dividido em 32-bit ou um 64 bits
booleana : valor booleano, para armazenar o booleano (verdadeira / falsa)
dupla : dupla precisão valor de ponto flutuante, para o armazenamento de valores de ponto flutuante
Min / Max Chaves : um valor mínimo e o BSON JSON (binário) elemento e valores máximos da proporção relativa
série : matriz ou lista para um ou mais valores são armazenados como uma chave
timestamp : timestamp, modificar ou adicionar registros documentar um momento específico
de objeto : documentos incorporados para
nulo : Cria um valor vazio
Símbolo : símbolos, substancialmente idênticos aos do tipo string tipo de dados, mas a diferença é, é geralmente usado com tipos especiais de símbolos da linguagem
a data : data e hora, o formato de UNIX para armazenar a data ou a hora atual. Você pode especificar o seu próprio data e hora: criar um objeto Date, passando informações de data
Objeto ID : Object ID, utilizado para criar o documento ID
Binary Data : dados binários para armazenar dados binários
Código : Digite o código para o documento código JavaScript é armazenado
expressão regular: Tipos de expressão regular. Usado para armazenar expressões regulares

operacional subjacente do MongoDB

Log local: / usr / local / MongoDB / bin / mongo (27017 padrão porta login, teste de banco de dados, nenhuma senha de login padrão)

Telnet: MongoDB: // Zhangsan: [email protected]: 27017

Ver o banco de dados:> Mostrar dbs

Exibe o usuário:> Mostrar os Usuários

bases de dados de comutação:> nome do banco de uso (se o banco de dados não existir, crie um banco de dados, ou mude para o banco de dados especificado)

exibição de comando operação de banco de dados:> db.help ()

Ver a coleção:> Mostrar as coleções

Exibindo comando operação de coleta:> . Db nome da coleção .help ()

Encontrar Documentação:> nome da coleção db .find ().

Criar uma coleção:> db.createCollection (nome, Opções)

Opções parâmetros:
tampado (booleano) :( opcional) Se for verdade, então, criar um conjunto de, conjunto fixo fixo é uma coleção com um tamanho fixo, quando se atinge o valor máximo, ele substituirá automaticamente os documentos mais antigos, quando o valor é verdadeiro deve ser o tamanho parâmetro especificado
autoIndexId (Boolean) :( opcional) como verdadeiro, o índice é criado o padrão de campo automaticamente _id false
tamanho (valor) :( opcional) especificar um conjunto de máximo fixado (em bytes metro), se o tampado é verdade, mas também precisa especificar o campo
max (valor) :( opcional) Especifica o número máximo de documentos contidos no conjunto de fixo

Criar um conjunto fixo de teste, todo o espaço de recolha 6142800 KB, o número máximo de documentos para 10000

> Db.createCollection ( "test", {tampado: true, autoIndexId: true, size: 6142800, max: 10000})

A coleção é definido para se tornar um conjunto fixo de coleta de dados não podem ser modificados fixo , apenas para descobrir - suprimido - e, em seguida, inserir , criar uma coleção que é definido quando o parâmetro tampado para true

Inserir um documento para criar automaticamente uma coleção:

> Db.test.insert ({ "name": "Zhangsan"}

Criar um documento:

gerar automaticamente o _id:> . DB collectionname .Colocar ({ "chave": " valor"})

Você pode especificar manualmente _id:> Db nome da coleção .Save (documento).

Quatro, MongoDB manutenção de rotina

MongoDB Backup and Recovery Manager

Dados Ferramenta de Exportação: mongoexport

MongoDB é um instrumento de coleta de mongoexport podem ser exportados como arquivos JSON ou CSV

mongoexport -d dbname -c collectionname -o arquivo --type json / CSV -f campo

Importação de dados da ferramenta: mongoimport

mongoimport -d nome_do_bd -c collectionname --file nome --type json / csv -f campo

-d: especifica o nome da base de dados

-c Especifica o nome da coleção de coleção

-f Especifica que colunas para exportação

-o: Especifica o nome do arquivo que você deseja exportar

q: Especifica os critérios de filtragem para os dados de exportação

Nota: Na importação MySQL tempo , antes de exportação MySQL quando o banco de dados add opções, importação quando você não pode criar

backup de banco de dados MongoDB e recuperação: mongodump

Backup: mongodump dbhost -d dbname -h -o dir

Recuperação: mongorestore dbhost -d dbname -h dir -dir

-h: MongoDB endereço IP do servidor está localizado (especificar o número da porta pode ser adicionado mais tarde)

-d Especifica o backup da instância de banco de dados

-o: especifica a localização da base de dados armazenada no backup (o diretório a ser criado com antecedência, diretório de teste os dados de backup são armazenados automaticamente criado no diretório)

Copie o banco de dados MongoDB banco de dados

> Db.copyDatabase ( "db1", "DB2", "localhost")

Um conjunto de clones (a partir da cópia remoto para o conjunto actual de exemplos exemplo MongoDB MongoDB, o mesmo nome é conjunto)

> Db.runCommand ({ "cloneCollection": "abc.test", "de": "192.168.100.7:27017"})

Gestão de Segurança MongoDB

Restrições de escuta endereço IP ea porta (definido no arquivo de configuração)

vim /usr/local/mongodb/conf/mongodb.conf

= 192.168.0.111 bind_ip  \\ só permitir o acesso a este endereço de IP

= 27017 Porto  \\ só permitem o acesso ao número da porta

Autorizado a iniciar o login userAdminAnyDatabase (MongoDB senha primeiro padrão não é necessário, nem qualquer usuário)

1. Faça o login no banco de dados, mude para o administrador da biblioteca

> Uso administrador

2. Crie um usuário administrativo

> Db.createUser ({user: "admin", pwd: "123456", os papéis: [{papel: "userAdminAnyDatabase", db: "admin"}]})

papéis: as funções de utilizador especificadas , pode ser uma matriz vazia para a nova função de utilizador conjunto vazio, em papéis no campo, pode especificar o papel embutida e funções definidas pelo utilizador

Funções de (built-in parte):

papéis de banco de dados do usuário: ler, READWRITE;
funções de administração de banco de dados: dbadmin, dbowner, useradmin
funções de gerenciamento de cluster: clusterAdmin, clusterManager, clusterMonitor, hostManager
backup e papel recuperação: backup, restauração
todas as funções de banco de dados: readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase
função de superusuário: raiz  
suplementos: existem vários papel direto ou indireto fornece acesso de usuário do sistema super (dbowner, useradmin, userAdminAnyDatabase)
papéis internos: __ sistema

dbadmin : permite aos usuários executar as funções de gerenciamento de banco de dados especificados, como indexação para criar, apagar, visualizar estatísticas ou system.profile acesso

useradmin : permitir que um usuário de escrita para system.users, você pode encontrar especificar o banco de dados para criar, excluir e gerenciar usuários

clusterAdmin : admin só está disponível na base de dados, o usuário dá toda função de correlação privilégios fragmentação e conjuntos de replicações

3. Comece a autenticação de usuário

/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/conf/mongodb.conf --auth

Ou editar o arquivo de configuração: vim /usr/local/mongodb/conf/mongodb.conf

Adicionar auth = true

Ver usuário existente:> Mostrar os Utilizadores ou> db.system.users.find ()

4. MongoDB Log, usando o login de administrador biblioteca de verificação do usuário administrador

> Uso administrador

> Db.auth ( "admin", "123456")

Com usuário administrador administrativo para criar o nome de usuário de banco de dados e senha adicional

> Teste de uso

> Db.createUser ({user: "TestUser", pwd: "123456", os papéis: [{papel: "READWRITE", db: "teste"}]})

更新用户:> db.updateUser ( 'testuser', {pwd: "111111", os papéis: [{papel: "READWRITE", db: "teste"}]})

Excluir usuário:> db.dropUser ( "testuser")

Nota: com permissões de usuário administrativo usuário administrador pode excluir um usuário após o desembarque

Gestão de processos

Processar o ser operação de consulta realizada:> db.currentOp ()

Encerrar o processo:> db.killOp ( "shard3: 466 404 288")

Monitoramento MongoDB

1. Banco de Dados Command View

Ver base de dados informações de status exemplo:> db.serverStatus ()

Ver estatísticas de banco de dados atuais:> db.stats ()

Ver uma coleção de estatísticas:> db.users.stats ()

Ver o tamanho da coleção:> db.users.dataSize ()

2. ser monitorados (editar o arquivo de configuração) através da web: vim /usr/local/mongodb/conf/mongodb.conf

Adicionar httpinterface = true

Por 28017: http: // localhost para acesso à Web

3. ferramentas de monitoramento tripartidas: Nagios

Suplementares instalar MongoDB no Windows:

início mongo.exe

 

instalação do software de visualização MongoDB

 

Publicado 37 artigos originais · ganhou elogios 6 · vê 10000 +

Acho que você gosta

Origin blog.csdn.net/feili12138/article/details/104789298
Recomendado
Clasificación