Selecting a different primary replica
If a cluster has several replicas, you can select a different primary replica (master) as required.
Switching takes on average less than a minute. The cluster may be unavailable for writing for several seconds while switching is taking place.
For more information about selecting a different primary replica, see the MongoDB documentation
- Go to the folder page
and select Managed Service for MongoDB. - Click the cluster name and open the Hosts tab.
- Click
in thePRIMARY
host row and select Step down.
If you do not have the Yandex Cloud CLI yet, install and initialize it.
To change a cluster's primary replica, run the command:
yc managed-mongodb hosts stepdown <current_primary_replica_name> \
--name=<cluster_name>
You can request the name of the shard primary replica with the list of cluster hosts and the cluster name, with the list of clusters in the folder.
-
Get an IAM token for API authentication and put it into the environment variable:
export IAM_TOKEN="<IAM_token>"
-
Use the Cluster.StepdownHosts method and send the following request, e.g., via cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<cluster_ID>:stepdownHosts' \ --data '{ "hostNames": [ "<current_primary_replica_name>" ] }'
You can get the cluster ID with the list of clusters in the folder, and the name of the shard primary replica, with the list of cluster hosts.
-
View the server response to make sure the request was successful.
-
Get an IAM token for API authentication and put it into the environment variable:
export IAM_TOKEN="<IAM_token>"
-
Clone the cloudapi
repository:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Below, we assume the repository contents are stored in the
~/cloudapi/
directory. -
Use the ClusterService.StepdownHosts call and send the following request, e.g., via gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<cluster_ID>", "host_names": [ "<current_primary_replica_name>" ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.StepdownHosts
You can get the cluster ID with the list of clusters in the folder, and the name of the shard primary replica, with the list of cluster hosts.
-
View the server response to make sure the request was successful.