モンゴ--01導入、設置、最適化の警報

A、NoSQLの紹介

NoSQLのは、非リレーショナル・データベースを指します。
NoSQLのは時々 SQLの略ないだけと呼ばれる
リレーショナルデータベースとは異なる伝統的なデータベース管理システムの総称。
NoSQLのための最も一般的な説明は、「非リレーショナル」とキー・バリューストアの利点と文書データベースではなく、単純にRDBMSを強調しました。
NoSQLのは、非常に大規模なデータを格納します。
データ記憶装置のこれらのタイプは固定パターンを必要とせず、余分な操作が横方向に拡張することができません。

なぜNoSQLの?

今日、我々は簡単にアクセスし、クロールデータできるサードパーティのプラットフォームを介しすることができます。
ユーザーの個人情報を、ソーシャルネットワーク、場所、ユーザーがデータを生成し、ユーザの操作ログが指数関数的に増加しています。
私たちは、これらのアプリケーションに適していないこれらのユーザーデータ、SQLデータベースをタップしたい場合は、
NoSQLのデータベースの開発は、これらの大きなデータを扱うこともできるようです。

二、MongoDBのプロフィール

C ++言語によるMongoDBは、オープンソースデータベース分散ファイルシステムベースのストレージです。

ほとんどのリレーショナルデータベース、非常に緩いサポートするデータ構造、同様の形式bjson JSONのようなスケーラビリティ、高可用性とパフォーマンスデータベース設計された、非リレーショナルデータベース機能豊かな、のために設計されているので、することができ複雑なデータ型を保存します。

(英語の「作品Humongous」から、中国の意味は「大」)MongoDBは、あらゆる規模、業種、オープンソースデータベースの様々なアプリケーションの企業に適用されます。アジャイル開発のデータベースのための1つとして、MongoDBのデータパターンを柔軟アプリケーションの開発を更新することができます。

BSONと呼ばれる格納形態へのMongoDB(バイナリJSON)データが文書として保存されます。

同様の構造を持つ文書は、通常のコレクションに編成されています。ドキュメントと同様のライン、フィールドと同様の列:これらのコレクションは、リレーショナルデータベーステーブルに類似して見ることができます。

そして、データのmysqlモンゴの比較

mysqlの モンゴ
倉庫 倉庫
テーブル セット
フィールド キー:値
ファイル

三、MongoDBの機能

1.高性能:
MongoDBの永続高性能なデータを提供する
データベースシステム上のI / O操作低減するために、データモデル埋め込み特定支持
インデックスが速いクエリをサポートすることができ、文書を含んでいてもよいし、キー配列に埋め込むこと

2.豊富な言語クエリ:
MongoDBのデータ収集、テキスト検索と地理空間のインデックスだけでなく、支援読み取りおよび書き込み操作(CRUD)に豊富なクエリ言語をサポートしています

3.高可用性:
MongoDBのレプリケーションツールは、自動フェイルオーバーおよびデータの冗長性を提供し、レプリカセットになるために、

4.水平スケーラビリティ:
MongoDBは、その中核機能の一部として、データスライスは、コンピュータのグループに分割され、スケーラビリティを提供します。

5.サポート複数のストレージエンジン:
WiredTigerストレージエンジンと、MMAPv1インメモリストレージエンジンとストレージエンジン

四、モンゴのシナリオ

ゲームのシーン、保存された文書の形で直接埋め込まれたゲーム情報、ユーザ装置、および他のポイントを保存するためのMongoDBユーザーを使用して、簡単にアクセス、更新

注文情報を保存するためにMongoDBを使って物流シーンは、注文状況は、店舗に埋め込まれた配列のMongoDBの形で、クエリは、注文変更のすべてを読み出すことができるようになります、配達の途中で更新されます。

社会的なシーンは、友人の店の利用者情報とユーザ情報公表円にMongoDBのストアを使用して、付近の人々は、地理的な位置や他の機能指数によって、達成するために

物事のシーン、すべての情報へのアクセスおよびレポートデバイスのログ情報を格納し、多次元の情報を分析するためにMongoDBを使用してスマートデバイス

ライブ映像は、そのような贈り物に関する情報として、店舗の利用者情報にはMongoDBを使用

電気プロバイダのシーン、MongoDBを使用して
、このような起源、価格、素材、カラー規格外などの共通の属性に加えて、2件の商品が、モールのシャツとズボンを、それぞれが、そのようなTシャツなどの属性の異なるセットは、独自のプロパティの肩の幅でいる、バスト、袖など、ズボンの腰、足、口と長ズボンの独占的財産です

第五に、インストール構成のMongoDB

計画ディレクトリ(会社の状況に応じて)

例如:
#软件所在目录
/opt/mongodb 
#单节点目录
/opt/mongo_27017/{conf,log,pid}
#数据目录
/data/mongo_27017

1.ダウンロードと解凍

yum install libcurl openssl -y
cd /opt/
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.13.tgz
tar zxvf mongodb-linux-x86_64-3.6.13.tgz
ln -s mongodb-linux-x86_64-3.6.13 mongodb

ファイルディレクトリとデータディレクトリを作成します。2.

mkdir /opt/mongo_27017/{conf,logs,pid} -p
mkdir /data/mongo_27017 -p

3.設定開始モンゴ

1.创建配置文件
cat > /opt/mongo_27017/conf/mongodb.conf  << EOF
systemLog:
  destination: file   
  logAppend: true  
  path: /opt/mongo_27017/logs/mongodb.log

storage:
  journal:
    enabled: true
  dbPath: /data/mongo_27017
  directoryPerDB: true
  wiredTiger:
     engineConfig:
        cacheSizeGB: 1
        directoryForIndexes: true
     collectionConfig:
        blockCompressor: zlib
     indexConfig:
        prefixCompression: true

processManagement:
  fork: true
  pidFilePath: /opt/mongo_27017/pid/mongod.pid

net:
  port: 27017
  bindIp: 127.0.0.1,10.0.0.51
EOF

4.スタートモンゴ

/opt/mongodb/bin/mongod -f /opt/mongo_27017/conf/mongodb.conf

有効にするかどうかを確認します。5.

ps -ef|grep mongo
netstat -lntup|grep 27017

6.設定ログモンゴ

#写入环境变量
echo 'PATH=$PATH:/opt/mongodb/bin' >> /etc/profile
source /etc/profile

7.ログのオンとオフ

#1.登录
mongo db01:27017

#2.关闭
方法1:
使用localhost登录
mongo localhost:27017
use admin
db.shutdownServer()
方法2:
mongod -f /opt/mongo_27017/conf/mongodb.conf --shutdown

最適化のアラームに第六に、

次のように開始した後、いくつかのアラームがあるでしょう。

アラーム内容1:メモリ不足

2019-11-05T00:24:56.345+0800 I STORAGE  [initandlisten] ** WARNING: The configured WiredTiger cache size is more than 80% of available RAM.

ソリューション:

1.追加のメモリ
キャッシュサイズの設定ファイルを調整します。2.

アラーム内容2:コンフィギュレーションアクセス制御パラメータ

2019-11-05T00:24:56.345+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/faq-memory-diagnostics-wt
2019-11-05T00:24:57.129+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-11-05T00:24:57.129+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.

ソリューション:

==============

3アラーム内容:通常のユーザーとして起動しません

2019-11-05T00:24:57.129+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.

ソリューション:

mongod -f /opt/mongo_27017/conf/mongodb.conf --shutdown
useradd mongo
echo "123456"|passwd --stdin mongo
chown -R mongo:mongo /opt/
chown -R mongo:mongo /data/
su - mongo
mongod -f /opt/mongo_27017/conf/mongodb.conf
mongo db01:27017

4アラーム内容:

2019-11-05T00:24:57.129+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2019-11-05T00:24:57.129+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

2019-11-05T00:24:57.129+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2019-11-05T00:24:57.129+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

ソリューション:

1.临时解决
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

2.官方脚本
[root@db01 ~]# cat /etc/init.d/disable-transparent-hugepages
#!/bin/bash
### BEGIN INIT INFO
# Provides:          disable-transparent-hugepages
# Required-Start:    $local_fs
# Required-Stop:
# X-Start-Before:    mongod mongodb-mms-automation-agent
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Disable Linux transparent huge pages
# Description:       Disable Linux transparent huge pages, to improve
#                    database performance.
### END INIT INFO

case $1 in
  start)
    if [ -d /sys/kernel/mm/transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/transparent_hugepage
    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/redhat_transparent_hugepage
    else
      return 0
    fi

    echo 'never' > ${thp_path}/enabled
    echo 'never' > ${thp_path}/defrag

    re='^[0-1]+$'
    if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]]
    then
      # RHEL 7
      echo 0  > ${thp_path}/khugepaged/defrag
    else
      # RHEL 6
      echo 'no' > ${thp_path}/khugepaged/defrag
    fi

    unset re
    unset thp_path
    ;;
esac
=================================================================

[root@db01 ~]# chkconfig --add disable-transparent-hugepages
[root@db01 ~]# chkconfig --list|grep disable


おすすめ

転載: www.cnblogs.com/gongjingyun123--/p/12088283.html