Harbor
1、Harbor的迁移和维护
环境说明: 因为之前的harbor服务挂了, 数据目录在/data/下, 然后数据是存在的,后来部署新环境之后,将数据迁移过去之后,服务启动各种问题,很多情况下就是pg数据库的问题以及权限问题,所以,踩了很多坑,现在把一种最有效的方式介绍下。
1. 迁移老数据(registry+database)
1、导出database 就是迁移数据库,这里迁移方式就是,先使用docker部署一个跟老版本一致的postgresql,然后把数据挂到数据库中 然后就是导出数据
使用docker部署临时老版本的postgresql
mkdir /postgres #将数据同步到此目录 使用rsync
docker run -d \
--name postgres \
-p 15432:5432 \
-e POSTGRES_PASSWORD=123456.Com \
-v ./postgres:/var/lib/postgresql/data \
postgres:13.10
docker exec -it postgres bash
pg_dumpall -U postgres > /tmp/all.sql
docker cp postgres:/tmp/all.sql .
2、 备份registry 把这个目录下的文件使用rsync迁移到 新版本的对应目录 然后添加权限
chmod -R 777 v2
2. 重新部署一套新Harbor环境
注意修改harbor.yml中的访问harbor访问的域名或者ip 注意修改端口号,默认为80 注意修改数据持久化目录,要放在哪个位置
3. 迁移pg数据
查看库有多少个 SELECT datname FROM pg_database;
1. 停止除了harbor-db的项目
docker stop harbor-jobservice nginx harbor-core registryctl registry redis harbor-portal harbor-log
2.删除当前新库中生成的harbor数据
登录新部署环境的harbor-db容器 删除现有的库 (除了这三个库postgres template0 template1) ,其余都删掉,因为pg如果要删除指定库,就需要进去其他库,不能进入当前库进行删除,template0 template1这两个库删除有特殊性,此处不需要删除。 参考文档: https://www.modb.pro/db/88534
psql -U postgres -h 127.0.01 -p 5432 -d postgres
drop database xnotaryserver;
drop database notarysigner
drop database registry
3 将旧库的数据恢复到新库
把从旧库的备份文件迁移到当前新库中
psql -U postgres /tmp/all.sql