Skip to main content
NetApp Backup and Recovery
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

在 NetApp Backup and Recovery 中发现 Oracle 数据库工作负载

贡献者 netapp-mwallis

在 NetApp Backup and Recovery 中发现 Oracle 数据库工作负载,以便使用备份和快照保护它们。

*必需的 NetApp Console 角色*备份和恢复超级管理员。了解"备份和恢复角色和权限""了解所有服务的NetApp Console访问角色"

在 NetApp Console 本地部署中为气隙主机发现配置 DNS

如果要在无法通过标准 DNS 访问数据库主机的空气隔离环境中使用 NetApp Console 本地部署,则需要临时修改内部 RKE2 CoreDNS 配置。这使 Pod 能够将特定主机名解析为集群中的 IP 地址,类似于在节点上向 `/etc/hosts`添加条目。

重要说明 在进行更改之前,请检查现有的 CoreDNS 配置和现有的 rke2-coredns-config.yaml HelmChartConfig,以避免覆盖任何现有的自定义配置。在大多数 NetApp Console 本地部署节点上,此文件已存在并已包含资源请求。如果文件已存在,请勿重新创建;而是仅将 `servers:`块附加到现有的 `valuesContent`中。请使用 RKE2 清单应用此更改,以便 RKE2 操作员和运行时继续对其进行统一管理。
开始之前
  • 在可能的情况下,将 HelmChartConfig 文件置于变更控制之下。

  • 使用清晰的文件名,以便 CoreDNS 覆盖的目的显而易见。

  • 如果预期的 DNS 记录在 Corefile 中不可见,请检查 RKE2 服务器日志并确认清单文件语法。

步骤
  1. 检查现有 CoreDNS 配置,以确保未覆盖现有更改:

    kubectl -n kube-system get cm rke2-coredns-rke2-coredns -o jsonpath='{.data.Corefile}'
  2. 确认 HelmChartConfig 文件是否存在:

    sudo cat /var/lib/rancher/rke2/server/manifests/rke2-coredns-config.yaml
    如果文件存在
    1. 运行以下脚本,将 servers: 块追加到现有 HelmChartConfig 文件:

      MANIFEST=/var/lib/rancher/rke2/server/manifests/rke2-coredns-config.yaml
      
      # 1. Back up first
      sudo cp -a "$MANIFEST" "$MANIFEST.bak.$(date +%Y%m%d-%H%M%S)"
      
      # 2. Safety checks: valuesContent must be the last key, no servers: block yet
      grep -n 'servers:' "$MANIFEST"        # must return nothing
      tail -c 1 "$MANIFEST" | od -c | head  # file must end with a newline
      
      # 3. Append ONLY the servers block (nothing above it changes)
      sudo tee -a "$MANIFEST" >/dev/null <<'YAML'
          servers:
          - zones:
            - zone: .
            port: 53
            plugins:
            - name: errors
            - name: health
              configBlock: |-
                lameduck 10s
            - name: ready
            - name: kubernetes
              parameters: cluster.local in-addr.arpa ip6.arpa
              configBlock: |-
                pods insecure
                fallthrough in-addr.arpa ip6.arpa
                ttl 30
            # ───────────────────────── EDIT BELOW ─────────────────────────
            # Static DNS records for hosts the corporate DNS cannot resolve.
            # Format:  <IP>  <FQDN>  [optional aliases...]
            # `fallthrough` MUST stay as the last line -- it lets every other
            # name go to the upstream resolver via the `forward` plugin below.
            - name: hosts
              configBlock: |-
                1.2.3.4 example.domain.com exampleshortname
                fallthrough
            # ───────────────────────── EDIT ABOVE ─────────────────────────
            - name: prometheus
              parameters: 0.0.0.0:9153
            - name: forward
              parameters: . /etc/resolv.conf
            - name: cache
              parameters: 30
            - name: loop
            - name: reload
            - name: loadbalance
      YAML
      
      # 4. Confirm the merged result
      sudo cat "$MANIFEST"
    2. 验证 HelmChartConfig 文件的唯一更改是否是添加了 `servers:`块。

    如果文件不存在
    1. 编辑以下脚本的 `configBlock`区域并添加静态 DNS 记录。这将在 RKE2 清单文件夹中创建一个 HelmChartConfig YAML 文件,RKE2 会自动应用该文件以覆盖 CoreDNS 配置:

      sudo tee /var/lib/rancher/rke2/server/manifests/rke2-coredns-config.yaml >/dev/null <<'YAML'
      apiVersion: helm.cattle.io/v1
      kind: HelmChartConfig
      metadata:
        name: rke2-coredns
        namespace: kube-system
      spec:
        # NOTE: This is a HelmChartConfig that *overlays* values onto the rke2-coredns
        # HelmChart already managed by RKE2. RKE2 watches /var/lib/rancher/rke2/server/manifests
        # and will re-render the rke2-coredns Helm release whenever this file changes.
        #
        # The `servers:` list below REPLACES the chart's default server definition,
        # so every plugin that was in the stock Corefile must be present here.
        # Do NOT delete plugins you don't recognize -- they are required for cluster DNS.
        valuesContent: |-
          servers:
          - zones:
            - zone: .
            port: 53
            plugins:
            - name: errors
            - name: health
              configBlock: |-
                lameduck 10s
            - name: ready
            - name: kubernetes
              parameters: cluster.local in-addr.arpa ip6.arpa
              configBlock: |-
                pods insecure
                fallthrough in-addr.arpa ip6.arpa
                ttl 30
            # ───────────────────────── EDIT BELOW ─────────────────────────
            # Static DNS records for hosts the corporate DNS cannot resolve.
            # Format:  <IP>  <FQDN>  [optional aliases...]
            # `fallthrough` MUST stay as the last line -- it lets every other
            # name go to the upstream resolver via the `forward` plugin below.
            - name: hosts
              configBlock: |-
                1.2.3.4 example.domain.com exampleshortname
                fallthrough
            # ───────────────────────── EDIT ABOVE ─────────────────────────
            - name: prometheus
              parameters: 0.0.0.0:9153
            - name: forward
              parameters: . /etc/resolv.conf
            - name: cache
              parameters: 30
            - name: loop
            - name: reload
            - name: loadbalance
      YAML
      sudo chmod 600 /var/lib/rancher/rke2/server/manifests/rke2-coredns-config.yaml
    2. 复制并运行脚本。

  3. 验证 CoreDNS 是否已接受更改:

    kubectl -n kube-system get cm rke2-coredns-rke2-coredns -o jsonpath='{.data.Corefile}'

    如果几分钟后无法看到更改,请重新启动 CoreDNS 部署,然后再次验证 Corefile:

    kubectl -n kube-system rollout restart deploy/rke2-coredns-rke2-coredns
  4. 如果需要在发现数据库主机后删除条目,请执行以下操作:

    如果附加到现有文件
    1. 还原已备份的文件或仅从文件中删除 `servers:`块:

      sudo cp -a /var/lib/rancher/rke2/server/manifests/rke2-coredns-config.yaml.bak.<timestamp> \
      /var/lib/rancher/rke2/server/manifests/rke2-coredns-config.yaml

      请勿删除此文件,因为它包含现有的 RKE2 资源优化。

    2. 还原文件后,删除主机条目。过时的条目可能会导致主机发现和定时备份问题。

    3. 重新启动 CoreDNS 部署:

      kubectl -n kube-system rollout restart deploy/rke2-coredns-rke2-coredns
    如果创建了新文件
    1. 从清单文件夹中删除 HelmChartConfig 文件:

      sudo rm /var/lib/rancher/rke2/server/manifests/rke2-coredns-config.yaml
    2. 删除文件后,删除主机条目。过时的条目可能会导致主机发现和定时备份问题。

    3. 重新启动 CoreDNS 部署:

      kubectl -n kube-system rollout restart deploy/rke2-coredns-rke2-coredns

添加 Oracle 数据库主机并发现资源

添加 Oracle 数据库主机信息,让 NetApp Backup and Recovery 发现工作负载。对于每个 Console 代理,选择要发现的系统。

步骤
  1. 在 NetApp Console 菜单中,选择*保护* > 备份和恢复

  2. 在“工作负载”下,选择“Oracle”磁贴。

  3. 选择*发现资源*。

  4. Workload type 字段选择 Oracle

  5. 如果您尚未为此 Oracle 数据库主机存储凭据,请选择 添加凭据

    1. 选择与该主机一起使用的控制台代理。

    2. 输入此凭证的名称。

    3. 输入该帐户的用户名和密码。

    4. 选择*完成*。

  6. 主机注册:添加新的 Oracle 数据库主机。在*主机 FQDN 或 IP 地址*字段中,输入主机的 FQDN 或 IP 地址。对于集群数据库,您可以输入集群中任何节点的 FQDN 或 IP 地址。然后提供凭据、Console 代理和端口号。

  7. (可选)如果为非 root 用户选择凭据,请执行以下操作:

    1. 有关将所选非 root 用户添加到 Oracle 数据库主机上的 sudoers 文件的说明,请选择 Configure sudoers

    2. 按照对话框中的说明进行操作,完成后启用复选框,然后选择 Done

  8. 高级设置:执行以下操作:

    1. 输入要用于 NetApp 插件的端口和安装路径。该插件支持 Oracle 数据库主机与 NetApp Backup and Recovery 之间的通信。

    2. 选择是允许 NetApp Backup and Recovery 在每台主机上自动安装插件,还是跳过所有主机的自动插件安装。选择 Show me how 进行手动安装说明。

      备注

      NetApp Backup and Recovery 通过 SSH 连接到每个主机以自动安装插件。当以下任一情况适用时,启用*使用手动安装*:

      • 一个或多个主机未运行 SSH 服务。

      • 任何主机都已具有 NetApp 插件(包括仅部分群集成员具有该插件)。

      • 您希望在每台主机上手动安装此插件。

    3. 如果数据库主机是集群的,请启用 添加集群中的所有主机 选项以发现集群中的所有主机。

    4. 选择是否在每台主机上运行安装前检查,然后再自动安装插件。如果检查失败,自动插件安装将停止。要绕过检查并进行安装,请启用 跳过可选的预安装检查(如果您选择手动安装,则会自动启用)。

  9. 选择*发现*。

    提示 添加资源可能需要几分钟的时间。要查看进度,请在库存页面底部的状态对话框中选择 Track progress,或从左侧导航栏中选择 Monitoring
结果

Oracle 数据库工作负载显示在"清单"页面的工作负载列表中。

继续访问NetApp Backup and Recovery仪表板

  1. 在 NetApp Console 菜单中,选择*保护* > 备份和恢复

  2. 选择一个工作负载磁贴(例如,Oracle 数据库)。

  3. 从备份和恢复菜单中,选择*仪表板*。

  4. 查看数据保护的运行状况。根据新发现、受保护和备份的工作负载,高风险或受保护工作负载的数量会增加。