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

还原 SQL Server 数据库备份

贡献者

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

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

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

  • SnapCenter 可以还原 Windows 集群中的数据库,而无需使 SQL Server 集群组脱机。

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

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

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

  • 脚本路径使用位于插件主机SMCoreServiceHost.exe配置文件中的预定义WindowsScriptsDirectory密钥进行定义。

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

    可以通过API:API /4.7/configsettings从Swagger显示密钥值

    您可以使用GET API显示密钥的值。不支持设置API。

  • 还原向导页面上的大多数字段都是不言自明的。以下信息介绍了可能需要指导的字段。

  • 对于SnapMirror活动同步还原操作、您必须从主位置选择备份。

  • 对于启用了SnapLock的策略、对于ONTAP 9.12.1及更低版本、如果指定了Snapshot锁定期限、则在还原过程中从防篡改Snapshot创建的克隆将继承SnapLock到期时间。存储管理员应在SnapLock到期时间后手动清理克隆。

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

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

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

    此时将显示拓扑页面。

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

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

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

    选项 Description

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

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

    将数据库还原到备用主机

    如果要将数据库还原到执行备份的同一主机或不同主机中的其他 SQL 服务器,请选择此选项。

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

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

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

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

    如果要将数据库还原到执行备份的同一主机或不同主机中的备用 SQL Server ,请选择此选项。

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

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

    选项 Description

    如果只需要还原完整备份而不需要任何日志,请选择 * 无 * 。

    所有日志备份

    选择 * 所有日志备份 * 实时备份还原操作,以便在完整备份后还原所有可用的日志备份。

    通过日志备份,直到

    选择 * 通过日志备份 * 以执行时间点还原操作,此操作将根据备份日志还原数据库,直到具有选定日期的备份日志为止。

    截止日期

    选择 * 按特定日期至 * 以指定事务日志不应用于已还原数据库的日期和时间。

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

    使用自定义日志目录

    如果选择了 * 所有日志备份 * , * 通过日志备份 * 或 * 在特定日期之前 * ,并且日志位于自定义位置,请选择 * 使用自定义日志目录 * ,然后指定日志位置。

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

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

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

      • 选择 * 在还原期间覆盖同名数据库 * 以还原同名数据库。

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

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

      • 选择 * 如果事务日志备份失败,则退出还原 * ,以便在事务日志备份失败时中止还原操作。

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

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

    备注 预处理脚本或后处理脚本路径不应包含驱动器或共享。路径应与scripts_path相关。
  9. 在操作后页面中,执行以下步骤:

    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          :

有关可与 cmdlet 结合使用的参数及其说明的信息,可通过运行 get-help command_name 来获取。或者,您也可以参考 "《 SnapCenter 软件 cmdlet 参考指南》"