还原已启用延伸的数据库 (Stretch Database)

适用于: SQL Server 2016 (13.x) 及更高版本 - 仅限 Windows

重要

SQL Server 2022 (16.x) 和 Azure SQL 数据库中已弃用 Stretch Database。 在数据库引擎的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

必要时,从多种类型的故障、错误和灾难中恢复并还原已备份的数据库。

有关备份的详细信息,请参阅 备份已启用延伸数据库

备份仅仅是完整高可用性和业务连续性解决方案的一部分。 有关高可用性的详细信息,请参阅 高可用性解决方案

还原 SQL Server 数据

若要从硬件故障或损坏中恢复,请从备份中还原已启用延伸的 SQL Server 数据库。 你也可以继续使用当前使用的 SQL Server 还原方法。 有关详细信息,请参阅 还原与恢复概述

还原 SQL Server 数据库之后,必须运行 sys.sp_rda_reauthorize_db 存储过程,重新建立已启用延伸的 SQL Server 数据库和远程 Azure 数据库之间的连接。 有关详细信息,请参阅 还原 SQL Server 数据库和远程 Azure 数据库之间的连接

还原远程 Azure 数据

恢复实时 Azure 数据库

在 Azure 快照上的 SQL Server Stretch Database 服务中,所有的实时数据(至少每隔 8 小时)都使用 Azure 存储快照。 这些快照将保留 7 天。 这样,便可以将数据还原到生成最新快照前 7 天内至少 21 个时间点中的一个。

要使用 Azure 门户将实时 Azure 数据库还原到较早的时间点,请执行以下操作。

  1. 登录 Azure 门户
  2. 在屏幕左侧选择“浏览”,然后选择“SQL 数据库”。
  3. 导航到数据库,然后选择它。
  4. 在数据库窗格顶部,选择“还原”。
  5. 指定新的数据库名称,选择一个“还原点”,然后选择“创建”。
  6. 数据库还原过程将随即开始,并且可以使用“通知”监视还原进度。

恢复已删除的 Azure 数据库

Azure 上的 SQL Server Stretch Database 服务在删除数据库之前会创建数据库快照,并将其保留 7 天。 之后,它不再保留实时数据库的快照。 这使你能够将已删除的数据库还原到被删除的时间点。

要使用 Azure 门户将删除的 Azure 数据库还原到删除时间点,请执行以下操作。

  1. 登录 Azure 门户
  2. 在屏幕左侧选择“浏览”,然后选择“SQL Sever”。
  3. 导航到服务器,然后选择它。
  4. 在服务器的窗格上向下滚动到“操作”,并选择“删除的数据库”磁贴。
  5. 选择要使用的数据库。
  6. 指定新的数据库名称,然后选择“创建”。
  7. 数据库还原过程将随即开始,并且可以使用“通知”监视还原进度。

还原 SQL Server 数据库和远程 Azure 数据库之间的连接

  1. 如果要连接到使用不同的名称或不同区域中的已还原的 Azure 数据库,请运行 sys.sp_rda_deauthorize_db 存储过程,断开与之前 Azure 数据库的连接。

  2. 运行 sys.sp_rda_reauthorize_db 存储过程,将已启用延伸的本地数据库重新连接到 Azure 数据库。

    • 以 sysname 或 varchar(128) 值的形式提供现有数据库范围凭据。 (不要使用 varchar(max)。) 可以在视图 sys.database_scoped_credentials 中查找凭据名称。

    • 指定是否复制远程数据的副本并连接到副本(推荐)。

      USE <Stretch-enabled database name>;
      GO
      EXEC sp_rda_reauthorize_db
          @credential = N'<existing_database_scoped_credential_name>',
          @with_copy = 1;
      GO
      

请参阅