Skip to content

Latest commit

 

History

History
99 lines (76 loc) · 1.58 KB

File metadata and controls

99 lines (76 loc) · 1.58 KB

MongoDB Replica Sets

Create a new replicaset

Start empty nodes, and run on one of them:

rs.initiate( {
   _id : "replica.name",
   members: [
      { _id: 0, host: "mongo-n01.example.lan:27017" },
      { _id: 1, host: "mongo-n01.example.lan:27017" },
      { _id: 2, host: "mongo-n01.example.lan:27017" }
   ]
})

Check node state

You can use state.js, by running:

mongo state.js --quiet

Check replica lag

rs.printSlaveReplicationInfo()

Hide a slave node

var cfg = rs.config();
var member = cfg.members[<node number>];
printjson(member)
member.priority = 1;
member.hidden = false;
member.votes = 1;
rs.reconfig(cfg)

Make visible slave node

var cfg = rs.config();
var member = cfg.members[<node number>];
printjson(member)
member.priority = 0;
member.hidden = true;
member.votes = 0;
rs.reconfig(cfg)

Replace node 1 with node 4

var cfg = rs.config();

var member = cfg.members[0];
member
member.priority = 1;
member.hidden = false;
member.votes = 1;

var member = cfg.members[4];
member
member.priority = 0;
member.hidden = true;
member.votes = 0;
rs.reconfig(cfg)

Add a new node (nonvoting, hidden)

rs.add( { host: "mongodb3.example.net:27017", priority: 0, votes: 0, hidden: true } )

Create admin user

db.getSiblingDB("admin").createUser(
  {
    "user" : "admin",
    "pwd" : "clear_text_PW",
    roles: [ { "role" : "clusterAdmin", "db" : "admin" },
             { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Create a replicaset key

openssl rand -base64 756 > <path-to-keyfile>