安排定期备份
安排数据库的备份,以确保您始终拥有有效的备份。
定期备份提供了一种以最小数据丢失恢复数据的方法。使用Redis Enterprise Software,您可以安排定期备份,每天一次(每24小时)、每天两次(每12小时)、每四小时或每小时进行一次。
从v6.2.8版本开始,您可以指定24小时或12小时备份的开始时间。
要进行按需备份,导出您的数据。
您可以安排备份到各种位置,包括:
- FTP 服务器
- SFTP 服务器
- 本地挂载点
- 亚马逊简单存储服务 (S3)
- Azure Blob 存储
- 谷歌云存储
备份过程会创建压缩的 (.gz) RDB 文件,您可以将其导入数据库。
当您备份配置为数据库集群的数据库时,Redis Enterprise Software 会为配置中的每个分片创建一个备份文件。所有备份文件都会被复制到存储位置。
- 确保您的存储位置有足够的可用空间。 如果备份位置没有足够的空间,备份将失败。
- 备份配置仅适用于其配置的数据库。
- 为了限制分片的并行备份,请同时设置
tune cluster max_simultaneous_backups
和tune node max_redis_forks
。max_simultaneous_backups
默认设置为4。
安排定期备份
在安排定期备份之前,请确认您的存储位置存在并且对运行Redis Enterprise Software的用户(默认情况下为redislabs
)可用。您应该确认以下几点:
- 权限设置正确。
- 运行Redis Enterprise Software的用户被授权访问存储位置。
- 授权凭证有效。
在安排定期备份之前,会验证存储位置的访问权限。
为数据库安排定期备份:
-
使用管理员凭据登录Redis Enterprise Software集群管理器UI。
-
从数据库列表中,选择数据库,然后选择配置。
-
选择编辑按钮。
-
展开耐久性部分。
-
在计划备份部分,点击添加备份路径以打开路径配置对话框。
-
选择与您的存储位置类型对应的选项卡,输入位置详细信息,然后选择完成。
请参阅支持的存储位置以获取有关每种存储位置类型的更多信息。
-
设置备份的间隔和开始时间。
设置 描述 间隔 指定备份的频率;即每次备份快照之间的时间。
支持的值包括每24小时、每12小时、每4小时和每小时。开始时间 v6.2.8 或更高版本: 指定备份的开始时间;当间隔设置为每24小时或每12小时时可用。
如果未指定,默认由Redis Enterprise Software选择一个时间。 -
选择保存。
在应用更新时,将验证存储位置的访问权限。这意味着在启用定期备份之前,位置、凭据和其他详细信息必须存在并正常运行。
默认备份开始时间
如果您不为二十四小时或十二小时备份指定开始时间,Redis Enterprise Software 将为您选择一个随机的开始时间。
此选项假设您的数据库已部署到包含多个数据库的多租户集群中。这意味着默认的启动时间是错开的(偏移),以确保可用性。这是通过计算一个随机偏移量来实现的,该偏移量指定了添加到启动时间的秒数。
以下是它的工作原理:
- 假设您在下午4点(1600小时)启用备份。
- 您选择每12小时备份一次数据库。
- 由于您没有设置开始时间,集群随机选择了4,320秒(或72分钟)的偏移量。
这意味着您的第一次定期备份将在启用定期备份后72分钟进行(下午4:00 + 72分钟)。备份将每十二小时重复一次,大约在同一时间。
备份时间不精确,因为它们是由一个每五分钟运行一次的触发过程启动的。当该过程唤醒时,它会将当前时间与计划的备份时间进行比较。如果该时间已过,它将触发备份。
如果之前的备份失败,触发过程会重试备份,直到成功为止。
此外,限流和资源限制也会影响备份时间。
如需帮助解决特定的备份问题,联系支持。
支持的存储位置
数据库备份可以保存到本地挂载点,使用FTP/SFTP传输到一个URI,或存储在云提供商存储上。
当保存到本地挂载点或云提供商时,备份位置需要对运行Redis Enterprise Software的组和用户可用,默认情况下为redislabs:redislabs
。
Redis企业版软件需要能够查看权限并更新存储位置中的对象。实现细节根据提供商和您的配置而有所不同。要了解更多信息,请查阅提供商的文档。
以下部分提供了一般指南。由于提供者的功能经常变化,请使用您的提供者的文档以获取最新信息。
FTP 服务器
在启用备份到FTP服务器之前,请验证以下内容:
- 您的 Redis Enterprise 集群可以连接并验证到 FTP 服务器。
- FTP服务器位置中指定的用户具有读写权限。
要将您的备份存储在FTP服务器上,请使用以下语法设置其备份路径:
ftp://[username]:[password]@[host]:[port]/[path]/
其中:
- protocol: 服务器的协议,可以是
ftp
或ftps
。 - username: 如果需要,请输入您的用户名。
- password: 如果需要,请输入您的密码。
- hostname: 服务器的主机名或IP地址。
- port: 服务器的端口号,如果需要的话。
- path: 备份路径,如果需要的话。
示例:ftp://username:password@10.1.1.1/home/backups/
用户账户需要权限才能将文件写入服务器。
SFTP 服务器
在启用备份到SFTP服务器之前,请确保:
-
您的 Redis Enterprise 集群可以连接并验证到 SFTP 服务器。
-
在SFTP服务器位置中指定的用户具有读写权限。
-
SSH私钥已正确指定。您可以使用集群生成的密钥或指定自定义密钥。
要使用集群自动生成的密钥:
-
转到集群 > 安全 > 证书。
-
展开集群SSH公钥。
-
将集群SSH公钥下载或复制到SFTP服务器上的适当位置。
使用服务器文档确定SSH公钥的适当位置。
-
要备份到SFTP服务器,请以以下格式输入SFTP服务器位置:
sftp://user:password@host<:custom_port>/path/
例如:sftp://username:password@10.1.1.1/home/backups/
本地挂载点
在启用定期备份到本地挂载点之前,请验证以下内容:
- 节点可以连接到目标服务器,即托管挂载点的服务器。
redislabs:redislabs
用户在本地挂载点和目标服务器上具有读写权限。- 备份位置有足够的磁盘空间来存储您的备份文件。备份文件以包含时间戳的文件名保存,这意味着早期的备份不会被覆盖。
备份到本地挂载点:
-
在集群中的每个节点上,创建挂载点:
-
连接到运行在托管节点的Redis Enterprise Software服务器上的shell。
-
将远程存储挂载到本地挂载点。
例如:
sudo mount -t nfs 192.168.10.204:/DataVolume/Public /mnt/Public
-
-
在备份位置的路径中,输入挂载点。
例如:
/mnt/Public
-
验证运行Redis Enterprise Software的用户是否具有访问和更新挂载位置文件的权限。
AWS 简单存储服务
要在亚马逊网络服务(AWS)简单存储服务(S3)bucket中存储备份:
-
Create an S3 bucket 如果你还没有一个。
-
Create an IAM User 具有将对象添加到存储桶的权限。
-
Create an access key 如果您还没有该用户的访问密钥,请为其创建一个。
-
在Redis企业软件集群管理器UI中,当您输入备份位置详细信息时:
-
在路径配置对话框中选择AWS S3标签。
-
在路径字段中,输入您的存储桶的路径。
-
在Access Key ID字段中,输入访问密钥ID。
-
在Secret Access Key字段中,输入秘密访问密钥。
-
您还可以连接到使用S3协议但不由Amazon AWS托管的存储服务。存储服务必须具有有效的SSL证书。要连接到兼容S3的存储位置,请运行rladmin cluster config
:
rladmin cluster config s3_url <URL>
将<URL>
替换为S3兼容存储位置的主机名或IP地址。
谷歌云存储
对于Google Cloud订阅,将您的备份存储在Google Cloud Storage存储桶中:
-
登录到Google云平台控制台。
-
创建一个JSON服务账户密钥,如果你还没有的话。
-
Create a bucket 如果你还没有一个。
-
Add a principal 添加到您的存储桶:
-
在新主体字段中,添加服务账户密钥中的
client_email
。 -
从角色列表中选择“Storage Legacy Bucket Writer”。
-
-
在Redis企业软件集群管理器UI中,当您输入备份位置详细信息时:
-
在路径配置对话框中选择Google Cloud Storage标签。
-
在路径字段中,输入您的存储桶的路径。
-
在客户端ID字段中,输入服务账户密钥中的
client_id
。 -
在客户邮箱字段中,输入服务账户密钥中的
client_email
。 -
在私钥ID字段中,输入服务账户密钥中的
private_key_id
。 -
在私钥字段中,输入服务账户密钥中的
private_key
。 将\n
替换为换行符。
-
Azure Blob 存储
要将您的备份存储在Microsoft Azure Blob Storage中,请登录到Azure门户,然后:
要导出到 Microsoft Azure Blob 存储,请登录到 Azure 门户,然后:
-
Create an Azure Storage account 如果您还没有一个。
-
Create a container 如果你还没有一个容器。
-
管理存储账户访问密钥以查找存储账户名称和账户密钥。
-
在Redis企业软件集群管理器UI中,当您输入备份位置详细信息时:
-
在路径配置对话框中选择Azure Blob Storage标签。
-
在路径字段中,输入您的存储桶的路径。
-
在Azure 账户名称字段中,输入您的存储账户名称。
-
在Azure 账户密钥字段中,输入存储账户密钥。
-
要了解更多信息,请参阅Authorizing access to data in Azure Storage。