成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

MongoDB數(shù)據(jù)庫軟件下載、主機環(huán)境配置及復制集群搭建

IT那活兒 / 2196人閱讀
MongoDB數(shù)據(jù)庫軟件下載、主機環(huán)境配置及復制集群搭建
點擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!

MongoDB軟件下載

1.1 MongoDB到官方網(wǎng)站下載
https://www.mongodb.com/try/download/community
服務(wù)器版本:CentOS Linux release 7.9.2009 (Core)
本次下載的是MongoDB 4.4.18社區(qū)版:
1.2 MongoDB 工具下載
其中包含mongodump、mongorestore、mongostat、mongotop等。
以上就是MongoDB軟件和命令行工具的下載過程:


主機環(huán)境配置

2.1 創(chuàng)建mongo主機用戶
useradd mongo
echo "password"|passwd mongo --stdin 1>/dev/null;
2.2 解壓安裝包并重命名
在/opt目錄下新建mongodb目錄并修改權(quán)限:
mkdir -p /opt/mongodb
cd /opt/
chown mongo:mongo mongodb
將MongoDB軟件和工具解壓到/opt/mongodb目錄:
su - mongo
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.18.tgz -C /opt/mongodb
tar -zxvf mongodb-database-tools-rhel70-x86_64-100.6.1.tgz -C /opt/mongodb
修改目錄名字為mongodb_4.4.18,方便后期升級維護:
cd /opt/mongodb
mv mongodb-linux-x86_64-rhel70-4.4.18 mongodb_4.4.18
將工具復制到mongodb_4.4.18目錄后刪除原目錄:
cd mongodb-database-tools-rhel70-x86_64-100.6.1
scp -r * /opt/mongodb/mongodb_4.4.18/
cd /opt/mongodb/
rm -rf mongodb-database-tools-rhel70-x86_64-100.6.1

exit
創(chuàng)建軟連接:
ln -s /opt/mongodb/mongodb_4.4.18 /usr/local/mongodb
設(shè)置全局環(huán)境變量:
echo "############ for mongo ############">>/etc/profile
echo "if [ $USER = mongo ]; then">>/etc/profile
echo "export PATH=$PATH:/usr/local/mongodb/bin">>/etc/profile
echo "fi">>/etc/profile
source /etc/profile
2.3 配置YUM并安裝依賴包
1)服務(wù)器掛載鏡像
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup
touch /etc/yum.repos.d/CentOS7-source.repo
echo "[CentOS7]">>/etc/yum.repos.d/CentOS7-source.repo
echo "name=local_yum">>/etc/yum.repos.d/CentOS7-source.repo
echo "baseurl=file:///mnt">>/etc/yum.repos.d/CentOS7-source.repo
echo "gpgcheck=0">>/etc/yum.repos.d/CentOS7-source.repo
echo "enabled=1">>/etc/yum.repos.d/CentOS7-source.repo
執(zhí)行yum repolist結(jié)果如下圖說明配置成功:
2)安裝MongoDB需要的依賴包
yum install -y libcurl xz-libs cyrus-sasl cyrus-sasl-gssapi 
cyrus-sasl-plain krb5-libs libcurl libpcap lm_sensors-libs
net-snmp net-snmp-agent-libs openldap openssl rpm-libs
tcp_wrappers-libs telnet sysstat iotop dstat nmap net-tools
以下截圖說明全部已安裝:
2.4 服務(wù)器環(huán)境配置
所有參數(shù)配置都需要參考官方文檔和服務(wù)器自身情況進行合理配置。

1)官方文檔連接如下,可選擇需要安裝的MongoDB版本

https://www.mongodb.com/docs/v4.4/administration/production-checklist-operations/

本次安裝環(huán)境:

  • 數(shù)據(jù)庫架構(gòu): 兩副本復制集
  • 數(shù)據(jù)庫版本: MongoDB 4.4.18
  • 服務(wù)器: CentOS 7.9
  • 內(nèi)存: 16 GB
  • 存儲: 500 GB
2)配置limits
echo "############ for mongo ############">>/etc/security/limits.conf
echo "mongo soft nofile 64000">>/etc/security/limits.conf
echo "mongo hard nofile 64000">>/etc/security/limits.conf
echo "mongo soft nproc 32000">>/etc/security/limits.conf
echo "mongo hard nproc 32000">>/etc/security/limits.conf
驗證參數(shù)是否配置成功:
su - mongo
ulimit -f
ulimit -t
ulimit -v
ulimit -l
ulimit -n
ulimit -m
ulimit -u
如下圖所示,說明配置成功:
3)內(nèi)核參數(shù)修改
echo "############ for mongo ############">>/etc/sysctl.conf
echo "kernel.shmall = 536870912">>/etc/sysctl.conf
echo "kernel.shmmax = 12884901888">>/etc/sysctl.conf
echo "net.ipv4.conf.all.accept_redirects=0">>/etc/sysctl.conf
echo "vm.swappiness=5">>/etc/sysctl.conf
echo "vm.min_free_kbytes = 512000">>/etc/sysctl.conf
echo "vm.dirty_ratio = 80">>/etc/sysctl.conf
echo "vm.dirty_expire_centisecs = 500">>/etc/sysctl.conf
echo "vm.dirty_writeback_centisecs = 100">>/etc/sysctl.conf
echo "fs.file-max=98000 ">>/etc/sysctl.conf
echo "kernel.pid_max=64000 ">>/etc/sysctl.conf
echo "vm.max_map_count=12800">>/etc/sysctl.conf
echo "kernel.threads-max=64000">>/etc/sysctl.conf
執(zhí)行sysctl -p /etc/sysctl.conf使配置生效:
4)禁用numa
官網(wǎng)解釋如下:
查看配置情況:
dmesg | grep -i numa
如果有多個nodes則需要關(guān)閉numa
echo 0 > /proc/sys/vm/zone_reclaim_mode
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

cat /etc/default/grub |grep GRUB_CMDLINE_LINUX|grep ^[^#]
sed -i /GRUB_CMDLINE_LINUX/ s/quiet/quiet numa=off transparent_hugepage=never elevator=noop/ /etc/default/grub
重新生成grub配置文件:
grub2-mkconfig -o /boot/grub2/grub.cfg

參數(shù)解釋:

  • numa=off  :關(guān)閉numa,需要重啟主機。
  • transparent_hugepage=never  :關(guān)閉透明大頁,需要重啟主機。
  • elevator=noop  :設(shè)置磁盤調(diào)度,本服務(wù)器為虛擬機,官網(wǎng)建議使用noop模式。
5)磁盤readahead配置并關(guān)閉tuned
以下是官網(wǎng)截圖,建議將磁盤調(diào)度策略修改為8-32之間,本次修改為8;關(guān)閉tuned服務(wù)。
獲取當前配置:
sudo blockdev --report
/dev/sdb為500 GB的數(shù)據(jù)磁盤,修改預讀值
sudo blockdev --setra 8 /dev/sdb
設(shè)置開機自動修改預讀值:
echo "/sbin/blockdev --setra 8 /dev/sdb">>/etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
cat /etc/rc.d/rc.local|grep ^[^#]
如下圖所示,sdb的原有值為8192,修改后為8:
6)磁盤掛載項修改
官方建議使用XFS文件系統(tǒng),掛載項使用noatime選項:
mount -t xfs -o noatime -o nodiratime /dev/sdb /data
設(shè)置開機自動掛載:
echo "/dev/mapper/vgdata-data /data xfs noatime,nodiratime 0 0">>/etc/fstab
關(guān)閉tuned服務(wù):
systemctl status tuned.service
systemctl stop tuned.service
systemctl disable tuned.service
設(shè)置時間同步:
yum -y install chrony
systemctl enable chronyd
systemctl start chronyd
echo "server 時鐘服務(wù)器IP iburst">>/etc/chrony.conf
systemctl restart chronyd
systemctl status chronyd
關(guān)閉防火墻:
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
sed -i /SELINUX/ s/enforcing/disabled/ /etc/selinux/config

以上為MongoDB主機環(huán)境配置過程,配置過程需要根據(jù)實際環(huán)境進行修改。


MongoDB復制集群搭建

上面介紹了MongoDB軟件和工具下載、軟件路徑和目錄規(guī)劃、主機參數(shù)配置等;配置完成后就可以搭建MongoDB 單機、復制集、分片集群,本次介紹MongoDB復制集的搭建:
1)服務(wù)器上配置(各節(jié)點除ip不一致外,其他都一致)
創(chuàng)建MongoDB的日志、數(shù)據(jù)、pid存放目錄:
su – root
mkdir -p /data/mgmongo/log
mkdir -p /data/mgmongo/pid
mkdir -p /data/mgmongo/mongod_test
chown mongo:mongo -R /data/mgmongo
創(chuàng)建MongoDB配置文件目錄和文件:
cd /etc/
mkdir mongodb
chown mongo:mongo mongodb
su - mongo
cd /etc/mongodb
touch mongo_test.conf
修改配置文件:
systemLog:
verbosity: 0
destination: file
path: "/data/mgmongo/log/mongod_test.log"
logAppend: true
logRotate: rename

processManagement:
fork: true
pidFilePath: "/data/mgmongo/pid/mongo_test.pid"
# port端口號,maxIncomingConnections最大連接數(shù)據(jù):
net:
port: 27017
bindIpAll: true
maxIncomingConnections: 5000
unixDomainSocket:
enabled: true
pathPrefix: "/tmp"
# 啟用登錄認證,需要在創(chuàng)建root管理用戶后啟用:
#security:
#   keyFile: "/etc/mongodb/mongo_keyfile"
#   clusterAuthMode: keyFile
#   authorization: enabled

operationProfiling:
mode: slowOp
slowOpThresholdMs: 200
# dbPath 數(shù)據(jù)存放路徑。
# cacheSizeGB需要根據(jù)實際情況修改,不配置默認是50%。
storage:
dbPath: "/data/mgmongo/mongod_test"
journal:
enabled: true
commitIntervalMs: 100
directoryPerDB: true
engine: wiredTiger
engineConfig:
cacheSizeGB: 12
#關(guān)閉MongoDB自帶的監(jiān)控工具。
cloud:
monitoring:
free:
state: off
# replSetName復制集名稱。
replication:
oplogSizeMB: 2000
replSetName: rs_test
enableMajorityReadConcern: false
三臺服務(wù)器配置完成后,啟動MongoDB:
/usr/local/mongodb/bin/mongod -f /etc/mongodb/mongo_test.conf
/usr/local/mongodb/bin/mongo --host 服務(wù)器IP --port 27017
MongoDB復制集配置, _id為復制集名稱:
rs.initiate(
  {
    _id : "rs_test",
    members: [
      { _id : 0, host : "服務(wù)器IP1:27017",priority:1 },
      { _id : 1, host : "服務(wù)器IP2:27017",priority:1 },
      { _id : 2, host : "服務(wù)器IP3:27017",priority:1 }
    ]
  }
)
配置顯示OK,過幾秒后該節(jié)點會變成主庫,說明配置成功。
2)創(chuàng)建root管理用戶
use admin
db.createUser(
  {
    user: "root",
    pwd: "password",
    roles: [{ role: "root", db: "admin" }]
  }
)
3)啟用密碼驗證
創(chuàng)建keyfile:
cd /etc/mongodb
touch mongo_keyfile
生成key:
openssl rand -base64 756 > /etc/mongodb/mongo_keyfile
chmod 400 /etc/mongodb/mongo_keyfile
同步到其余2臺服務(wù)器。
4)三節(jié)點關(guān)閉MongoDB數(shù)據(jù)庫
關(guān)閉順序為:先備后主,啟用順序為,先主后備。
/usr/local/mongodb/bin/mongod -f /etc/mongodb/mongo_test.conf –shutdown
修改配置文件,取消啟用登錄認證相關(guān)的注釋:
5)啟用MongoDB數(shù)據(jù)庫
/usr/local/mongodb/bin/mongod -f /etc/mongodb/mongo_test.conf
以上為MongoDB復制集搭建過程,搭建完成后可以用rs.status()查看數(shù)據(jù)庫狀態(tài)。


本文作者:張紅久(上海新炬中北團隊)

本文來源:“IT那活兒”公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129127.html

相關(guān)文章

  • 使用mlaunch和m快速搭建MongoDB測試集群

    摘要:本文中我們就來聊一聊如何使用和兩個工具快速搭建一個測試集群。注意的目的旨在為我們快速搭建測試環(huán)境,絕對不應(yīng)該用于生產(chǎn)環(huán)境的使用上。準備工作安裝是用于的一系列工具,就是其中用于快速啟動的一部分。以下這些參數(shù)是我們經(jīng)常使用的啟動一個復制集。 前言 不知道大家在使用MongoDB的時候有沒有遇到突然想要一個集群但是手邊又沒有的時候?特別是我已經(jīng)升級到4.0了,突然想要一個3.2的集群怎么辦?...

    wangzy2019 評論0 收藏0
  • ElasticSearch6.4.0集群搭建

    摘要:虛擬內(nèi)存區(qū)域是一個連續(xù)的虛擬地址空間區(qū)域。四啟動集群首先切換為用戶,并啟動服務(wù)器上的節(jié)點注意參數(shù)表示以后臺進程啟動,默認情況下會在控制臺輸出日志。 最近在學習ES相關(guān)內(nèi)容,為了方便自己使用,在本地虛擬機上搭建了一個3節(jié)點的ES集群,在搭建過程中,遇到了許多坑,網(wǎng)上的資料也比較分散,所以詳細整理一下搭建過程發(fā)出來供參考。搭建過程中,由于是兩臺虛擬機,所以有一種很快速的辦法,搭建一臺,然后...

    MrZONT 評論0 收藏0
  • MongoDB 客戶端連接選項

    摘要:原文保持更新及修正基于的客戶端配置選項,其它驅(qū)動大同小異。連接池中連接的最大使用壽命毫秒。設(shè)置該選項后,客戶端將進行以下行為以副本集模式連接,并根據(jù)給定的服務(wù)器發(fā)現(xiàn)副本集的所有成員。該選項可以和配合使用。編解碼器用于對進行編碼和解碼。 原文保持更新及BUG修正:http://kweny.io/mongodb-clien... 基于 MongoDB Java Driver 3.8.1 ...

    yexiaobai 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<