数据库备份常见问题

本文为您介绍云备份使用中数据库备份常见的问题以及对应的解决办法。

MySQL数据库实例状态显示为未激活,如何处理?

image.png

  • 您注册数据库时输入的数据库用户名不正确、权限不足或者密码错误,确认用户名和密码正确后,请为该备份账号添加足够的权限。建议您创建专门用于备份的用户。

    该用户所具备的最小权限集为RELOAD、LOCK TABLES、REPLICATION、PROCESS。

  • 您可以执行systemctl status dbackup3-agent查看备份客户端的进程状态。其中active表示客户端运行正常。

    ● dbackup3-agent.service - dbackup3 agent daemon
       Loaded: loaded (/usr/lib/systemd/system/dbackup3-agent.service; enabled; vendor preset: disabled)
       Active: active (running) since Mon 2023-12-11 13:47:34 CST; 1min 13s ago
     Main PID: 22192 (dbackup3-agent)
       CGroup: /system.slice/dbackup3-agent.service
               └─22192 /opt/scutech/dbackup3/bin/dbackup3-agent -f /etc/opt/scutech/dbackup3/agent/svc.conf.d
    
    Dec 11 13:47:34 iZbp1******gktZ systemd[1]: Started dbackup3 agent daemon.
  • 客户端日志路径位于:/var/log/dbackup3/agent.log

MySQL数据库实例状态显示为数据库离线,如何处理?

image.png

请登录ECS实例,使用systemctl status mysqld命令查询MySQL数据库状态,发现其进程为inactive状态。MySQL数据库服务未启动。

执行systemctl start mysqld命令重启MySQL服务后,控制台上数据库实例状态显示为在线

如何查看数据库备份客户端的进程状态、日志路径?

  • 对于Linux系统:

    您可以执行systemctl status dbackup3-agent查看数据库备份客户端的进程状态。其中active表示客户端运行正常。

    ● dbackup3-agent.service - dbackup3 agent daemon
       Loaded: loaded (/usr/lib/systemd/system/dbackup3-agent.service; enabled; vendor preset: disabled)
       Active: active (running) since Mon 2023-12-11 13:47:34 CST; 1min 13s ago
     Main PID: 22192 (dbackup3-agent)
       CGroup: /system.slice/dbackup3-agent.service
               └─22192 /opt/scutech/dbackup3/bin/dbackup3-agent -f /etc/opt/scutech/dbackup3/agent/svc.conf.d
    
    Dec 11 13:47:34 iZbp1******gktZ systemd[1]: Started dbackup3 agent daemon.

    客户端日志路径位于:/var/log/dbackup3/agent.log

  • 对于Windows系统:

    1. 按下Win + R键打开“运行”对话框。

    2. 输入services.msc并按回车键,打开服务管理界面。

    3. 在服务列表中找到dbackup3-agent服务。

    4. 检查该服务的状态是否为“正在运行”。如果状态不是“正在运行”,则右键单击dbackup3-agent服务,并选择“重新启动”来启动它。

    客户端日志路径位于:C:\ProgramData\scutech\dbackup3\agent\log\dbackup3-agent.log

在控制台,MySQL数据库实例状态显示为未知,如何处理?

image.png

请登录安装数据库备份客户端的服务器,使用systemctl status dbackup3-agent命令查询后,发现其进程为inactive状态。客户端进程未启动。

执行systemctl start dbackup3-agent命令重启客户端进程后,控制台上数据库实例状态显示为在线

支持备份的MySQL数据库版本、操作系统是否有限制?

支持的数据库版本、操作系统和备份功能有限制,例如不支持部署在Windows中的MySQL数据库。更多信息,请参见兼容系统列表和使用限制

数据库备份库的过期数据清理机制是怎样的?

增量备份、累计增量备份和日志备份依赖完整的前序备份链,包括前序的全量备份以及增量备份、累计增量备份、日志备份。在包含全量+增量、累计增量、日志备份的备份链中,最后一个备份过期前,完整备份链依赖的备份都会保留在备份库中,占用备份空间。请合理配置备份周期和过期时间。

例如,您9月1号做了全量备份,2号到7号每天做了一次增量,备份保留时间为7天。那么9月1号到7号的7次备份数据,会等到9月14号数据全部过期后,才会自动删除。

如何查看数据库备份数据量和备份库使用量?计费依据是哪个?

备份数据量代表备份任务累计的数据量,比如1TB文件备份两次后,云备份会保存两份独立数据拷贝,此数值就计为2TB。云备份使用重删压缩技术缩减备份库使用量,为您节省费用。实际占用的备份库使用量是计费的依据。您可以在控制台概览页面,查看存储库备份数据量和备份库使用量。image.png

如何取消数据库备份?

如何取消MySQL数据库备份?

准确而完整地取消数据库备份后,不会产生额外费用和占用资源。

重要

取消数据库备份,您的备份数据会被删除,已备份数据无法恢复,请谨慎评估后操作。

  1. 删除备份计划。

  2. 注销实例。ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。

  3. 如果是本地服务器安装的MySQL数据库,请登录本地服务,卸载客户端。

    • Linux:

      • CentOS

        sudo rpm --erase "dbackup3-agent-mysql"
        sudo rpm --erase "dbackup3-agent"
        sudo rpm --erase "dbackup3-common"
      • Ubuntu

        sudo dpkg -r "dbackup3-agent-mysql" "dbackup3-agent" "dbackup3-common"
  4. 清理配置文件。

    • Linux:

      rm -rf /etc/default/dbackup3*
      rm -rf /opt/scutech
      rm -rf /var/opt/scutech/
      rm -rf /var/log/dbackup3/
      rm -rf /etc/opt/scutech/
  5. 删除备份库。

    在左侧导航栏,选择存储库管理,找到对应备份库,删除。

如何取消Oracle数据库备份?

准确而完整地取消数据库备份后,不会产生额外费用和占用资源。

重要

取消数据库备份,您的备份数据会被删除,已备份数据无法恢复,请谨慎评估后操作。

  1. 删除备份计划。

  2. 注销实例。ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。

  3. 如果是本地服务器安装的Oracle数据库,请登录本地服务,卸载客户端。

    • Windows:

      1. 进入备份客户端安装目录(PowerShell)。例如C:\Program Files\aliyun\unibackup>

      2. 执行命令。

         .\uninstall-unibackup.exe /S /NCRC
    • Linux:

      • CentOS

        sudo rpm --erase "dbackup3-agent-oracle"
        sudo rpm --erase "dbackup3-agent"
        sudo rpm --erase "dbackup3-common"
      • Ubuntu

        sudo dpkg -r "dbackup3-agent-oracle" "dbackup3-agent" "dbackup3-common"
  4. 清理配置文件。

    • Windows:

      删除位于c:\programdata\scutech下的所有配置文件。

    • Linux:

      rm -rf /etc/default/dbackup3*
      rm -rf /opt/scutech
      rm -rf /var/opt/scutech/
      rm -rf /var/log/dbackup3/
      rm -rf /etc/opt/scutech/
  5. 删除备份库。

    在左侧导航栏,单击存储库管理,找到对应备份库,删除。

如何取消SQL Server数据库备份?

准确而完整地取消数据库备份后,不会产生额外费用和占用资源。

重要

取消数据库备份,您的备份数据会被删除,已备份数据无法恢复,请谨慎评估后操作。

  1. 删除备份计划。

  2. 注销实例。ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。

  3. 如果是本地服务器安装的SQL Server数据库,请登录本地服务,卸载客户端。

    • Windows:

      1. 请进入备份客户端安装目录(PowerShell)。例如C:\Program Files\aliyun\unibackup>

      2. 执行uninstall-unibackup.exe命令,按照向导完成卸载。

  4. 删除位于c:\programdata\scutech下的所有配置文件。

  5. 删除备份库。

    在左侧导航栏,单击存储库管理,找到对应备份库,删除。

在MySQL中新创建了一个数据库,如何备份这个新库?

MySQL备份按照数据库实例进行备份,新增数据库不需要您手动设置,下次备份会自动备份新增库。

数据备份失败怎么办?

MySQL数据库备份失败如何处理?

执行历史中发现状态为错误image.png

建议您按照以下步骤处理:

  1. 登录ECS实例或者本地服务器,查看MySQL服务状态。参考命令为systemctl status mysqld,正常的服务状态为active,inactive为不正常状态。若为inactive,建议重启后尝试。

  2. 确认数据库用户名和密码、及其权限配置是正确的。密码过期、用户权限变更后权限不足,也会导致此问题。

    您注册数据库时输入的数据库用户名不正确、权限不足或者密码错误,确认用户名和密码正确后,请为该备份账号添加足够的权限。建议您创建专门用于备份的用户。

    该用户所具备的最小权限集为RELOAD、LOCK TABLES、REPLICATION、PROCESS。

SQL Server数据库备份失败如何处理?

使用云备份备份SQL Server时,备份失败。建议您按照以下步骤处理:

  1. 登录服务器,查看备份日志。

    • Linux客户端日志路径位于:/var/log/dbackup3/agent.log

    • Windows客户端日志路径位于:C:\ProgramData\scutech\dbackup3\agent\log\dbackup3-agent.log

  2. 在日志中,查看失败任务发生时间附近的日志,备份日志中出现以下报错提示,请参考以下方案进行处理。

    • 报错:该登录名没有足够的权限。

      问题分析:SQL Server备份用户权限不足。

      解决方案:请检查备份账号及权限。具体操作,请参见步骤二:创建备份账号和配置权限

    • 报错:用户 'xxx' 登录失败。

      问题分析:SQL Server备份用户的密码已过期 (Error Code: 18487, SQL State: 28000)。

      解决方案:在SQL Server中修改备份用户的密码,然后登录云备份控制台,在对应数据库的操作列,选择更多>重新激活

      image

    • 报错:无法覆盖文件。

      问题分析:SQL Server数据库恢复路径被其他数据库占用。

      解决方案:新建恢复任务,按指定备份恢复时,双击修改恢复路径。

      image

    • 报错:目标SQL Server数据库不存在。请确保正确地输入该名称。

      问题分析:目标SQL Server数据库不存在。

      解决方案:请确认目标数据库是否存在。如果数据库已经不存在,请编辑备份计划,移除对应数据库。

    • 报错:因为该数据库参与了数据库镜像会话或可用性组。某些操作不允许对正在参与数据库镜像会话或可用性组的数据库执行。

      问题分析:SQL Server数据库启用了SQL Server AlwaysOn。

      解决方案:目标实例没有绑定AlwaysOn集群,要选择对应的集群。

    • 报错:因为该数据库已配置用于数据库镜像或已连接到某一可用性组。如果想要还原该数据库,请使用ALTER DATABASE删除镜像或从其可用性组中删除该数据库。

      问题分析:SQL Server数据库启用了SQL Server AlwaysOn。

      解决方案:目标实例没有绑定AlwaysOn集群,要选择对应的集群。

Oracle数据库实例状态显示为未知,如何处理?

image.png

  1. 请确认ECS服务器为运行中,并且Oracle服务是正常的。image.png

  2. 登录安装数据库备份客户端的服务器,使用systemctl status dbackup3-agent命令查询后,发现其进程为inactive状态。客户端进程未启动。

  3. 执行systemctl start dbackup3-agent命令重启客户端进程后,控制台上数据库实例状态显示为在线

什么是数据库备份库

在创建数据库备份计划前,您必须创建数据库备份库。

数据库备份库,即为保存您数据库备份数据的存储容量库。数据库备份的费用由仓库租用费、存储库容量共同决定。更多信息,请参见计费方式与计费项

备份报错The difference between the request time and the current time is too large

问题分析:本地安装备份客户端的服务器时间与云备份备份后台服务器时间相差15分钟以上。

解决方案:建议检查本地服务器时间(时区)及NTP配置。若存在问题,请修改后重启备份客户端。

备份SQL Server 2019时出现浏览数据库详情失败如何处理?

问题分析:当备份SQL Server 2019时,如果有其他备份软件或脚本同时进行备份操作,那么在创建或编辑备份计划,并且选择数据库实例时,可能会出现浏览数据库详情失败的情况。

image

解决方案:

  1. 在SQL Server数据库中查询有多少数据库和备份集。

    select count(database_id) from master.sys.databases
    select count(backup_set_id) from msdb.dbo.backupset
  2. 删除 msdb.dbo.backupset 中的备份记录。

    重要

    删除备份记录会对您造成影响,如果您有自己的备份,会导致备份记录被清除,并且不能按照正常流程来恢复这些记录。但是这不会影响到您的数据备份,因为在下一次备份的时候,它会自动转换为全量备份。需要注意的是,在备份SQL Server 2019时不支持与其他备份软件或脚本同时使用。

    use msdb;
    exec sp_delete_backuphistory @oldest_date = '04/10/2024' ---保留4/10,4/9之前都删,您需要确认保留时间

在控制台,SQL Server数据库实例状态显示为未激活,如何处理?

image.png

  1. 您注册数据库时输入的数据库用户名不正确、权限不足或者密码错误。请确认用户名和密码正确后,为该备份账号添加足够的权限。建议您创建专门用于备份的用户,然后重试。

    请参见备份SQL Server准备工作页面的操作步骤,创建SQL Server备份账号和配置权限。具体操作,请参见步骤二:创建备份账号和配置权限步骤三:配置网络

  2. 重启dbackup3-agent服务。

    1. 按下Win + R键打开“运行”对话框。

    2. 输入services.msc并按回车键,打开服务管理界面。

    3. 在服务列表中找到dbackup3-agent服务。

    4. 检查该服务的状态是否为“正在运行”。如果状态不是“正在运行”,则右键单击dbackup3-agent服务,并选择“重新启动”来启动它。

  3. 重启服务后如果仍然未能激活,建议收集相关日志以便进行进一步的分析,客户端日志路径位于:本地磁盘(C)> ProgramData > scutech > dbackup3 > agent > log > dbackup3-agent.log

如何更换数据库备份使用的用户名和密码?

在备份整个过程中,可以通过重新激活来更换备份使用的用户名和密码,例如密码过期。重新激活,对现有的备份计划没有影响,无需改变备份计划。但是对正在执行中的备份任务有影响。建议:

  1. 备份计划页签先暂停(如有)实时日志备份;

  2. 在对应数据库的操作列,选择更多>重新激活

备份本地SQL Server数据库安装备份客户端报错Failed to run install script:exit status 4如何处理?

计算机本地安全设置策略项(用于内置管理员账户的管理员批准模式)未启用,该策略状态必须为已启用

  1. Win+R打开运行命令,输入gpedit.msc,运行本地组策略编辑器。

  2. 在本地组策略编辑器面板,依次选择计算机配置 > Windows设置 > 安全设置 > 本地策略 > 安全选项,在右侧找到用户账号控制:用于内置管理员账户的管理员批准模式,将该策略状态修改为已启用

注册数据库实例后,ECS数据库实例页签出现多条数据库实例,是为什么?

如果一台ECS上部署了多个数据库实例,云备份控制台会在注册环节将其全部扫描并展示出来。

image

为什么收到告警的时间和实际错误发生时间不一致?

短信告警设置了夜间抑制功能,将晚上8点至次日早上8点期间触发的告警延迟至早上8点之后发送;而邮件告警则不受此限制,会即时发送。

为什么备份历史中有一些重复的,或者非预期时间执行的记录?

这种情况通常是在安装了数据库备份客户端的服务器(本地服务器或ECS)被克隆时发生,或使用包含同一备份客户端的镜像创建新的ECS或本地服务器时发生的。由于克隆后的服务器保留了原服务器上客户端的部分信息,因此可能会生成重复的备份记录。为了解决这一问题,您只需要登录到克隆后的服务器,并执行卸载操作即可。关于如何卸载备份客户端,请参照以下步骤:

卸载MySQL备份客户端

ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。如果是本地服务器安装的MySQL数据库,请按如下方式卸载客户端:

  1. 卸载客户端。

    Linux:

    • CentOS

      sudo rpm --erase "dbackup3-agent-mysql"
      sudo rpm --erase "dbackup3-agent"
      sudo rpm --erase "dbackup3-common"
    • Ubuntu

      sudo dpkg -r "dbackup3-agent-mysql" "dbackup3-agent" "dbackup3-common"
  2. 清理配置文件。

    Linux:

    rm -rf /etc/default/dbackup3*
    rm -rf /opt/scutech
    rm -rf /var/opt/scutech/
    rm -rf /var/log/dbackup3/
    rm -rf /etc/opt/scutech/

卸载Oracle备份客户端

ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。如果是本地服务器安装的Oracle数据库,请按如下方式卸载客户端:

  1. 卸载客户端。

    • Windows:

      1. 进入备份客户端安装目录(PowerShell)。例如C:\Program Files\aliyun\unibackup>

      2. 执行命令。

         .\uninstall-unibackup.exe /S /NCRC
    • Linux:

      • CentOS

        sudo rpm --erase "dbackup3-agent-oracle"
        sudo rpm --erase "dbackup3-agent"
        sudo rpm --erase "dbackup3-common"
      • Ubuntu

        sudo dpkg -r "dbackup3-agent-oracle" "dbackup3-agent" "dbackup3-common"
  2. 清理配置文件。

    • Windows:

      删除位于c:\programdata\scutech下的所有配置文件。

    • Linux:

      rm -rf /etc/default/dbackup3*
      rm -rf /opt/scutech
      rm -rf /var/opt/scutech/
      rm -rf /var/log/dbackup3/
      rm -rf /etc/opt/scutech/

卸载SQL Server备份客户端

ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。如果是本地服务器安装的SQL Server数据库,请按如下方式卸载客户端:

  1. 卸载客户端。

    • Windows:

      1. 请进入备份客户端安装目录(PowerShell)。例如C:\Program Files\aliyun\unibackup>

      2. 执行uninstall-unibackup.exe命令,按照向导完成卸载。

  2. 清理配置文件。

    • Windows:

      删除位于c:\programdata\scutech下的所有配置文件。

为什么收到告警失败的邮件或短信,但是查看备份历史发现同一时间会有备份成功和备份失败的两条记录?

这种情况通常是在安装了数据库备份客户端的服务器(本地服务器或ECS)被克隆时发生,或使用包含同一备份客户端的镜像创建新的ECS或本地服务器时发生的。由于克隆后的服务器保留了原服务器上客户端的部分信息,因此可能会生成重复的备份记录。为了解决这一问题,您只需要登录到克隆后的服务器,并执行卸载操作即可。关于如何卸载备份客户端,请参照以下步骤:

卸载MySQL备份客户端

ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。如果是本地服务器安装的MySQL数据库,请按如下方式卸载客户端:

  1. 卸载客户端。

    Linux:

    • CentOS

      sudo rpm --erase "dbackup3-agent-mysql"
      sudo rpm --erase "dbackup3-agent"
      sudo rpm --erase "dbackup3-common"
    • Ubuntu

      sudo dpkg -r "dbackup3-agent-mysql" "dbackup3-agent" "dbackup3-common"
  2. 清理配置文件。

    Linux:

    rm -rf /etc/default/dbackup3*
    rm -rf /opt/scutech
    rm -rf /var/opt/scutech/
    rm -rf /var/log/dbackup3/
    rm -rf /etc/opt/scutech/

卸载Oracle备份客户端

ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。如果是本地服务器安装的Oracle数据库,请按如下方式卸载客户端:

  1. 卸载客户端。

    • Windows:

      1. 进入备份客户端安装目录(PowerShell)。例如C:\Program Files\aliyun\unibackup>

      2. 执行命令。

         .\uninstall-unibackup.exe /S /NCRC
    • Linux:

      • CentOS

        sudo rpm --erase "dbackup3-agent-oracle"
        sudo rpm --erase "dbackup3-agent"
        sudo rpm --erase "dbackup3-common"
      • Ubuntu

        sudo dpkg -r "dbackup3-agent-oracle" "dbackup3-agent" "dbackup3-common"
  2. 清理配置文件。

    • Windows:

      删除位于c:\programdata\scutech下的所有配置文件。

    • Linux:

      rm -rf /etc/default/dbackup3*
      rm -rf /opt/scutech
      rm -rf /var/opt/scutech/
      rm -rf /var/log/dbackup3/
      rm -rf /etc/opt/scutech/

卸载SQL Server备份客户端

ECS实例数据库在注销实例时,会自动卸载已安装的备份客户端。如果是本地服务器安装的SQL Server数据库,请按如下方式卸载客户端:

  1. 卸载客户端。

    • Windows:

      1. 请进入备份客户端安装目录(PowerShell)。例如C:\Program Files\aliyun\unibackup>

      2. 执行uninstall-unibackup.exe命令,按照向导完成卸载。

  2. 清理配置文件。

    • Windows:

      删除位于c:\programdata\scutech下的所有配置文件。

为什么备份失败且备份计划的状态显示为“错误”?

image

如果遇到备份计划状态显示为“错误”且备份失败的情况,请您首先检查安装了客户端的服务器(本地服务器或ECS)是否执行过镜像克隆、重新安装操作系统或重置系统盘等操作。这些操作可能会导致备份计划与客户端之间的关联失效。为了解决这一问题,请参照以下步骤:

  1. 确保已经卸载了克隆服务器上的客户端及其配置文件。具体操作,请参见卸载客户端

  2. 确保当前服务器上的客户端状态为已安装。

    image

  3. 在完成上述步骤后,通过控制台删除原有的备份计划,并创建一个新的备份计划。

为什么数据库备份注册实例失败?

请先确认当前服务器(本地服务器或ECS)上是否已安装过数据库备份客户端。如果已安装,请参照卸载客户端,卸载数据库备份客户端并清理相关配置文件,然后重新尝试注册实例。

本地数据库备份如何免费试用?

本地数据库备份与ECS数据库备份的免费试用方式是相同的。免费试用详情,请参考30天免费试用说明

实时备份的最小间隔是多少?可以和增量备份同时配置吗?

实时备份理论上可以达到秒级的RPO,目前主要支持MySQL和Oracle数据库。启用实时备份后,虽然不能再单独配置传统的日志备份,但仍然可以与增量备份结合使用,以进一步增强数据保护策略。

本地数据库备份对网络的要求是什么样子的?

本地数据库服务器的网络已经通过专线或者VPN和阿里云专有网络(VPC)及路由(线下到云上100.64.0.0/10或100.64.0.0/11、100.96.0.0/11)互通。