停用 Stretch Database 並恢復遠端資料

適用於:SQL Server 2016 (13.x) 和更新版本 - 僅限 Windows

重要

Stretch Database 在 SQL Server 2022 (16.x) 及 Azure SQL 資料庫中已被取代。 資料庫引擎的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

您可以使用 Transact-SQL 來為資料表或資料庫停用 Stretch Database。

當您停用資料表的 Stretch Database 之後,資料移轉將會停止,而查詢結果將不再包含來自遠端資料表的結果。

如果您想要暫停資料移轉,請參閱 暫停和繼續資料移轉 (Stretch Database)

注意

停用資料表或資料庫的 Stretch Database 不會刪除遠端物件。 若您想要刪除遠端資料表或遠端資料庫,則必須使用 Azure 管理入口網站將其卸除。 遠端物件會繼續產生 Azure 成本,直到您將其刪除為止。 如需詳細資訊,請參閱 SQL Server Stretch Database 定價

停用資料表的 Stretch Database

使用 Transact-SQL

  • 若要停用資料表的 Stretch,並將資料表的遠端資料從 Azure 複製到 SQL Server,請執行下列命令。 將所有遠端資料從 Azure 複製回 SQL Server 後,即會針對資料表停用 Stretch。

    無法取消此命令。

    USE [<Stretch-enabled database name>];
    GO
    ALTER TABLE [<Stretch-enabled table name>]
       SET ( REMOTE_DATA_ARCHIVE ( MIGRATION_STATE = INBOUND ) );
    GO
    

    將資料表的遠端資料從 Azure 複製回 SQL Server 會產生資料傳輸成本。 如需詳細資訊,請參閱 資料傳輸定價詳細資料

  • 若要停用資料表的 Stretch,並放棄遠端資料,請執行下列命令。

    USE <Stretch-enabled database name>;
    GO
    ALTER TABLE <Stretch-enabled table name>
       SET ( REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY ( MIGRATION_STATE = PAUSED ) );
    GO
    

    針對資料表停用 Stretch Database,並不會刪除遠端資料或遠端資料表。 若您想要刪除遠端資料表,則必須使用 Azure 管理入口網站將其卸除。 遠端資料表會繼續產生 Azure 成本,直到您將其刪除為止。 如需詳細資訊,請參閱 SQL Server Stretch Database 定價

停用資料庫的 Stretch Database

針對資料庫停用 Stretch Database 前,您必須針對資料庫中個別啟用 Stretch 的資料表停用 Stretch Database。

使用 Transact-SQL

執行下列命令。

ALTER DATABASE [<Stretch-enabled database name>]
    SET REMOTE_DATA_ARCHIVE = OFF;
GO

針對資料庫停用 Stretch Database,並不會刪除遠端資料庫。 如果您想要刪除遠端資料庫,您必須使用 Azure 管理入口網站加以卸除。 遠端資料庫會繼續產生 Azure 成本,直到您將其刪除為止。 如需詳細資訊,請參閱 SQL Server Stretch Database 定價

另請參閱