将数据导入数据库
您可以将现有数据集从现有的Redis服务器或RDB文件导入到您的Redis Cloud实例中。
先决条件
在准备过程中,请确保源数据库的Redis版本与数据将要导入的数据库兼容。
从Redis服务器导入
从任何公开可用的Redis服务器导入数据集:
- 从 Redis Cloud 控制台菜单中选择 Databases,然后从数据库列表中选择目标数据库。
- 在危险区域中,选择导入。
- Enter the source database details:
- 源类型 - 选择 Redis。
- Redis 主机名/IP 地址 - 输入源 Redis 服务器的主机名或公共 IP 地址。
- Redis 端口 - 如果源 Redis 服务器的端口不是默认值
6379
,请输入该端口。 - 密码 - 如果源Redis数据库需要,请输入密码。
- 选择导入。
从RDB文件恢复
如果您有来自先前备份的RDB或压缩RDB文件,您可以将该文件中的数据恢复到您的Redis Cloud数据库中。
通过FTP或HTTP
要导入存储在FTP或HTTP服务器上的RDB文件:
-
从 Redis Cloud 控制台菜单中选择 Databases,然后从列表中选择您的数据库。
-
在危险区域中,选择导入。
-
输入RDB文件的详细信息:
- 源类型 - 选择 FTP 或 HTTP。
- 源路径 - 输入RDB文件的URL:
://[username][:password]@hostname[:port]/[path/]filename.rdb[.gz]
其中:
protocol
- 服务器协议: ftp, ftps, http, httpsusername
- 您的用户名,如果需要password
- 您的密码,如果需要hostname
- 服务器的主机名或IP地址port
- 服务器的端口号,如果不是6379
path
- 文件的路径,如果需要的话filename
- RDB文件的文件名,如果文件被压缩,则包括.gz
后缀
注意:如果您的FTP用户名或密码包含特殊字符,例如@
、\
或:
,您必须对这些特殊字符进行URL编码(也称为百分比编码)。如果不这样做,您的数据库可能会卡住。 -
对于具有多个RDB文件的分片数据库,选择添加源以添加另一个RDB文件。
-
选择导入。
通过 AWS S3
要使用Redis Cloud控制台导入您的数据,您必须首先从亚马逊网络服务(AWS)管理控制台共享文件。
要共享和导入存储在AWS简单存储服务(S3)存储桶中的RDB文件:
-
在AWS Management Console中,配置存储桶的bucket policy以授予Redis Cloud访问权限:
-
使用服务菜单来定位并选择存储 > S3。这将带您进入Amazon S3管理面板。
-
使用Buckets列表来定位并选择您的存储桶。当设置出现时,选择Permissions标签,找到Bucket policy部分,然后点击Edit。
-
如果没有现有的存储桶策略,请添加以下JSON存储桶策略。将
UNIQUE-BUCKET-NAME
替换为您的存储桶名称。{ "Version": "2012-10-17", "Id": "MyBucketPolicy", "Statement": [ { "Sid": "RedisCloudBackupsAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::168085023892:root" }, "Action": [ "s3:PutObject", "s3:getObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::UNIQUE-BUCKET-NAME/*" } ] }
-
如果存储桶策略已经存在,请将以下JSON策略声明添加到声明列表中。将
UNIQUE-BUCKET-NAME
替换为您的存储桶名称。{ "Sid": "RedisCloudBackupsAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::168085023892:root" }, "Action": [ "s3:PutObject", "s3:getObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::UNIQUE-BUCKET-NAME/*" }
-
-
保存您的更改。
-
如果存储桶使用SSE-KMS加密,请将以下语句添加到您的密钥策略中。如果您没有密钥策略,请参阅创建密钥策略。将
UNIQUE-BUCKET-NAME
替换为您的存储桶名称,并将CUSTOM-KEY-ARN
替换为您的密钥的Amazon资源名称(ARN)。{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::168085023892:root" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": [ "arn:aws:s3:::UNIQUE-BUCKET-NAME/*", "CUSTOM-KEY-ARN" ] }
-
-
在Redis Cloud控制台中,从数据库列表中选择目标数据库。
-
在危险区域中,选择导入。
-
输入RDB文件的详细信息:
-
源类型 - 选择 AWS S3。
-
源路径 - 输入RDB文件的URL:
s3://bucketname/[path/]filename.rdb[.gz]
其中:
bucketname
- S3存储桶的名称path
- 文件的路径,如果需要filename
- RDB文件的文件名,如果文件被压缩,包括.gz后缀
-
-
对于具有多个RDB文件的分片数据库,选择添加源以添加另一个RDB文件。
-
选择导入。
通过Google云存储
要使用Redis Cloud控制台导入您的数据,您必须首先从Google Cloud控制台共享文件。
要共享和导入存储在Google Cloud Storage存储桶中的RDB文件:
-
在Google Cloud Storage存储桶中,编辑文件的访问控制列表以授予Redis Cloud读取权限:
- Select Edit access in the RDB file menu.
- Select Add item.
- Enter the user details and access:
- 在新项目的Entity字段中,选择User。
- 在新项目的名称字段中,输入:
service@redislabs-prod-clusters.iam.gserviceaccount.com
- 在新项目的访问字段中,选择Reader。
- Select Save.
欲了解更多信息,请参阅设置ACLs。
-
在Redis Cloud控制台中,从数据库列表中选择目标数据库。
-
在危险区域中,选择导入。
-
输入RDB文件的详细信息:
-
源类型 - 选择 Google Cloud Storage。
-
源路径 - 输入RDB文件的URL:
gs://bucketname/[path/]filename.rdb[.gz]
其中:
bucketname
- GCS存储桶的名称path
- 文件的路径filename
- RDB文件的文件名,如果文件被压缩,则包括.gz后缀
-
-
对于具有多个RDB文件的分片数据库,选择添加源以添加另一个RDB文件。
-
选择导入。
通过 Azure Blob 存储容器
要导入存储在Microsoft Azure Blob存储容器中的RDB文件:
-
在 Redis Cloud 控制台中,从数据库列表中选择目标数据库。
-
在危险区域中,选择导入。
-
输入RDB文件的详细信息:
-
源类型 - 选择 Azure Blob Storage。
-
源路径 - 输入RDB文件的URL:
abs://:storage_account_access_key@storage_account_name/[container/]filename.rdb[.gz]
其中:
storage_account_access_key
- 存储账户的主访问密钥storage_account_name
- 存储账户的名称url
- 存储账户的URLcontainer
- 容器的名称,如果需要filename
- RDB文件的文件名,如果文件被压缩则包括.gz后缀
-
-
对于具有多个RDB文件的分片数据库,选择添加源以添加另一个RDB文件。
-
选择导入。