91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker搭建MongoDB 4.0副本集

發布時間:2020-06-29 17:14:00 來源:網絡 閱讀:6506 作者:三和梁朝偉 欄目:MongoDB數據庫

環境:

系統版本:CentOS 7.5 
內核:4.18.7-1.el7.elrepo.x86_64
Docker-ce: 18.06
MongoDB: 4.0.3

宿主機IP:192.168.1.1
MongoDB1端口:30001
MongoDB2端口:30002
MongoDB3端口:30003

一、安裝docker、docker-compose

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce python-pip

mkdir /etc/docker/
cat << EOF > /etc/docker/daemon.json
{   "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true,
    "default-shm-size": "128M",
    "max-concurrent-downloads": 10,
    "oom-score-adjust": -1000,
    "debug": false
}   
EOF

pip install docker-compose

systemctl enable docker
systemctl start docker

二、創建副本集所需的key

#創建一個volume,將創建的key文件復制至volume中
#400權限是要保證安全性,否則mongod啟動會報錯
#999用戶是容器中的mongod用戶

cd && mkdir mongod && cd mongod
openssl rand -base64 756 > mongo.key
docker volume create mongod_mongo_key
MONGO_KEY_DIR=`docker volume inspect mongod_mongo_key | grep Mount | sed -r 's#.*"(.*)",$#\1#'`
cp mongo.key $MONGO_KEY_DIR
chmod 400 $MONGO_KEY_DIR/mongo.key
chown 999.999 $MONGO_KEY_DIR/mongo.key

mkdir /data/mongo/mongdb{1..3} -pv

三、創建docker-compose文件

#映射/data/mongo/mongdb{1,2,3}目錄到容器里,將數據持久化到磁盤
#映射出三個端口,以便外部用戶連接
#MONGO_INITDB_ROOT_USERNAME:管理員用戶的賬號
#MONGO_INITDB_ROOT_PASSWORD:管理員用戶的密碼

cat << EOF > docker-compose.yaml
version: "3.7"
services:
  mongodb1:
    image: mongo:4.0.3
    container_name: mongodb1
    networks:
      - mongodb
    ports:
      - "30001:27017"
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=123456x
    volumes:
      - /data/mongo/mongdb1:/data/db
      - mongo_key:/mongo
    command: ["mongod","--replSet","BigBoss","--keyFile","/mongo/mongo.key","--directoryperdb"]

  mongodb2:
    image: mongo:4.0.3
    container_name: mongodb2
    networks:
      - mongodb
    ports:
      - "30002:27017"
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=123456
    volumes:
      - /data/mongo/mongdb2:/data/db
      - mongo_key:/mongo
    command: ["mongod","--replSet","BigBoss","--keyFile","/mongo/mongo.key","--directoryperdb"]

  mongodb3:
    image: mongo:4.0.3
    container_name: mongodb3
    networks:
      - mongodb
    ports:
      - "30003:27017"
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=123456
    volumes:
      - /data/mongo/mongdb3:/data/db
      - mongo_key:/mongo
    command: ["mongod","--replSet","BigBoss","--keyFile","/mongo/mongo.key","--directoryperdb"]

networks:
  mongodb:
    driver: bridge
    name: mongodb

volumes:
  mongo_key:
EOF

四、啟動副本集

#副本集群成員的IP地址必須要讓客戶的也能解析這個IP,不然使用集群方式連接數據庫時,無法連接!!!
#若是在阿里云ECS上搭建副本集,想要讓公網的客戶端能夠連接,必須要填ECS的公網IP!!!

#啟動三個容器,并使他們后臺運行

docker pull mongo:4.0.3
docker-compose up -d

#連接30001端口上的容器,開始配置集群

mongo -port 30001 -uroot -p123456 --authenticationDatabase admin

#三節點,其中一個為投票節點,并隱藏
#注意host的IP地址,一定要讓客戶端也能連接所有的地址
#_id的值為--replSet參數后的字符串

rs.initiate(
{
  _id: "BigBoss",
  version: 1,
  protocolVersion: 1,
  writeConcernMajorityJournalDefault: true,
  members: [
    {
      _id: 0,
      host: "192.168.1.1:30001",
      arbiterOnly: false,
      buildIndexes: true,
      hidden: false,
      priority: 66,
      tags: {
        BigBoss: "YES"
      },
      slaveDelay: 0,
      votes: 1
    },
    {
      _id: 1,
      host: "192.168.1.1:30002",
      arbiterOnly: false,
      buildIndexes: true,
      hidden: false,
      priority: 55,
      tags: {
        BigBoss: "NO"
      },
      slaveDelay: 0,
      votes: 1
    },
    {
      _id: 2,
      host: "192.168.1.1:30003",
      arbiterOnly: true,
      buildIndexes: true,
      hidden: true,
      priority: 0,
      tags: {
      },
      slaveDelay: 0,
      votes: 1
    }
  ],
  settings: {
    chainingAllowed : true,
  }
}
)

####################################################
[root@master mongod]#mongo -port 30001 -uroot -p123456 --authenticationDatabase admin
MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:30001/
Implicit session: session { "id" : UUID("a196085a-a142-450f-9eab-a0fc5a58c43b") }
MongoDB server version: 4.0.3
Server has startup warnings:
2018-10-09T10:15:20.474+0000 I CONTROL  [initandlisten]
2018-10-09T10:15:20.474+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-10-09T10:15:20.474+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-10-09T10:15:20.474+0000 I CONTROL  [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>
>
> rs.initiate(
... {
...   _id: "BigBoss",
...   version: 1,
...   protocolVersion: 1,
...   writeConcernMajorityJournalDefault: true,
...   members: [
...     {
...       _id: 0,
...       host: "192.168.1.1:30001",
...       arbiterOnly: false,
...       buildIndexes: true,
...       hidden: false,
...       priority: 66,
...       tags: {
...     BigBoss: "YES"
...       },
...       slaveDelay: 0,
...       votes: 1
...     },
...     {
...       _id: 1,
...       host: "192.168.1.1:30002",
...       arbiterOnly: false,
...       buildIndexes: true,
...       hidden: false,
...       priority: 55,
...       tags: {
...     BigBoss: "NO"
...       },
...       slaveDelay: 0,
...       votes: 1
...     },
...     {
...       _id: 2,
...       host: "192.168.1.1:30003",
...       arbiterOnly: true,
...       buildIndexes: true,
...       hidden: true,
...       priority: 0,
...       tags: {
...       },
...       slaveDelay: 0,
...       votes: 1
...     }
...   ],
...   settings: {
...     chainingAllowed : true,
...   }
... }
... )
{ "ok" : 1 }
BigBoss:SECONDARY>
BigBoss:SECONDARY>
BigBoss:SECONDARY>
BigBoss:SECONDARY>
BigBoss:PRIMARY>
BigBoss:PRIMARY>

#現在30001端口的容器已經是PRIMARY了

五、測試

#停止PRIMARY的容器

docker ps -a
docker stop mongodb1

#######################################################################################
[root@master mongod]#docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
62f42e2aee19        mongo:4.0.3         "docker-entrypoint.s…"   5 minutes ago       Up 5 minutes        0.0.0.0:30003->27017/tcp   mongodb3
735b8d8a2bcf        mongo:4.0.3         "docker-entrypoint.s…"   5 minutes ago       Up 5 minutes        0.0.0.0:30001->27017/tcp   mongodb1
27ebcebde77e        mongo:4.0.3         "docker-entrypoint.s…"   5 minutes ago       Up 5 minutes       0.0.0.0:30002->27017/tcp   mongodb2
[root@master mongod]#docker stop mongodb1
mongodb1
[root@master mongod]#docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                      NAMES
62f42e2aee19        mongo:4.0.3         "docker-entrypoint.s…"   6 minutes ago       Up 6 minutes               0.0.0.0:30003->27017/tcp   mongodb3
735b8d8a2bcf        mongo:4.0.3         "docker-entrypoint.s…"   6 minutes ago       Exited (0) 2 seconds ago                              mongodb1
27ebcebde77e        mongo:4.0.3         "docker-entrypoint.s…"   6 minutes ago       Up 6 minutes              0.0.0.0:30002->27017/tcp   mongodb2
[root@master mongod]#

#連接端口為30002的容器

mongo -port 30002 -uroot -p123456 --authenticationDatabase admin

#查看集群狀態
rs.status()

#######################################################################################

[root@master mongod]#mongo -port 30002 -uroot -p123456 --authenticationDatabase admin
MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:30002/
Implicit session: session { "id" : UUID("7a83559d-84e3-4c89-93dd-1947d40c4837") }
MongoDB server version: 4.0.3
Server has startup warnings:
2018-10-09T10:20:50.944+0000 I CONTROL  [initandlisten]
2018-10-09T10:20:50.944+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-10-09T10:20:50.944+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-10-09T10:20:50.945+0000 I CONTROL  [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

BigBoss:PRIMARY>
BigBoss:PRIMARY>
BigBoss:PRIMARY> rs.status()
{
    "set" : "BigBoss",
    "date" : ISODate("2018-10-09T10:22:16.104Z"),
    "myState" : 1,
    "term" : NumberLong(2),
    "syncingTo" : "",
    "syncSourceHost" : "",
    "syncSourceId" : -1,
    "heartbeatIntervalMillis" : NumberLong(2000),
    "optimes" : {
        "lastCommittedOpTime" : {
            "ts" : Timestamp(1539080483, 1),
            "t" : NumberLong(1)
        },
        "readConcernMajorityOpTime" : {
            "ts" : Timestamp(1539080483, 1),
            "t" : NumberLong(1)
        },
        "appliedOpTime" : {
            "ts" : Timestamp(1539080528, 1),
            "t" : NumberLong(2)
        },
        "durableOpTime" : {
            "ts" : Timestamp(1539080528, 1),
            "t" : NumberLong(2)
        }
    },
    "lastStableCheckpointTimestamp" : Timestamp(1539080483, 1),
    "members" : [
        {
            "_id" : 0,
            "name" : "192.168.1.1:30001",
            "health" : 0,
            "state" : 8,
            "stateStr" : "(not reachable/healthy)",
            "uptime" : 0,
            "optime" : {
                "ts" : Timestamp(0, 0),
                "t" : NumberLong(-1)
            },
            "optimeDurable" : {
                "ts" : Timestamp(0, 0),
                "t" : NumberLong(-1)
            },
            "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
            "optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),
            "lastHeartbeat" : ISODate("2018-10-09T10:22:15.296Z"),
            "lastHeartbeatRecv" : ISODate("2018-10-09T10:21:26.296Z"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" : "Error connecting to 192.168.1.1:30001 :: caused by :: Connection refused",
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "",
            "configVersion" : -1
        },
        {
            "_id" : 1,
            "name" : "192.168.1.1:30002",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 86,
            "optime" : {
                "ts" : Timestamp(1539080528, 1),
                "t" : NumberLong(2)
            },
            "optimeDate" : ISODate("2018-10-09T10:22:08Z"),
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "could not find member to sync from",
            "electionTime" : Timestamp(1539080497, 1),
            "electionDate" : ISODate("2018-10-09T10:21:37Z"),
            "configVersion" : 1,
            "self" : true,
            "lastHeartbeatMessage" : ""
        },
        {
            "_id" : 2,
            "name" : "192.168.1.1:30003",
            "health" : 1,
            "state" : 7,
            "stateStr" : "ARBITER",
            "uptime" : 85,
            "lastHeartbeat" : ISODate("2018-10-09T10:22:15.275Z"),
            "lastHeartbeatRecv" : ISODate("2018-10-09T10:22:14.994Z"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" : "",
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "",
            "configVersion" : 1
        }
    ],
    "ok" : 1,
    "operationTime" : Timestamp(1539080528, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1539080528, 1),
        "signature" : {
            "hash" : BinData(0,"f+D+XukeDBrkwdiZD5AvUJkHg3M="),
            "keyId" : NumberLong("6610298923057676289")
        }
    }
}
BigBoss:PRIMARY>
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛南县| 蓬安县| 富民县| 吴堡县| 方城县| 嘉荫县| 吉木乃县| 大姚县| 泰安市| 皮山县| 宁国市| 阿克苏市| 丰都县| 乌什县| 稷山县| 武宁县| 蕉岭县| 济源市| 武冈市| 衡南县| 江西省| 上犹县| 宝山区| 连山| 榆树市| 游戏| 四会市| 三门县| 上饶县| 同心县| 龙门县| 涿鹿县| 康定县| 江西省| 会宁县| 红桥区| 蓬莱市| 南江县| 开阳县| 温泉县| 来安县|