从集群中备份数据库
1.1. 使用kubectl exec -it <service_name>-postgresql-0 -n kaa bash 命令进入数据库pod
1.2. 使用 pg_dump --username <user_name> --dbname <database_name> -f /tmp/backup.sql 命令来创建一个数据库备份
【注:如果要从阿里云的RDS备份可以使用该命令pg_dump -h 阿里云RDS的地址 -U username -d database -f /tmp/backup.sql】
1.3. [可选项] 退出pod并使用kubectl cp -n kaa <service_name>-postgresql-0:tmp/backup.sql backup.sql 来保存备份到你的本地电脑.
在阿里云上创建一个RDS数据库
2.1. 您可以通过terraform repo中编写实例类型、数据库大小和更多内容的配置文件,也可以直接在阿里云上手动创建一个RDS。
恢复备份数据到RDS
3.1. 使用 kubectl exec -it <service_name>-postgresql-0 -n kaa bash 命令来进入到数据库的pod
3.2. 如果用户名和数据库名相同使用 psql -h <rds_url> -U <user_name> < /tmp/backup.sql 命令来恢复数据到RDS.
如果用户名和数据库名不相同psql -h <rds_url> -U <user_name> -d dbname < /tmp/backup.sql 命令来恢复数据到RDS.
确认数据以还原到RDS
4.1. 使用 psql -h <rds_url> -U <user_name> 命令进入创建的新的RDS
4.2. 输入密码
4.3. 通过执行一些postgres命令来检查RDS是否有数据such as \\dt, \\l+, \\du 等等.
确认服务可用
5.1. 将RDS连接到服务,以便将新数据直接发送到RDS。添加新的环境变量到服务对应的 <service>-helm.tf 并且修改 chart version