Harbor升级和数据库迁移手册

当升级一个已经存在的Harbor实例到新版本时,需要迁移数据库数据。参考What's New in Harbor Database Schema查看数据库发生了哪些变化,如果有的话,就需要进行数据库迁移操作,因为迁移可能会改变数据库模式,所以在任何数据迁移操作之前,都一定要先备份数据库。

如果你是第一次安装habor,或者新安装的数据库的版本和之前的数据库版本一致,那么你不需要做任何数据库的迁移操作。

注意:

  • 从v1.2开始,你需要使用发布版本号做为迁移镜像的tag,新版本不再使用“latest”这个tag了。

  • 在任何数据操作之前,都必须要备份数据。

升级Harbor和迁移数据

1.      登到harbor所在的服务器上,如果harbor还在运行,就停止并删除对应的Harbor实例。

cd harbor

docker-compose down

2.     备份harbor当前的文件,确保在需要的时候可以回滚到当前的这个版本。

cd ..

mv harbor /my_backup_dir/harbor

3.      在github上获取最新的harbor发布版安装包,下载地址:https://github.com/vmware/harbor/releases

4.      在更新harbor之前,先做数据库迁移操作。这个迁移工具以docker镜像的方式提供,所以你需要从docker hub上pull镜像。在下面的命令里,用harbor的发布版本号来替换[tag]:

docker pull vmware/harbor-db-migrator:[tag]

5.      备份数据库到一个目录,比如/path/to/backup。如果目录不存在的话,你需要自己创建,并且数据库的用户名和密码需要通过环境变量“DB_USR”和“DB_PWD”来提供。

docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backupvmware/harbor-db-migrator:[tag] backup

6.     更新数据库模式并迁移数据:

docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql vmware/harbor-db-migrator:[tag] up head

7.     解压新的harbor安装包,并切换到工作目录./harbor中去。通过修改harbor.cfg来配置harbor。

  • 通过修改harbor.cfg来配置harbor,你可能需要参考第二步操作时备份的配置文件。参考安装和配置手册获取更多的信息。由于新版本的harbor.cfg配置文件的格式和内容可能会发生改变,所以不能直接从之前的版本来复制harbor.cfg配置文件。

重要:如果你更新harbor之前使用的认证方式为LDAP/AD,那边在你加载启动新版本的harbor之前,必须要确保harbor.cfg中的auth_mode配置成ldap_auth,否则,更新之后用户将无法登陆。

  • 为了帮助将harbor.cfg配置文件从v0.5.0版本迁移到v1.1.x版本,提供了一个脚本,描述如下。对于其他版本的配置文件,需要手动迁移harbor.cfg文件。

cd harbor

./upgrade --source-loc source_harbor_cfg_loc--source-version 0.5.0 --target-loc target_harbor_cfg_loc --target-version1.1.x

注意:在执行这个脚本之后,要重新检查一遍,确保harbor.cfg中的配置都是正确的。如果有需要的话,你可以修改harbor.cfg。

8.     切换到./harbor目录,执行./install.sh脚本安装新版本harbor实例。如果你安装harbor选择其他组件,比如Notary或者Clair,可参考安装和配置手册获取更新信息。

升级后回滚

不管什么原因,如果你想回滚到之前的harbor版本,可以参考如下步骤:

1.     停harbor服务。

cd harbor

docker-compose down

2.     从备份文件/path/to/backup中恢复数据库。

docker run -ti --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backupvmware/harbor-db-migrator:[tag] restore

3.     删除当前的harbor实例。

rm -rf harbor

4.     恢复老版本的harbor文件。

mv /my_backup_dir/harbor harbor

5.     使用之前的配置重启harbor服务。

如果之前版本是通过发布的二进制包安装的:

cd harbor

./install.sh

注意:如果你安装harbor选择其他组件,比如Notary或者Clair,可参考安装和配置手册获取更新信息。

如果之前的harbor版本是通过源码安装的:

cd harbor

docker-compose up --build -d

迁移工具参考

  • 使用help命令显示迁移工具帮助信息:

docker run --rm -e DB_USR=root -e DB_PWD=xxxxvmware/harbor-db-migrator:[tag] help

  • 使用test命令测试mysql连接:

docker run --rm -e DB_USR=root -e DB_PWD=xxxx -v/data/database:/var/lib/mysql vmware/harbor-db-migrator:[tag] test

原文:https://github.com/vmware/harbor/blob/master/docs/migration_guide.md

转载于:https://blog.51cto.com/dangzhiqiang/1962874

Harbor升级和数据库迁移手册相关推荐

  1. oracle mysql增量迁移_深入浅出XTTS:Oracle数据库迁移升级利器

    内容来源:2017年3月11日,新炬网络高级工程师杨光在"DBAplus北京数据库技术沙龙"进行<深入浅出XTTS:Oracle数据库迁移升级利器>演讲分享.IT 大咖 ...

  2. Gerrit 服务搭建和升级详解(包括 H2 数据库迁移 MySQL 步骤)

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  3. XTTS,又一个值得你重视的Oracle数据库迁移升级利器

    嘉宾简介 杨志洪 [DBA+社群]上海发起人 数据管理专家.Oracle ACE.OCM. SHOUG/ZJOUG核心成员.DAMA会员/CCF会员,译著<Oracle核心技术>. 在Or ...

  4. mysql数据库迁移方案_MySQL迁移升级解决方案

    原标题:MySQL迁移升级解决方案 任务背景 由于现有业务架构已不能满足当前业务需求,在保证数据完整的前提下,现需要将原有数据库迁移到另外一台单独的服务器上,在保证原有服务正常的情况下,将原有LAMP ...

  5. Android GreenDao3数据库升级,数据迁移

    GreenDao3,当我们进行数据库版本升级的时候,会默认删除删除所有的表,然后重新创建 WARNING已经提示我们了,如果我们需求是在升级数据库之后保存当前的所有数据,则需要对onUpgrade( ...

  6. 从0开始弄一个面向OC数据库(三)--数据库升级,数据迁移,删除数据

    前言 首先,在上一篇文章从0开始弄一个面向OC数据库(二),讲解了如何向数据库保存或更新一个模型.如何查询数据库里面的数据.其次,本篇要说的内容有: 数据库更新.数据迁移. 删除数据 使用场景: 随着 ...

  7. 不同库表数据库迁移工具_Microsoft提供的数据库迁移助手工具概述

    不同库表数据库迁移工具 This article gives the overview of the Database Migration Assistant Tool to access, plan ...

  8. 中煤集团公司硬件扩容与数据库迁移项目实施方案

    目    录 目录 1.     项目背景... 4 1.1.  更换电源和控制器... 4 1.2.  华为存储系统扩容... 4 1.3.  ORACLE数据库迁移和应用重指向... 4 1.4. ...

  9. 【原创翻译】从Mambo到Joomla! 的迁移手册【Joomla 文档】

    摘要: 本文讨论了如何从Mambo4.5.2迁移到 Joomla! 1.0 . Migrating to Joomla! from Mambo 标题: [原创翻译]从Mambo到 Joomla! 的迁 ...

最新文章

  1. 快速收录网站文章可以从这几步下手
  2. WPF 将Bitmapsource转换到Emgu.cv.image
  3. NTU 课程笔记 :NLP - language model
  4. sis防屏蔽程序是什么意思_Android 11将强制应用程序支持本地备份——什么意思?...
  5. 【Docker系列教程之一】docker入门
  6. 几种流行的JS框架的选择
  7. T-SQL像数组一样处理字符串、分割字符串,遍历数组
  8. 华为软件java笔试_华为软件笔试题4.10
  9. vs2010 设计视图中控件无法加载,提示未将对象设置到对象的实例。
  10. 服务器即将维护完成,新一轮大服务器即将开启:3月26日维护8小时
  11. Jmeter逻辑控制器操作,附栗子
  12. L2-028 秀恩爱分得快
  13. Webform(分页、组合查询)
  14. K8S集群Calico网络组件报错BIRD is not ready: BGP not established with
  15. VMware虚拟文件(.vmdk)瘦身(宿主为Windows)
  16. 【DAOS】Intel DAOS 分布式异步对象存储
  17. 太空探测器 java_宇宙究竟有多大?这个探测器或将告诉你答案
  18. 常用二十六大学术搜素引擎
  19. 清北学堂2019.8.8
  20. 旧服务器系统迁移移到虚拟机,服务器不关机进行虚拟机的迁移,vMotion 迁移

热门文章

  1. 判断两个链表是否相交,若相交,求交点。(假设链表可能带环)【升级版】(C语言)
  2. python可以构建sem模型_python-分组的熊猫DataFrames:如何将scipy.stats.sem应用于它们?...
  3. c# 修改xslt并转为html,c#使用XSLT将xml文档转换为html文档
  4. 2019年12月计算机统考答案,2019年12月计算机等级WPS考前冲刺练习题及答案
  5. oracle display set,Check if the DISPLAY variable is set
  6. jboss修改服务器端口,改了默认端口的jboss不能用shutdown.sh关闭,怎样解决
  7. java堆外内存溢出_JVM 案例 - 堆外内存导致的溢出错误
  8. python三引号解析_[宜配屋]听图阁
  9. 计算机网络通信中常用的检错码,4月全国高等教育自学考试计算机网络与通信试题及答案解析...
  10. opencv java 去干扰_java - OpenCV Java修补图像格式要求 - 堆栈内存溢出