数据库-PostgreSQL数据迁移

主要涉及两种情景:
1)把数据迁移到k8s内的postgresql中
2)把数据迁移到非k8s内的postgresql中

1 查看当前使用的目录

sudo -u postgres psql
SHOW data_directory;

2 方案一

该方案适用于能够对data目录进行操作的场景

sudo systemctl stop postgresql-11
sudo cp -rf /var/lib/pgsql/11/data/* /data/database/postgres/
sudo chown -R postgres.postgres /data/database/postgres/
sudo chmod 700 /data/database/postgres/
sudo vim /usr/lib/systemd/system/postgresql-11.service
Environment=PGDATA=/data/database/postgres/
sudo systemctl daemon-reload
sudo systemctl start postgresql-11

3 方案二

如果无法对data目录直接进行操作。如,把数据迁移到k8s内的postgresql中的话,该postgresql使用了ceph作为data后端存储。

3.1 实操——以迁移sonarqube数据库为例

  • 在原数据库机器上——进行逻辑备份
su - postgres
pg_dump db_sonarqube > /tmp/test_sonar.sql
#将/tmp/test_sonar.sql传到k8s集群中
  • 在新数据库机器上——准备数据库
CREATE DATABASE db_sonarqube;
CREATE USER sonarqube WITH ENCRYPTED PASSWORD '<sonar-user-password>';
GRANT ALL PRIVILEGES ON DATABASE db_sonarqube TO sonarqube;
ALTER DATABASE db_sonarqube OWNER TO sonarqube;
  • 恢复数据
kubectl -n database cp /tmp/test_sonar.sql pg-stolon-proxy-6bb84d96b-dz5vb:/tmp/
kubectl -n database exec -it pg-stolon-proxy-6bb84d96b-dz5vb bash
su postgres
psql -U sonarqube -p 5432 db_sonarqube < /tmp/test_sonar.sql     
#这个过程我大概花了7分钟
  • 连接数据库
kubectl -n sonarqube edit deploy sonarqube  
jdbc:postgresql://pg-stolon-proxy.database/db_sonarqube
  • 登录页面查看数据是否迁移成功
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值