harbor数据库迁移

发布时间 2023-05-03 10:13:51作者: menglang

harbor数据库迁移(相同版本间迁移)

一、数据导出(旧harbor机)

1、进入数据库容器

[root@localhost ~]#docker exec -u root -it d53efe26b3da /bin/bash
1

2、导出registry数据库

**root [** / **]#** pg_dump -U postgres registry > registry.sql

**root [** / **]#** exit
123

3、从容器中拷贝出registry.sql到本机/root目录下

[root@localhost ~]# docker cp d53efe26b3da:/registry.sql /root
1

4、上传registry.sql 到新建harbor机/root目录下

[root@localhost ~]# scp /root/registry.sql root@192.168.x.x:
1

二、导入数据(新harbor机)

1、registry.sql拷贝到容器里

[root@localhost ~]# docker cp  registry.sql c8fd27af9ff7:/
1

2、进入容器里

[root@localhost ~]# docker exec -u root -it c8fd27af9ff7 /bin/bash
1

3、进入数据库

**root [** / **]#** psql -U postgres

psql (13.4)

Type "help" for help.



postgres=#
123456789

4、删除数据库

postgres=#drop DATABASE registry;
1

会报错:

ERROR:  database "registry“ is being accessed by other users 

DETAIL: There are 3 other sessions using the database.
123

解决:执行如下命令,可反复执行,直到不出现上述报错

SELECT pg_terminate_backend(pg_stat_activity.pid) 

FROM pg_stat_activity

WHERE datname='registry' AND pid<>pg_backend_pid();
12345

5、创建数据库

postgres=# create database registry;

postgres=# exit
123

6、导入数据

[root@localhost ~]#docker exec -u root -it d5refe26b2422 /bin/bash

**root [** / **]#**psql -U postgres registry < registry.sql
123