日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
分享AWS的Redis如何正確遷移至阿里云項(xiàng)目實(shí)踐

一、背景

最近項(xiàng)目上有一個(gè)需求,需要把a(bǔ)ws的redis遷移至阿里云的redis,本來(lái)是想著用阿里云的dts實(shí)現(xiàn)在線遷移,但是aws對(duì)自己產(chǎn)品的redis高級(jí)命令作了限制,不允許用戶使用,所以無(wú)法實(shí)現(xiàn)用dts遷移aws的redis。經(jīng)過(guò)一番曲折之后,用下面的方法成功實(shí)現(xiàn)了aws的redis遷移至阿里云的redis。下面分享一下具體實(shí)現(xiàn)的過(guò)程。

創(chuàng)新互聯(lián)主營(yíng)永昌網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App定制開(kāi)發(fā),永昌h5小程序設(shè)計(jì)搭建,永昌網(wǎng)站營(yíng)銷推廣歡迎永昌等地區(qū)企業(yè)咨詢

二、實(shí)施過(guò)程

1、安裝配置AWS的CLI

(1)安裝AWS CLI

Amazon Linux(本環(huán)境) AWS CLI 預(yù)安裝在 Amazon Linux AMI 上。

檢查當(dāng)前安裝的版本,請(qǐng)使用以下命令:

$ aws --version
aws-cli/2.4.5 Python/3.8.8 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

(2)配置AWS CLI

AWS CLI 將此信息存儲(chǔ)在文件中指定的配置文件(設(shè)置集合)default中 credentials。默認(rèn)情況下,當(dāng)您運(yùn)行未明確指定要使用的配置文件的 AWS CLI 命令時(shí),將使用此配置文件中的信息。

$aws configure
AWS Access Key ID [None]: ***************
AWS Secret Access Key [None]: wJa***************LEKEY
Default region name [None]: cn-northwest-1
Default output format [None]: json

注:regoin name根據(jù)自己的實(shí)際情況填寫,目前國(guó)內(nèi)主要有寧夏(cn-northwest-1)、北京(cn-north-1)兩個(gè)區(qū)。

2、安裝遷移工具redis-shake

前提條件

目標(biāo)Redis實(shí)例的版本社區(qū)版(4.0或5.0版本)或企業(yè)版(5.0版本)

Redis-shake介紹

Redis-shake是阿里云自研的開(kāi)源Redis數(shù)據(jù)傳輸工具,支持對(duì)Redis數(shù)據(jù)進(jìn)行解析(decode)、恢復(fù)(restore)、備份(dump)和同步(sync或rump),易于部署,靈活高效。本案例通過(guò)使用Redis-shake的restore(恢復(fù))模式,將本地RDB文件中的數(shù)據(jù)恢復(fù)至云數(shù)據(jù)庫(kù)Redis,從而實(shí)現(xiàn)數(shù)據(jù)遷移上云。

安裝Redis-shake

1、登陸待安裝的Redis-shake機(jī)器。

2、下載Redis-shake文件。

wget 'http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120287/cn_zh/1608173646665/redis-shake-v2.0.3.tar.gz'

3、解壓Redis-shake文件。

tar xzf redis-shake-v2.0.3.tar.gz

4、修改參數(shù)文件。

參數(shù)

是否必填

說(shuō)明

示例

source.rdb.input

備份文件(RDB文件)的相對(duì)路徑或絕對(duì)路徑。多個(gè)文件請(qǐng)使用英文分號(hào)(;)分隔。

/root/tools/RedisShake/demo.rdb

target.address

目標(biāo)Redis實(shí)例的連接地址與端口號(hào),連接地址和端口號(hào)之間使用英文冒號(hào)(:)分隔。

r-bp1wcw2rlw76acc5k.redis.rds.aliyuncs.com:6379

target.password_raw

目標(biāo)Redis實(shí)例的賬號(hào)(需具備讀寫權(quán)限)及其密碼,賬號(hào)和密碼之間使用英文冒號(hào)(:)分隔。

testaccount:Rp829dlwa

key_exists

當(dāng)源庫(kù)中的Key與目標(biāo)庫(kù)中的Key相同時(shí),采取的數(shù)據(jù)寫入策略,取值:rewrite:覆蓋寫入至目標(biāo)庫(kù)。none:默認(rèn)值,停止運(yùn)行Redis-shake程序并提示沖突的Key。ignore:直接跳過(guò)當(dāng)前遷移的Key,保留目標(biāo)庫(kù)的數(shù)據(jù),繼續(xù)執(zhí)行數(shù)據(jù)遷移。

rewrite

parallel

Redis-shake執(zhí)行遷移的并發(fā)線程數(shù),適當(dāng)調(diào)大該值可提高同步性能。默認(rèn)值為32,最小值為1。

32

3、開(kāi)始執(zhí)行遷移

為了實(shí)現(xiàn)遷移的自動(dòng)化,寫了一個(gè)一鍵遷移腳本。

遷移流程簡(jiǎn)介:

  • 源庫(kù)redis備份。
  • 把備份文件復(fù)制至S3。
  • 從s3下載備份文件至本地。
  • 運(yùn)行Redis-shake程序,開(kāi)始執(zhí)行遷移。
#!/bin/bash
date=$(date +%Y%m%d%H%M%S)
#dump redis file
aws elasticache create-snapshot --cache-cluster-id deviceredis --snapshot-name myredis${date}
sleep 120s
copy_status=`aws elasticache describe-snapshots --cache-cluster-id deviceredis --snapshot-name myredis${date} |grep "available" |wc -l`
until [ $copy_status -eq 1 ]
do
copy_status=`aws elasticache describe-snapshots --cache-cluster-id deviceredis --snapshot-name myredis${date} |grep "available" |wc -l`
sleep 5s
done
#copy redisfile to s3
aws elasticache copy-snapshot --source-snapshot-name myredis${date} --target-snapshot-name myredis${date} --target-bucket redistmp
#download redisfile from s3
get_status=`aws elasticache describe-snapshots --cache-cluster-id deviceredis --snapshot-name myredis${date} |grep "available" |wc -l`
until [ $get_status -eq 1 ]
do
get_status=`aws elasticache describe-snapshots --cache-cluster-id deviceredis --snapshot-name myredis${date} |grep "available" |wc -l`
sleep 5s
done
aws s3api get-object --bucket redistmp --key myredis${date}-0001.rdb ./myredis${date}-0001.rdb
#restore to aliyun redis
sed -i "s/\/root\/redis-shake-v2.0.3\/.*rdb$/\/root\/redis-shake-v2.0.3\/myredis${date}-0001.rdb/g" redis-shake.conf
./redis-shake.linux -type=restore -conf=redis-shake.conf

說(shuō)明:

日志中出現(xiàn)restore: rdb done表示數(shù)據(jù)恢復(fù)完成,此時(shí)使用Ctrl+C組合鍵停止運(yùn)行Redis-shake。如下圖所示:


網(wǎng)站標(biāo)題:分享AWS的Redis如何正確遷移至阿里云項(xiàng)目實(shí)踐
網(wǎng)站URL:http://www.5511xx.com/article/dpejjdp.html