前言說明
Linux下安裝MongoDB副本集我基本上是一次搭建,幾百年不再碰,也記不住具體的命令,偶爾需要搭建都是直接網上找的教程,
有些教程很精簡,有些又版本不一樣,所以索性我整合下別人的教程,把linux下搭建副本集的步驟記錄下并分享出來,希望能夠幫到你們,
參考以下文章:https://developer.aliyun.com/article/983777
https://developer.aliyun.com/article/485807 -- 這個還有分片相關的東西,
安裝環境
- 單臺CENT OS 7.6(騰訊云服務器的)
- MongoDB 5.0.15
- MobaXterm 終端工具
預期實作效果
在單臺服務器上,通過配置3個不同埠,啟動3個MongoDB服務來實作副本集配置,
具體實作步驟
步驟一: 下載、安裝MongoDB、配置環境變數
1.1 下載
到官網下載(下圖示注1)或復制下載地址(下圖示注2), https://www.mongodb.com/try/download/community

1,2標注說明:
1 是直接下載tgz包,這是用于直接檔案傳輸到linux上,因為通過wget去下載有時候網速會很慢,所以這里下文會提到download的下載方式,
2 是復制下載鏈接,這是用于wget方式下載,如下文執行命令,
1.2 解壓安裝
通過MobaXterm連接到的你Linux主機,當然你用其他的終端工具都可以,然后進入到指定目錄下,進行安裝,
整體命令如下(是逐行執行,不是整體執行)# 進入指定位置下載安裝包 你也可以選擇其他指定路徑,確保自己清楚即可,
# 進入指定位置下載安裝包 你也可以選擇其他指定路徑,確保自己清楚即可, 還有,下面的執行命令是一行行執行,而不是一起執行,
cd /usr/local
# 下載安裝包 注意:這里可能遇到下載速度很慢的情況,如果遇到了,直接ctrl+c取消,再按照步驟1.1的截圖的1標注,直接下載安裝包到本地,再通過mobaXterm檔案傳輸工具傳進去(下面有截圖參考), 因為wget執行了,/usr/local路徑下有個mongodb安裝包檔案,先刪了再傳,
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.2.tgz
# 注意,執行下面命令前確保安裝包是下載好了的到你指定路徑,
# 解壓安裝包
tar -zxvf mongodb-linux-x86_64-rhel70-5.0.2.tgz
# 改名字
mv mongodb-linux-x86_64-rhel70-5.0.2 mongodb
# 此時可以洗掉安裝包 -- 建議先留著,等最后再刪 可以不執行它
rm -rf mongodb-linux-x86_64-rhel70-5.0.2.tgz
MobaXterm上傳安裝包的截圖

解壓好安裝包之后, cd 進入mongodb 再 ll 查看,看到 bin檔案夾和其他幾個檔案說明解壓成功,如下圖,

1.3 配置環境變數
# 配置環境變數
vim /etc/profile
// 進入到profile之后, 添加的內容如下 注意/usr/local/mongodb是剛才安裝mongodb它所在的路徑,如果你不是安裝在這個路徑下,這里就要換成你的安裝路徑, 具體這兩個配置的插入位置見下圖
export MONGO_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGO_HOME/bin
補充:vim /etc/profile 之后, 按 i 會出來 ------insert----- 此時進入編輯模式,才可以去修改,
修改好了,按住 esc鍵,然后 輸入 :wq 保存退出,

退出后,執行以下命令讓環境變數生效
source /etc/profile
步驟二:創建每個(共3個實體)MongoDB的資料、日志存盤檔案夾
2.1 創建資料、日志、配置存盤檔案夾
分別給每臺服務器創建data 、 logs 、 conf檔案夾,也就是一共9個,放在統一路徑,方便查詢管理,
# 這里直接放在根目錄的data檔案夾下了,你也可以選擇存盤到usr/local/mongodb里面, {1,2,3}表示分別創建 mongo1 mongo2 mongo3
mkdir -p /data/mongo{1,2,3}/data
mkdir -p /data/mongo{1,2,3}/logs
mkdir -p /data/mongo{1,2,3}/conf
執行完畢之后,可以進入到路徑中看看,分別有mongo1/2/3,每一個檔案夾下都有conf / data / logs 檔案夾,分別用來存放配置、資料、日志,

步驟三:配置MongoDB組態檔
對每個MongoDB服務,配置服務器配置,包括IP埠、開放IP,后臺運行以及主要的副本集配置,
分別執行如下命令,創建三個組態檔,把下邊的配置內容粘貼進去,再保存退出
# 每一個conf 對應一個服務器, 里面配置的內容主要是埠不一樣
vim /data/mongo1/conf/mongodb.conf
# 第二個服務器配置
vim /data/mongo2/conf/mongodb.conf
# 第三個服務器配置
vim /data/mongo3/conf/mongodb.conf
配置內容
port=27017 #埠 注意,三臺服務器埠不一樣,分別設定為27017,27018,27019 同時確保Linux埠放開
bind_ip=0.0.0.0 # 默認是127.0.0.1,要想外網接入,這里就要設定為0.0.0.0
# 三臺服務器的資料、日志存放地址不一樣,要注意,
dbpath=/data/mongo1/data #資料庫存放
logpath=/data/mongo1/logs/mongodb.log #日志檔案
fork=true #設定后臺運行
#auth=true #開啟認證
## 下面的就是副本集相關的配置,三個服務器要使用一樣的副本集名稱
replSet = myrs # 定義副本集名稱
oplogSize = 1024 # 定義opLog大小,單位是MB,也可以設定大一些比如2048,我這里演示用,設定小點,
分別改下port dbpath/logpath的路徑,其他保持一致, 一共操作三次vim, 保存配置的時候,先檢查下有沒有漏字母,尤其是 port,
步驟四:分別啟動三個服務
先進入到mongodb bin 路徑下
# 如果你的安裝路徑是其他的,那就以你的為準,反正就是進入到bin路徑下去執行啟動服務器命令
cd /usr/local/mongodb/bin
然后依次執行啟動命令
# 啟動第一臺
./mongod --config /data/mongo1/conf/mongodb.conf
#啟動第二臺
./mongod --config /data/mongo2/conf/mongodb.conf
#啟動第三臺
./mongod --config /data/mongo3/conf/mongodb.conf
每執行完一次,成功的話,提示如下

這時候三臺服務器都啟動好了,連入等下要設定為主節點的服務器,配置副本集并讓其生效,這里我用27017埠的那臺作為主節點,
# 進入到mongodb bin目錄下,執行以下命令接入mongo
mongo --port 27017
說明,埠是你準備要設定為主節點的那臺服務器的埠,如果你用的其他IP,比如外網的MONGO,那么要加上 --host xxx.xxx.xx.xx 具體IP
當你看到下面的內容,說明連接上了,距離你完成副本集搭建只有一步之遙了,

// 在mongo 上切換到admin資料庫,執行
use admin
// 然后會提示你 switched to db admin
// 這個時候輸入以下配置
> config={_id:"myrs",members:[{_id:0,host:"localhost:27017"},{_id:1,host:"localhost:27018"},{_id:2,host:"localhost:27019"}]}
補充說明,第一個_id的值是你在前面配置的副本集名稱,要保持一致, 如果你的三臺服務器都是本地的,可以用localhost,當然也可以用你服務器的IP地址,
執行完畢后,頁面會出來如下圖內容,我執行的時候忘了截圖保存,所以拿別人的來替代下,

然后最后執行初始化生效
# 注意,這里的config 就是上一步命令,你定義的時候,用的變數名,要一致, rs.initiate(config) 執行初始化成功后,頁面會提示ok.
Ok,至此你已經完成副本集配置,可以做測驗驗證看看了,
可以執行查詢看看副本集狀態
rs.status()
看到這些資訊就說明配置好了

補充:如果想要查看當前MongoDB是否正常在后臺跑,可以輸入 ps aux |grep mongodb 查找是否對應行程,
如果需要關掉某個行程重啟,可以 kill 行程ID (通過ps aux |grep mongodb 可以找到)
再啟動,還是在mongodb bin路徑下 執行 mongod -f /具體存放路徑/mongodb.conf -f 表示fork行程 后臺運行
步驟五:連接測驗
可以用mongo compass / studio 3t 或者直接在虛擬機上面操作連接,
分別連接主節點和2個子節點,
這個時候你去主節點插入資料,然后到子節點就可以看到一樣的,
然后子節點里面是寫入不了的,會提示只能在主節點寫入,
注意:要確保服務器的埠開放,不然連不上去,
至此,副本集的基本搭建已完成,
希望這篇文章能幫到你~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/546763.html
標籤:其他
上一篇:對比分析數倉中行列存的特性
