• Nexus3 部署备份与恢复


    一、部署

    compose.yml

    version: '3.9'
    services:
      nexus:
        environment:
          INSTALL4J_ADD_VM_PARAMS: "-Xms6g -Xmx6g -XX:MaxDirectMemorySize=15530m "
        image: sonatype/nexus3:3.41.0
        container_name: nexus
        restart: always
        ports:
        - "8081:8081"
        volumes:
          - /data/appsData/nexus/:/nexus-data
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    二、配置

    1 配置 Maven 代理

    当您代理组件时,存储库管理器充当本地中间服务器,用于发送到远程存储库/注册表的任何下载请求。

    添加阿里云代理

    地址:http://maven.aliyun.com/nexus/content/groups/public
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    阿里云 Maven 代理地址:http://maven.aliyun.com/nexus/content/groups/public

    在这里插入图片描述

    调整仓库的使用顺序

    在这里插入图片描述
    在这里插入图片描述
    移动 aliyun-proxy 到 maven-central (maven 中央仓库)的上面
    在这里插入图片描述
    在这里插入图片描述

    最终本地 Java 项目中配置的仓库地址就是这里的公共仓库,地址在下图中的红色圆圈中
    在这里插入图片描述

    修改 setings.xml

    在自己本地的开发环境中(一般是开发人员自己平时使用的电脑),备份原来默认的 Maven 配置文件 ~/.m2/settings.xml

    修改 ~/.m2/settings.xml 文件内容为:

    <settings>
    <mirrors>
      <mirror>
      
      
      <id>nexus-id>
      <mirrorOf>*mirrorOf>
      
      <url>http://192.168.80.226:8081/repository/maven-public/url>
      mirror>
    mirrors>
    <servers>
      
      <server>
        
        <id>nexusid>
        <username>adminusername>
        <password>Passwordpassword>
      server>
    servers>
    <profiles>
      <profile>
      <id>nexusid>
      
      
      <repositories>
          <repository>
          <id>centralid>
          <url>http://centralurl>
          <releases><enabled>trueenabled>releases>
          <snapshots><enabled>trueenabled>snapshots>
          repository>
      repositories>
      <pluginRepositories>
          <pluginRepository>
          <id>centralid>
          <url>http://centralurl>
          <releases><enabled>trueenabled>releases>
          <snapshots><enabled>trueenabled>snapshots>
          pluginRepository>
      pluginRepositories>
      profile>
    profiles>
    <activeProfiles>
      
      <activeProfile>nexusactiveProfile>
    activeProfiles>
    settings>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    测试

    在JAVA项目的服务器上创建测试用的项目目录 java-pj,之后再在目录中创建含如下内容的 pom.xml 文件

    <project>
      <modelVersion>4.0.0modelVersion>
      <groupId>com.examplegroupId>
      <artifactId>nexus-proxyartifactId>
      <version>1.0-SNAPSHOTversion>
      <dependencies>
        <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.10version>
        dependency>
      dependencies>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    执行如下命令

    mvn package
    
    • 1

    输入预期效果如下图
    在这里插入图片描述
    构建成功:
    在这里插入图片描述

    验证

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2 配置 NPM 代理

    2.1 添加NPM官方代理

    在这里插入图片描述

    在这里插入图片描述
    添加如下字段对应的值

    Name: npm-proxy
    Remote Store URL: https://registry.npmjs.org/

    在这里插入图片描述
    在这里插入图片描述

    在项目所在的电脑的命令行执行如下命令

    npm config set registry http://Nexus3服务器IP:8081/repository/npm-proxy
    
    • 1

    http://Nexus3服务器IP:8081/repository/npm-proxy 具体内容可以参考如下方式获取

    在这里插入图片描述
    在这里插入图片描述

    2.2 添加NPM淘宝代理

    地址: https://registry.npm.taobao.org
    在这里插入图片描述

    在这里插入图片描述

    在本地项目服务器的命令行中输入如下配置 npm

    在这里插入图片描述

    npm config set registry http://192.168.80.226:8081/repository/aliyun-npm/
    
    • 1

    在项目的服务器上,创建目录 test,并在 test 目录下创建 package.json 文件,并用如下内容填充文件

    {
    "name": "sample_project1",
    "version": "0.0.1",
    "description": "Test Project 1",
    "dependencies" : {
      "commonjs" : "0.0.1"
    }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    运行如下命令测试

    npm install
    
    • 1

    出现如下内容,表示成功

    在这里插入图片描述
    ### 浏览本地仓库组建

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    三、备份

    设置备份(数据库)

    在这里插入图片描述
    在这里插入图片描述

    需要备份的目录文件

    Nexus Repository 将数据存储在 blob 存储中,并将一些 metadata 和配置信息分别保存在数据库中。必须同时备份 Blob 存储和元数据数据库。备份策略应涉及将数据库和 Blob 存储一起备份到新位置,以保持数据不变。完成以下步骤以执行备份

    1 Blob 存储备份

    对于文件 Blob 存储,请备份存储 Blob 的目录。

    • 对于典型配置,这将是 。$data-dir/blobs

    这个可以通过 Tasks 实现

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2 节点 ID 备份

    每个 Nexus 存储库实例都与一个不同的 ID 相关联。必须备份此 ID,以便 Blob 存储指标(磁盘上 Blob 的大小和计数)和 Nexus 防火墙报告在还原时正常运行。要备份以保留节点 ID 的文件位于以下位置:

    $data-dir/keystores/node/​
    
    • 1

    这个使用操作系统的计划任务实现即可.

    0 0  *  *  *  rsync -raP $data-dir/keystores/node/​    --rsh=ssh root@远程服务器IP:/path/to/backup
    
    • 1

    四、恢复

    在恢复组件数据库时,还必须恢复包含组件的相应blob存储。不这样做将导致blobstore和数据库之间的同步问题。

    ## 恢复的步骤:

    1. 停止 Nexus
    2. $data-dir/db 中删除以下目录
      • component
      • config
      • security
    3. 转到存储备份数据库文件的位置
    4. 将相应的数据库备份文件复制到 $data-dir/restore-from-backup 以进行恢复
    5. 还原对应于数据库备份的blob存储备份(时间上要一致)
    6. 重新启动 Nexus 存储库
    7. 验证 Nexus 存储库是否正常运行
    8. 从目录 restore-from-backup 中删除备份文件

    提示

    如果blob存储和数据库备份不是在同一时刻进行的,则在还原后可能会失去同步。
    要解决此问题

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    TiDB v6.0.0 (DMR) :缓存表初试丨TiDB Book Rush
    spring framework 5.2文档 - 控制反转 IoC 容器
    内核概述及配置编译
    【云原生之Docker实战】使用Docker部署ROS软路由系统
    【allegro 17.4软件操作保姆级教程八】布线操作基础之三
    Python快速刷题网站——牛客网 数据分析篇(十五)
    为什么要学习Flink系统管理及优化课程?
    C语言结构体
    Netty RPC 实现
    部署jar包windows服务工具
  • 原文地址:https://blog.csdn.net/qq_22648091/article/details/126342882