Info 后端服务迁移整理
本文信息为锁老师交接的相关文档,时间为2023年1月份,背景为从一个AWS账户迁移到另外一个AWS账户,其操作均由锁元老师完成,其中有些信息仅供参考。
==============
结构
info站的数据是在scan索引数据时做了一些统计,记录到pg数据库;然后通过api提供给前端。
接口代码:(可以迁移到Elements-Studio组织下)https://github.com/fountainchen/swap-stat-api
数据索引:https://github.com/MoveScan/StcScan ,这块是跟scan索引数据起了一些独立的handle来为swap统计定制数据
db数据库:目前用的postgresql存储,每个网络一个schema,建表语句:
https://github.com/MoveScan/StcScan/tree/main/starcoin-indexer/deploy/create_table.sql
迁移回退到老账号流程
1、先在老的账户下创建pg的db,将新账号下:starswap-info 库整个迁移回去
2、在老账户下,将原stcscan的indexer的配置改成第一步的新建实例
kube/indexer/下 database-swap.czftx6muneg7.ap-northeast-1.rds.amazonaws.com 这个免费实例改成新的
3、前两步数据索引正常执行,在老账户下启动接口部分的服务
改下db配置,直接apply deploy/kube/swap-stat-api-deployment.yaml
4、将前端的访问的域名改到第三步启动的服务上完成迁移
迁移流程详细checklist:
在老账户下开通info的库,建role和db
psql -U postgres -h database-1.c0bz9kehdvnb.ap-northeast-1.rds.amazonaws.com
CREATE ROLE starcoin WITH PASSWORD '{password}' CREATEDB CREATEROLE LOGIN;
GRANT rds_superuser TO starcoin;
grant starcoin TO postgres;
create database starcoin owner starcoin;停止新账户的索引服务,这样新的数据不会再写入。
kubectl -n starcoin-main delete deployment starswap-info-deployment将info库导出到文件
(1)、在k8s的宿主机上操作:(需要检查是否有pg命令,访问info库的权限)
pg_dump -U starcoin -h starswap-info.czftx6muneg7.ap-northeast-1.rds.amazonaws.com -d starcoin > info20230112.sql
(2)、将文件压缩传到跳板机
(3)、从新账户跳板机传到旧账户跳板机
(4)、传到K8s的宿主机(需要检查是否有pg命令,访问info库的权限)
psql -U starcoin -h starswap-info.czftx6muneg7.ap-northeast-1.rds.amazonaws.com -d starcoin < info20230112.sql启动api服务:在swap-stat-api项目中修改配置到第一步的新库地址:
https://github.com/fountainchen/swap-stat-api/blob/master/deploy/kube/swap-stat-api-deployment.yamlkubectl apply -f deploy/kube/swap-stat-api-deployment.yaml
验证接口是否正常?
部署服务:kubectl apply -f deploy/kube/service-swap-stat-api.yaml
启动indexer服务
在StcScan项目中,恢复swap_transaction,swap_stats,price_hour,price_stat,swap_pool_fee_stat这几个job的配置kubectl apply -f starcoin-indexer-swap-main-deployment.yaml
修改所有indexer的db配置,重新apply一下kubectl apply -f starcoin-indexer-barnard-deployment.yaml kubectl apply -f starcoin-indexer-main-deployment.yaml kubectl apply -f starcoin-indexer-halley-deployment.yaml kubectl apply -f starcoin-indexer-proxima-deployment.yaml 查看日志是否正常?
切换api的域名指向新的service
更改dns地址解析
kubectl get service
获取service的aws域名