4

我正在使用 REST 管理 API 使用 BacPac 文件将 SQL 数据库导入到 Azure。我需要能够检查导入的状态,因为 Azure 不允许我在导入成功时发送事件。

这是我正在执行的操作的文档: https ://docs.microsoft.com/en-us/rest/api/sql/databases%20-%20import%20export/import

我已经尝试使用 Azure 的分析服务 API 通过操作 id 和它发生的区域检查操作的状态。但是调用此端点返回给我一个 404 未找到。

这是 Azure 的 Analysis Services API 端点的文档,我尝试使用导入的操作 ID 及其发生的区域调用: https ://docs.microsoft.com/en-us/rest/api/analysisservices/servers/listoperationresults

我希望 Analysis Services 向我提供我开始使用 Azure 管理 API 的导入/导出操作的状态。这样做会导致 404,所以我不确定我是否调用了正确的 API 端点(我仔细检查以确保我正在构建的 URI 中没有拼写错误以检查操作状态)。

4

6 回答 6

2

在数据库中转到概述-> 在底部检查通知-> 你确实在 tha 图像中单击

在此处输入图像描述

在此处输入图像描述

于 2021-06-02T17:29:07.903 回答
2

如果您改用 PowerShell,我确实知道如何跟踪导入/导出操作的进度,但我不知道使用 Azure REST API 跟踪进度的方法。

如果使用 PowerShell New-AzureRmSqlDatabaseImport cmdlet 导入数据库或使用New-AzureRmSqlDatabaseExport 导出数据库,则可以使用Get-AzureRmSqlDatabaseImportExportStatus跟踪导入/导出操作的进度。

于 2019-06-21T00:37:45.037 回答
1

要监控导入进度,请打开数据库的服务器页面,然后在设置下选择导入/导出历史记录。成功后,导入状态为已完成。

https://docs.microsoft.com/bs-latn-ba/azure/sql-database/sql-database-import?view=azureipps&tabs=azure-powershell

于 2020-01-17T08:34:35.347 回答
0

我找到一篇文章Azure SQL Database Export,它谈到了如何使用 Microsoft Azure SQL Database Import/Export REST 服务 API 检查导出的状态。

概括:

在管理门户中,单击数据库,仪表板将显示最近的导出状态。在屏幕截图 5 中,您将看到我的数据库的 AUTOMATED EXPORT 状态显示为 NEVER EXPORTED。一旦成功导出,这将改变。在管理门户中,单击数据库,仪表板将显示最近的导出状态。 在此处输入图像描述

导出完成后,最终安排在凌晨 1 点,5 分钟后完成,我的仪表板中的自动导出状态显示相同。(见截图 6)。 在此处输入图像描述

希望这可以帮助。

于 2019-06-21T01:47:26.027 回答
0

据微软称:

“我们有用于将操作导入/导出到 Azure sql 的 REST API,但我们没有任何 REST API 来查找导入/导出状态。客户应该使用 Powershell 来获取状态”

我还发现使用 Powershell 命令无法知道导入是否失败,因为它没有用于检查导入状态的数据库 uri(因为导入失败)。

于 2019-06-21T15:18:46.227 回答
0

对于任何 api,例如 BeginX(),都有一个相应的 api X() 等待完成。在这种情况下,而不是BeginImport()使用Import()

如果您希望更直接地控制轮询,那么您可以查看 Import 的定义并直接使用较低层,即BeginImportWithHttpMessagesAsync() 然后 GetPostOrDeleteOperationResultAsync()

        public async Task<AzureOperationResponse<ImportExportResponse>> ImportWithHttpMessagesAsync(string resourceGroupName, string serverName, string databaseName, ExportRequest parameters, Dictionary<string, List<string>> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            // Send request
            AzureOperationResponse<ImportExportResponse> _response = await BeginImportWithHttpMessagesAsync(resourceGroupName, serverName, databaseName, parameters, customHeaders, cancellationToken).ConfigureAwait(false);

            // Poll for completion
            return await Client.GetPostOrDeleteOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false);
        }

这个答案专门针对.net,但对于其他语言,同样的原则也适用。

于 2019-06-22T18:13:00.827 回答