Managing backups in Yandex Managed Service for Valkey™
You can create backups and use existing backups to restore your clusters.
Yandex Managed Service for Valkey™ automatically creates a daily backup as well. You can set the backup start time:
Restoring a cluster from a backup
Warning
For clusters running an unsupported DBMS version, restoring from backups is not available.
When you restore a cluster from a backup, you create a new cluster with the backup data. If your folder lacks resources to create such a cluster, you will not be able to restore from the backup. The average backup restore speed is 10 MBps.
If you selected the local-ssd disk type when restoring the cluster from a backup, add at least two hosts per shard.
Before you begin, assign the managed-redis.restorer role or higher for the backup folder and the new cluster folder to your Yandex Cloud account.
To restore an existing cluster from a backup:
- In the management console
, navigate to the folder where you want to restore the cluster. - Navigate to the Yandex Managed Service for Valkey™ service.
- Click the name of your cluster and select the Backups tab.
- Next to the backup you need, click
and select Restore cluster. - Configure the new cluster. You can select a folder for the new cluster from the Folder list.
- Click Restore cluster.
To restore a previously deleted cluster from a backup:
- In the management console
, navigate to the folder where you want to restore the cluster. - Navigate to the Yandex Managed Service for Valkey™ service.
- In the left-hand panel, select
Backups. - Find the backup you need using its creation time and cluster ID. The ID column contains IDs in
<cluster_ID>:<backup_ID>format. - In the line of the appropriate backup, click
and select Restore cluster. - Configure the new cluster. You can select a folder for the new cluster from the Folder list.
- Click Restore cluster.
Yandex Managed Service for Valkey™ will start creating the cluster from the backup.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To restore a cluster from a backup:
-
View the description of the CLI command for restoring a Valkey™ cluster:
yc managed-redis cluster restore --help -
Get the list of available Valkey™ cluster backups:
yc managed-redis backup listResult:
+--------------------------+---------------------+----------------------+---------------------+ | ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT | +--------------------------+---------------------+----------------------+---------------------+ | c9qlk4v13uq7********:... | 2020-08-10 12:00:00 | c9qlk4v13uq7******** | 2020-08-10 11:55:17 | | ... | +--------------------------+---------------------+----------------------+---------------------+ -
Send the following request to create a cluster from a backup:
yc managed-redis cluster restore \ --backup-id c9q287aqv5rf********:20181113T133617 \ --name mynewrd \ --environment=PRODUCTION \ --network-name default \ --host zone-id=ru-central1-a,subnet-id=b0rcctk2rvtr********,assign-public-ip=true,replica-priority=50 \ --password P@ssWord \ --disk-size 20This will create a new Valkey™ cluster with the following specifications:
- Name:
mynewrd. - Environment:
PRODUCTION. - Network:
default. - Host class:
hm1.nano(one host); subnet:b0rcctk2rvtr********; availability zone:ru-central1-a; access: public; replica priority:50. - Password:
P@ssWord. - Network SSD storage (
network-ssd): 20 GB.
The password must be from 8 to 128 characters long and match the
[a-zA-Z0-9@=+?*.,!&#$^<>_-]*regular expression. - Name:
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Call the Cluster.Restore method, e.g., via the following cURL
request:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters:restore' \ --data '{ "backupId": "<backup_ID>", "name": "<cluster_name>", "environment": "<environment>", "configSpec": { "redis": { "password": "<user_password>" } }, "hostSpecs": [ { "zoneId": "<availability_zone>", "subnetId": "<subnet_ID>", "replicaPriority": "<host_priority>", "assignPublicIp": <public_access_to_cluster_host> }, { <similar_settings_for_host_2> }, { ... }, { <similar_settings_for_host_N> } ], "networkId": "<network_ID>", "tlsEnabled": <encrypted_TLS_connection_support> }'Where:
-
backupId: Backup ID. To learn the ID, get the list of backups in the folder. -
name: Cluster name. -
environment: Environment,PRESTABLEorPRODUCTION. -
configSpec.redis.password: User password. -
hostSpecs: Host settings:zoneId: Availability zone.subnetId: Subnet ID. You must specify this setting if the selected availability zone has more than one subnet.replicaPriority: Host priority for master promotion during failover.assignPublicIp: Internet access to the host via a public IP address,trueorfalse. You can enable public access only iftlsEnabledis set totrue.
-
networkId: ID of the network the cluster will be deployed in. -
tlsEnabled: Support for encrypted TLS connections to the cluster,trueorfalse.Warning
You can enable encrypted connections only when creating a new cluster. You cannot disable encryption for an existing cluster.
-
-
Check the server response to make sure your request was successful.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Clone the cloudapi
repository:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiBelow, we assume that the repository contents reside in the
~/cloudapi/directory. -
Call the Cluster.Restore method, e.g., via the following gRPCurl
request:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "backup_id": "<backup_ID>", "name": "<cluster_name>", "environment": "<environment>", "config_spec": { "redis": { "password": "<user_password>" } }, "host_specs": [ { "zone_id": "<availability_zone>", "subnet_id": "<subnet_ID>", "replica_priority": "<host_priority>", "assign_public_ip": <public_access_to_cluster_host> }, { <similar_settings_for_host_2> }, { ... }, { <similar_settings_for_host_N> } ], "network_id": "<network_ID>", "tls_enabled": <encrypted_TLS_connection_support> }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.redis.v1.ClusterService.RestoreWhere:
-
backup_id: Backup ID. To learn the ID, get the list of backups in the folder. -
name: Cluster name. -
environment: Environment,PRESTABLEorPRODUCTION. -
config_spec.redis.password: User password. -
host_specs: Host settings:zone_id: Availability zone.subnet_id: Subnet ID. You must specify this setting if the selected availability zone has more than one subnet.replica_priority: Host priority for master promotion during failover.assign_public_ip: Controls whether the host is accessible via a public IP address,trueorfalse. You can enable public access only iftlsEnabledis set totrue.
-
network_id: ID of the network the cluster will be deployed in. -
tls_enabled: Support for encrypted TLS connections to the cluster,trueorfalse.Warning
You can enable encrypted connections only when creating a new cluster. You cannot disable encryption for an existing cluster.
-
-
Check the server response to make sure your request was successful.
Creating a backup
- In the management console
, where you want to create a backup. - Navigate to the Yandex Managed Service for Valkey™ service.
- Click the name of your cluster and select the Backups tab.
- Click Create backup.
This will initiate creating a backup without any additional confirmation.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To create a cluster backup:
-
View the description of the CLI command for creating a Valkey™ backup:
yc managed-redis cluster backup --help -
Send the following request to create a cluster backup, specifying the cluster name or ID:
yc managed-redis cluster backup my-rd-clusterYou can get the cluster name and ID with the list of clusters.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Call the Cluster.Backup method, e.g., via the following cURL
request:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<cluster_ID>:backup'You can request the cluster ID with the list of clusters in the folder.
-
Check the server response to make sure your request was successful.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Clone the cloudapi
repository:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiBelow, we assume that the repository contents reside in the
~/cloudapi/directory. -
Call the ClusterService.Backup method, e.g., via the following gRPCurl
request:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<cluster_ID>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.redis.v1.ClusterService.BackupYou can request the cluster ID with the list of clusters in the folder.
-
Check the server response to make sure your request was successful.
Warning
While you are creating a backup, the cluster performance may degrade.
Getting a list of backups
To get a list of cluster backups:
- In the management console
, navigate to the relevant folder. - Navigate to the Yandex Managed Service for Valkey™ service.
- Click the name of your cluster and select the Backups tab.
To get a list of all backups in a folder:
- In the management console
, navigate to the relevant folder. - Navigate to the Yandex Managed Service for Valkey™ service.
- In the left-hand panel, select
Backups.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To get a list of Valkey™ cluster backups available in the default folder, run this command:
yc managed-redis backup list
Result:
+--------------------------+---------------------+----------------------+---------------------+
| ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT |
+--------------------------+---------------------+----------------------+---------------------+
| c9qlk4v13uq7********:... | 2020-08-10 12:00:00 | c9qlk4v13uq7******** | 2020-08-10 11:55:17 |
| c9qpm90p3pcg********:... | 2020-08-09 22:01:04 | c9qpm90p3pcg******** | 2020-08-09 21:30:00 |
+--------------------------+---------------------+----------------------+---------------------+
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
To get a list of cluster backups:
-
Call the Cluster.ListBackups method, e.g., via the following cURL
request:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<cluster_ID>/backups'You can request the cluster ID with the list of clusters in the folder.
-
Check the server response to make sure your request was successful.
-
-
To get a list of backups for all clusters in a folder:
-
Call the Backup.List method, e.g., via the following cURL
request:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/backups' \ --url-query folderId=<folder_ID>You can get the folder ID with the list of folders in the cloud.
-
Check the server response to make sure your request was successful.
-
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Clone the cloudapi
repository:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiBelow, we assume that the repository contents reside in the
~/cloudapi/directory. -
To get a list of cluster backups:
-
Call the ClusterService.ListBackups method, e.g., via the following gRPCurl
request:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<cluster_ID>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.redis.v1.ClusterService.ListBackupsYou can request the cluster ID with the list of clusters in the folder.
-
Check the server response to make sure your request was successful.
-
-
To list backups for all clusters in your folder:
-
Call the BackupService.List method, e.g., via the following gRPCurl
request:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/backup_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "folder_id": "<folder_ID>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.redis.v1.BackupService.ListYou can get the folder ID with the list of folders in the cloud.
-
Check the server response to make sure your request was successful.
-
Getting backup information
To get information about a backup of an existing cluster:
- In the management console
, go to the folder with the cluster whose backup information you want to get. - Navigate to the Yandex Managed Service for Valkey™ service.
- Click the name of your cluster and select the Backups tab.
To get information about a backup of a previously deleted cluster:
- In the management console
, go to the folder that previously stored the deleted cluster. - Navigate to the Yandex Managed Service for Valkey™ service.
- In the left-hand panel, select
Backups.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To get backup details for a Valkey™ cluster, run this command:
yc managed-redis backup get <backup_ID>
You can get the backup ID with the list of backups.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Call the Backup.Get method, e.g., via the following cURL
request:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/backups/<backup_ID>'You can get the backup ID with the list of backups.
-
Check the server response to make sure your request was successful.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Clone the cloudapi
repository:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiBelow, we assume that the repository contents reside in the
~/cloudapi/directory. -
Call the BackupService.Get method, e.g., via the following gRPCurl
request:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/backup_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "backup_id": "<backup_ID>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.redis.v1.BackupService.GetYou can get the backup ID with the list of backups.
-
Check the server response to make sure your request was successful.
Setting the backup start time
To set the backup start time, use the --backup-window-start option. You must specify the time in HH:MM:SS format.
yc managed-redis cluster create \
--name <cluster_name> \
--environment <environment> \
--network-name <network_name> \
--host zone-id=<availability_zone>,subnet-id=<subnet_ID> \
--backup-window-start 10:25:00
Where --environment is the environment, either prestable or production.
To change the backup start time for an existing cluster, use the update command:
yc managed-redis cluster update \
--name <cluster_name> \
--backup-window-start 11:25:00
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Use the Cluster.Update method and send the following request, e.g., via cURL
:Warning
The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the
updateMaskparameter as a single comma-separated string.curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<cluster_ID>' \ --data '{ "updateMask": "configSpec.backupWindowStart", "configSpec": { "backupWindowStart": { "hours": "<hours>", "minutes": "<minutes>", "seconds": "<seconds>", "nanos": "<nanoseconds>" } } }'Where:
-
updateMask: Comma-separated string of settings you want to update.Here, we provide only one setting.
-
configSpec.backupWindowStart: Backup window settings.Here, specify the backup start time:
hours: Between0and23hours.minutes: Between0and59minutes.seconds: Between0and59seconds.nanos: Between0and999999999nanoseconds.
You can request the cluster ID with the list of clusters in the folder.
-
-
Check the server response to make sure your request was successful.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Clone the cloudapi
repository:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiBelow, we assume that the repository contents reside in the
~/cloudapi/directory. -
Call the ClusterService.Update method, e.g., via the following gRPCurl
request:Warning
The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the
update_maskparameter as an array ofpaths[]strings.Format for listing settings
"update_mask": { "paths": [ "<setting_1>", "<setting_2>", ... "<setting_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<cluster_ID>", "update_mask": { "paths": [ "config_spec.backup_window_start" ] }, "config_spec": { "backup_window_start": { "hours": "<hours>", "minutes": "<minutes>", "seconds": "<seconds>", "nanos": "<nanoseconds>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.redis.v1.ClusterService.UpdateWhere:
-
update_mask: List of parameters to update as an array of strings (paths[]).Here, we provide only one setting.
-
config_spec.backup_window_start: Backup window settings.In this parameter, specify the backup start time:
hours: Between0and23hours.minutes: Between0and59minutes.seconds: Between0and59seconds.nanos: Between0and999999999nanoseconds.
You can request the cluster ID with the list of clusters in the folder.
-
-
Check the server response to make sure your request was successful.