1、切換主節點的腳本如下(把hostname改爲要指定的主機名,登錄主節點執行。):
use admin
db.auth('root','abc')
cfg = rs.conf()
cfg.members.forEach(function(member) {
if (member.host == "hostname:27017") {
member.priority = 2; // 設置指定節點的優先級爲較高值
}
});
rs.reconfig(cfg);
2、鎖定數據庫
db.fsyncLock()
使用 db.currentOp() 查看狀態 ,在最後面三行看到:
"fsyncLock" : true,
"info" : "use db.fsyncUnlock() to terminate the fsync write/snapshot lock",
"ok" : 1
說明鎖庫成功
結束後(複製數據文件夾後執行),使用db.fsyncUnlock()解鎖
3、複製數據文件夾
rsync -P -r 源文件夾 目標文件夾
如果是遠程
rsync --partial --progress -e "ssh -p port" source_file user@destination_host:destination_directory
- --partial:允許部分傳輸文件。如果傳輸中斷,下次運行命令時會繼續傳輸。
- --progress:顯示傳輸進度。
- -e "ssh -p port":指定SSH連接的端口號(如果不是默認的22端口)。
- source_file:源文件的路徑。
- user@destination_host:destination_directory:目標主機和目錄。
4、解除鎖定
db.fsyncUnlock()解鎖
5、加入集羣
1)啓動新的節點
2)集羣的所有/etc/hosts 裏添加新節點的主機名
3)在主節點執行rs.add("hostname:27017")
4)rs.status() 查看集羣,發現新節點已經加入集羣