挂载 Microsoft SQL Server 数据库

本部分介绍了如何挂载捕获的 Microsoft SQL Server:

  • 实例
  • AlwaysOn 可用性组的主数据库
  • 一致性组
  • 一致性组的个别成员
  • 系统数据库
  • 用户数据库

挂载捕获的 Microsoft SQL Server 数据

借助标准挂载,您可以将 Microsoft SQL Server 数据挂载到另一台服务器,以便另一台 Microsoft SQL Server 可以提取并使用这些数据。如需仅挂载捕获的 Microsoft SQL Server 数据,请按以下步骤操作:

  1. 打开 App Manager(应用管理器),进入应用列表

  2. 右键点击 SQL Server 服务器实例、用户数据库、系统数据库、集群或可用性组,然后选择访问。使用过滤条件查找所需的数据库。

  3. 在模块序列中,选择要挂载的特定映像,然后选择挂载

  4. (可选)输入一个标签,以便您清晰地识别此已挂载数据。

  5. 挂载映像对话框的应用选项部分中,请勿选择创建新的虚拟应用。如需将 Microsoft SQL Server 数据作为虚拟数据库挂载,请参阅将 SQL Server 数据库挂载为新的虚拟数据库

  6. 填写 Mapping Options(映射选项)和 Item Selection(商品选择)字段(如果适用)。

    系统显示的选项因所选来源而异。例如,VMware 虚拟机上的数据库具有映射到所有 ESX 主机选项。集群型数据库具有映射到集群节点选项。

  7. 点击提交,系统便会提交挂载作业。

  8. 装载操作成功后,登录数据库服务器,然后验证已装载的映像是否在有效装载中。

将 SQL Server 数据库挂载为新的虚拟数据库

虚拟应用挂载操作会将捕获的数据库挂载为虚拟应用。借助该功能,您无需实际移动数据,也无需手动配置数据库的新实例,即可快速将数据库上线。虚拟应用挂载可解决创建和管理生产数据库副本的难题,无需数据库、服务器和存储空间管理员手动干预。

本部分介绍了如何将捕获的 Microsoft SQL Server 数据库作为虚拟应用挂载。您可以为 Microsoft SQL Server 挂载以下内容:

  • 实例
  • 系统数据库
  • 用户数据库
  • 一致性组
  • 一致性组的个别成员
  • AlwaysOn 可用性组中的数据库

在挂载映像之前,请确保已在挂载映像的主机上配置 iSCSI,或者已在 VMware 中配置 NFS 数据存储区。

如果您只想挂载 Microsoft SQL 数据文件,而不向 SQL Server 实例添加任何数据库,请参阅挂载捕获的 Microsoft SQL 数据

对于损坏或已删除的数据库,将 SQL Server 数据库作为虚拟应用挂载到其原始服务器是一种高效的替代方法,可代替执行数据库恢复。

如需将捕获的 Microsoft SQL Server 数据库作为虚拟应用挂载,请按以下步骤操作:

  1. 打开管理控制台,然后依次选择应用管理器 > 应用列表。

  2. 右键点击 SQL Server 实例、用户数据库、系统数据库、集群或可用性组,然后选择访问。使用过滤条件查找所需的数据库。

  3. 在图片跑道上,选择要挂载的图片。 在右侧,选择挂载。 您可以使用左上角的日历微件来缩小备份图片的范围。

  4. 应用选项部分中,您可以根据需要输入一个标签,以便清晰标识此已挂载数据。

  5. 选择创建新的虚拟应用

  6. 如果数据库及其日志一并被捕获,应用选项对话框提供了一个选项,可根据日志的捕获时间和频率将日志滚动到特定时间点。

  7. SQL Server 实例名称下拉列表中,选择应将新数据库添加到的 SQL Server 实例。如果下拉菜单中未包含所需的实例名称,您可以在提供的空间中手动输入该名称。

  8. 如果您要挂载单个数据库,请在 SQL Server 数据库名称字段中输入新虚拟数据库的名称。

    如果您要挂载多个数据库,请在一致性组的名称字段中输入一个包含虚拟数据库的新一致性组的名称。

  9. 虚拟应用挂载点是一个新的虚拟数据库。如需保护新的虚拟数据库,请选择管理新应用,然后选择要使用的模板和配置文件。

    虚拟应用挂载点是一个新数据库。数据库的快照是增量快照。

    虚拟应用会显示在 Application Manager 应用列表中。

    如果您未选择管理新应用,则该应用会在应用管理器中显示为未受保护的应用。它可以像任何其他应用一样受到保护。

    挂载到 SQL Server 实例的虚拟 SQL Server 数据库始终与实例的用户数据库和系统数据库分开保护。

  10. 恢复后恢复数据库:如果您希望将数据库恢复为在线状态,以便处理事务,请选中此选项(默认)。取消选中该复选框可让数据库保持在恢复状态,以便手动应用其他事务日志备份,将数据库滚动到特定时间点。

  11. 恢复用户登录:如果您已启用政策选项 Backup SQL Server Logins(备份 SQL Server 登录),则选择此选项会将这些登录恢复到目标 SQL Server 实例。 对于网域账号,只有当目标实例位于同一网域中的服务器上,或位于与源 SQL Server 具有信任关系的网域中时,系统才会恢复用户账号。SQL 本地账号始终会恢复。 如果您希望确保所有可以访问原始源数据库的用户都可以访问新的虚拟数据库,请使用此选项。

  12. 仅在需要时,在用户名和密码字段中输入用户名和密码。如果备份和灾难恢复代理账号没有在卸载操作期间分离数据库或应用事务日志的权限,请在此处输入具有这些权限的账号的凭据。如需了解详情,请参阅Windows 用户的必需 SQL Server 角色

  13. 如果您想更改新虚拟数据库的恢复模型,请选择恢复模型。默认是保留原始数据库的恢复模型。

  14. 对于覆盖现有数据库,请指明何时覆盖目标服务器或实例上与要挂载的新数据库同名的某个数据库:仅当数据库已过时时

  15. 映射选项中,您可以输入挂载位置。如果应用只有一个卷,您只能在此处指定挂载位置。如果应用有多个卷,您可以:

    • 输入安装位置。所有卷都会自动挂载到指定的挂载位置,使用指定挂载点中的顺序驱动器字母或编号目录。

    • 请将此空间留空,然后在高级选项中,手动为每个卷指定一个挂载位置。

  16. 点击提交,即可提交作业。

  17. 装载作业完成后,登录数据库服务器,然后验证有效挂载中是否有已挂载的映像。

管理有效挂载

创建挂载点后,请依次前往应用管理器 > 活跃挂载,跟踪映像。请勿将任何映像挂载无限期。这是因为,在挂载点的所有挂载内容都被删除之前,用于创建挂载点的备份映像都不会过期。使用完已挂载的映像后,请执行以下任一操作:

  • 取消挂载映像。如有需要,您可以重新挂载它。之后,当您确定不再需要该映像时,可以删除该映像。
  • 卸载并删除映像。这会删除已挂载的映像,而不是挂载映像所依据的备份。
  • 迁移映像。这仅适用于 Microsoft SQL Server 挂载。

挂载加密的 SQL Server 数据

备份/恢复设备会捕获加密的 SQL Server 数据库,但不会捕获其私钥、加密证书或密码。

本节介绍以下内容:

  • 确定是否已启用 SQL TDE

  • 排查 SQL Server 加密问题

  • SQL Server 主密钥、加密证书和密码过程

如果您要将加密的 SQL Server 数据库恢复到现有 SQL Server 数据库,则私钥、加密证书和密码已存在于 SQL Server 实例中,并且恢复操作完成后,SQL Server 数据库会按预期运行。

如果您要对加密数据库执行虚拟应用挂载,或者仅对加密 SQL Server 数据执行挂载,则用于挂载加密数据库或数据的 SQL Server 实例必须具有以下特性:

  • 已启用透明数据加密 (TDE)

  • 源 SQL Server 数据库中的私钥的副本

  • 源 SQL Server 数据库中的加密证书的副本

  • 提供源 SQL Server 数据库的密码

这些过程位于 SQL Server 主密钥、加密证书和密码过程中。

确定是否已启用 SQL Server TDE

如需确定 SQL Server 实例上是否启用了 TDE,您可以使用 Microsoft SQL Server Management Studio 的界面 (SSMS),也可以使用手动查询来确定数据库上是否启用了加密。例如:

    SELECT
     DB_NAME(database_id)AS dbname,
     encryption_state,
     case encryption_state
       WHEN 0 THEN 'Unencrypted (no
    database encryption key present)'
       WHEN 1 THEN 'Unencrypted'
       WHEN 2 THEN 'Encryption in Progress'
       WHEN 3 THEN 'Encrypted'
       WHEN 4 THEN 'Key Change in Progress'
       WHEN 5 THEN 'Decryption in Progress'
       ELSE CAST(encryption_state AS
    varchar(20))
     END AS encryption_state,
     key_algorithm,
     key_length
     FROM sys.dm_database_encryption_keys

SSMS

如需使用 SSMS 确定数据库是否启用了加密,请按以下步骤操作:

  1. 在 SSMS 中,右键点击数据库名称。

  2. 从下拉菜单中选择属性,系统随即会显示数据库的属性。

  3. 选择页面下,点击选项,系统随即会显示数据库的选项。

  4. State(状态)下,确保将 Encryption Enabled(已启用加密)设置为 True

排查 SQL Server 加密问题

以下是两个常见错误:

  • SQL 错误 24583:表示缺少加密证书。以下 24583 SQL Server 错误表示您尝试将某个不具有源 SQL Server 实例加密证书的 SQL Server 实例挂载到另一个 SQL Server 实例。

  • SQL 错误 33117:未启用透明数据加密。以下 33117 SQL Server 错误表示您尝试将加密的 SQL Server 数据库挂载到未启用透明数据加密的 SQL Server 实例。

SQL Server 主密钥、加密证书和密码过程

创建和复制主密钥和加密证书是标准的 Microsoft SQL Server 过程,并非仅适用于备份/恢复设备。为方便起见,我们在此处提供了这些信息:

  • 创建新主密钥

  • 创建新的加密证书

  • 应用服务器主密钥和加密证书

  • 创建服务器主密钥、加密证书的副本,并提供源密码

  • 复制加密证书、私钥,并提供来源密码

如需了解详情,请参阅 Microsoft 关于安全证书和密钥的详细信息:https://msdn.microsoft.com/zh-cn/library/ff848768.aspx

创建新主密钥

    use master;
    go
    create master key encryption by password = 'SMKSourcePassword';
    go

创建新的加密证书

    use master;
    go
    create certificate sourcedbcert with subject = 'Act Test Cert';
    go

应用服务器主密钥和加密证书

    use DATABASENAME;
    go
    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_128
    ENCRYPTION BY SERVER CERTIFICATE sourcedbcert;
    go
    alter database DATABASENAME
    set encryption on;
    go

创建服务器主密钥、加密证书的副本,并提供来源密码

如果将一个 SQL Server 实例上的 SQL Server 数据库挂载到另一个 SQL Server 实例,您必须手动复制要挂载的数据库的服务器主密钥、加密证书和密码。然后,将服务器主密钥、加密证书和密码复制到另一个 SQL Server 实例。

如需复制服务器主密钥、加密认证和密码,请完成以下操作:

    use master;
    go
    backup certificate sourcedbcert to file = 'E:\Enc\Sourcecert'
    with PRIVATE KEY (file='E:\Enc\Privatekey',
    ENCRYPTION BY PASSWORD='SecurePassword');
    go

复制加密证书、私钥,并提供来源密码

如果启用了加密的 SQL Server 数据库或数据挂载到新的 SQL Server 实例,则新实例必须包含源 SQL Server 实例的服务器主密钥、加密证书和密码的副本。将您在上一部分中在源 SQL Server 实例上创建的加密证书和密码副本手动复制到新的 SQL Server 实例。在新建的 SQL Server 实例中,完成以下操作:

    create certificate destinationdbcert
    FROM file = 'C:\Program Files\Backup and DR\sqlenc\Sourcecert'
    with private key (file = 'C:\Program Files\Backup and DR\sqlenc\Privatekey',
    decryption by password = 'SecurePassword')
    go

Backup and DR SQL Server DBA 指南

本页面属于一系列页面中的一页,专门介绍如何使用备份和灾难恢复功能保护和恢复 Microsoft SQL Server 数据库。您可以在以下页面中找到更多信息: