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

还原 SQL Server 数据库备份

您可以使用SnapCenter来恢复备份的 SQL Server 数据库。数据库恢复是一个多阶段过程,将所有数据和日志页从指定的 SQL Server 备份复制到指定的数据库。

关于此任务
  • 您可以将备份的 SQL Server 数据库还原到创建备份的同一主机上的不同 SQL Server 实例。

    您可以使用SnapCenter将备份的 SQL Server 数据库还原到备用路径,这样就不会替换生产版本。

  • SnapCenter可以在不使 SQL Server 集群组脱机的情况下恢复 Windows 集群中的数据库。

  • 如果在还原操作期间发生群集故障(群集组移动操作)(例如,如果拥有资源的节点发生故障),则必须重新连接到 SQL Server 实例,然后重新启动还原操作。

  • 当用户或 SQL Server 代理作业正在访问数据库时,您无法还原数据库。

  • 您无法将系统数据库还原到备用路径。

  • SCRIPTS_PATH 是使用插件主机的 SMCoreServiceHost.exe.Config 文件中的 PredefinedWindowsScriptsDirectory 键定义的。

    如果需要,您可以更改此路径并重新启动 SMcore 服务。为了安全起见,建议您使用默认路径。

    可以通过 API 从 Swagger 显示该键的值:API /4.7/configsettings

    您可以使用 GET API 来显示键的值。不支持 SET API。

  • 恢复向导页面上的大多数字段都是不言自明的。以下信息描述了您可能需要指导的字段。

  • 对于SnapMirror活动同步恢复操作,您必须从主位置选择备份。

  • 对于启用SnapLock的策略、对于ONTAP 9.12.1 及以下版本、如果指定 Snapshot 锁定期限、则作为恢复的一部分从防篡改快照创建的克隆将继承SnapLock到期时间。存储管理员应在SnapLock到期后手动清理克隆。

SnapCenter UI
步骤
  1. 在左侧导航窗格中,单击“资源”,然后从列表中选择适当的插件。

  2. 在资源页面中,从*视图*列表中选择*数据库*或*资源组*。

  3. 从列表中选择数据库或资源组。

    进入拓扑页面。

  4. 从管理副本视图中,从存储系统中选择*备份*。

  5. 从表中选择备份,然后单击恢复图标图标。

    恢复资源
  6. 在“还原范围”页面中,选择以下选项之一:

    选项 描述

    将数据库还原到创建备份的同一主机

    如果您想要将数据库还原到进行备份的同一 SQL 服务器,请选择此选项。

    将数据库还原到备用主机

    如果您希望将数据库还原到与备份相同的或不同的主机上的其他 SQL 服务器,请选择此选项。

    选择主机名,提供数据库名称(可选),选择实例,并指定还原路径。

    备注 备用路径中提供的文件扩展名必须与原始数据库文件的文件扩展名相同。

    如果“还原范围”页面中未显示“将数据库还原到备用主机”选项,请清除浏览器缓存。

    使用现有数据库文件还原数据库

    如果您希望将数据库还原到与备份相同的或不同的主机上的备用 SQL Server,请选择此选项。

    数据库文件应该已经存在于给定的现有文件路径上。选择主机名,提供数据库名称(可选),选择实例,并指定还原路径。

  7. 在“恢复范围”页面中,选择以下选项之一:

    选项 描述

    当您只需要恢复完整备份而不恢复任何日志时,请选择“”。

    所有日志备份

    选择*所有日志备份*最新备份还原操作,在完整备份后还原所有可用的日志备份。

    通过日志备份直到

    选择“按日志备份”执行时间点还原操作,该操作根据备份日志还原数据库,直到选定日期的备份日志。

    按特定日期直至

    选择“按特定日期直到”来指定事务日志不应用于恢复数据库的日期和时间。

    此时间点还原操作将暂停在指定日期和时间之后记录的事务日志条目的还原。

    使用自定义日志目录

    如果您选择了“所有日志备份”、“按日志备份”或“按特定日期直到”并且日志位于自定义位置,请选择“使用自定义日志目录”,然后指定日志位置。

    仅当您选择了“将数据库还原到备用主机”或“使用现有数据库文件还原数据库”时,“使用自定义日志目录”选项才可用。您也可以使用共享路径,但要确保 SQL 用户可以访问该路径。

    备注 可用性组数据库不支持自定义日志目录。
  8. 在“Pre Ops”页面中,执行以下步骤:

    1. 在“预还原选项”页面中,选择以下选项之一:

      • 选择*恢复时覆盖同名数据库*,恢复同名数据库。

      • 选择*保留 SQL 数据库复制设置*以恢复数据库并保留现有的复制设置。

      • 选择“还原前创建事务日志备份”以在还原操作开始之前创建事务日志。

      • 如果事务日志备份失败,请选择“如果还原前的事务日志备份失败则退出还原”以中止还原操作。

    2. 指定在执行还原作业之前要运行的可选脚本。

      例如,您可以运行脚本来更新 SNMP 陷阱、自动发出警报、发送日志等。

    备注 前言或后记路径不应包含驱动器或共享。该路径应相对于 SCRIPTS_PATH。
  9. 在 Post Ops 页面中,执行以下步骤:

    1. 在还原完成后选择数据库状态部分中,选择以下选项之一:

      • 如果您现在要恢复所有必要的备份,请选择*可操作,但无法恢复其他事务日志*。

        这是默认行为,通过回滚未提交的事务使数据库可供使用。在创建备份之前,您无法恢复其他事务日志。

      • 选择*不可操作,但可用于恢复其他事务日志*以使数据库不可操作,而不回滚未提交的事务。

        可以恢复额外的事务日志。在数据库恢复之前您无法使用它。

      • 选择*只读模式,可用于恢复额外的事务日志*以使数据库处于只读模式。

        此选项撤消未提交的事务,但将撤消的操作保存在备用文件中,以便可以恢复恢复效果。

      如果启用了撤消目录选项,则会恢复更多的事务日志。如果事务日志的还原操作不成功,则可以回滚更改。 SQL Server 文档包含更多信息。

    2. 指定执行还原作业后要运行的可选脚本。

      例如,您可以运行脚本来更新 SNMP 陷阱、自动发出警报、发送日志等。

    备注 前言或后记路径不应包含驱动器或共享。该路径应相对于 SCRIPTS_PATH。
  10. 在通知页面中,从*电子邮件首选项*下拉列表中,选择您想要发送电子邮件的场景。

    您还必须指定发件人和收件人的电子邮件地址以及电子邮件的主题。

  11. 查看摘要,然后单击“完成”。

  12. 使用“监控”>“作业”页面监控恢复过程。

PowerShell cmdlet
步骤
  1. 使用 Open-SmConnection cmdlet 为指定用户启动与SnapCenter服务器的连接会话。

    PS C:\> Open-Smconnection
  2. 使用 Get-SmBackup 和 Get-SmBackupReport cmdlet 检索有关要还原的一个或多个备份的信息。

    此示例显示有关所有可用备份的信息:

    PS C:\> Get-SmBackup
    
    BackupId                      BackupName                    BackupTime                    BackupType
    --------                      ----------                    ----------                    ----------
      1               Payroll Dataset_vise-f6_08... 8/4/2015    11:02:32 AM                 Full Backup
      2               Payroll Dataset_vise-f6_08... 8/4/2015    11:23:17 AM

    此示例显示有关 2015 年 1 月 29 日至 2015 年 2 月 3 日备份的详细信息:

    PS C:\> Get-SmBackupReport -FromDateTime "1/29/2015" -ToDateTime "2/3/2015"
    
       SmBackupId           : 113
       SmJobId              : 2032
       StartDateTime        : 2/2/2015 6:57:03 AM
       EndDateTime          : 2/2/2015 6:57:11 AM
       Duration             : 00:00:07.3060000
       CreatedDateTime      : 2/2/2015 6:57:23 AM
       Status               : Completed
       ProtectionGroupName  : Clone
       SmProtectionGroupId  : 34
       PolicyName           : Vault
       SmPolicyId           : 18
       BackupName           : Clone_SCSPR0019366001_02-02-2015_06.57.08
       VerificationStatus   : NotVerified
    
       SmBackupId           : 114
       SmJobId              : 2183
       StartDateTime        : 2/2/2015 1:02:41 PM
       EndDateTime          : 2/2/2015 1:02:38 PM
       Duration             : -00:00:03.2300000
       CreatedDateTime      : 2/2/2015 1:02:53 PM
       Status               : Completed
       ProtectionGroupName  : Clone
       SmProtectionGroupId  : 34
       PolicyName           : Vault
       SmPolicyId           : 18
       BackupName           : Clone_SCSPR0019366001_02-02-2015_13.02.45
       VerificationStatus   : NotVerified
  3. 使用 Restore-SmBackup cmdlet 从备份中还原数据。

    Restore-SmBackup -PluginCode 'DummyPlugin' -AppObjectId 'scc54.sccore.test.com\DummyPlugin\NTP\DB1' -BackupId 269 -Confirm:$false
    output:
    Name                : Restore 'scc54.sccore.test.com\DummyPlugin\NTP\DB1'
    Id                  : 2368
    StartTime           : 10/4/2016 11:22:02 PM
    EndTime             :
    IsCancellable       : False
    IsRestartable       : False
    IsCompleted         : False
    IsVisible           : True
    IsScheduled         : False
    PercentageCompleted : 0
    Description         :
    Status              : Queued
    Owner               :
    Error               :
    Priority            : None
    Tasks               : {}
    ParentJobID         : 0
    EventId             : 0
    JobTypeId           :
    ApisJobKey          :
    ObjectId            : 0
    PluginCode          : NONE
    PluginName          :

可以通过运行_Get-Help command_name_来获取有关可与 cmdlet 一起使用的参数及其描述的信息。或者,您也可以参考 "SnapCenter软件 Cmdlet 参考指南"