Как проверить состояние операции экспорта-импорта SQL в Azure?

Я выполняю импорт базы данных SQL с помощью файла BacPac в Azure с использованием API-интерфейса управления REST. Мне нужно иметь возможность проверить состояние импорта, поскольку Azure не позволяет мне отправлять события, когда импорт завершается успешно.

Вот документация для выполняемой мной операции: https://docs.microsoft.com/en-us/rest/api/sql/databases%20-%20import%20export/import

Я уже пытался использовать API служб аналитики Azure для проверки состояния операции по идентификатору операции и региону, в котором она произошла. Однако при вызове этой конечной точки мне возвращается значение 404, не найденное.

Вот документация для конечной точки API служб аналитики Azure, которую я пытаюсь вызвать с помощью идентификатора операции импорта и региона, в котором это произошло: https://docs.microsoft.com/en-us/rest/api/analysisservices/servers/listoperationresults

Я ожидаю, что службы Analysis Services предоставят мне статус операции импорта / экспорта, которую я начал использовать API управления Azure. В результате получается 404, поэтому я не уверен, что вызываю правильную конечную точку API (я дважды проверил, чтобы убедиться, что в URI, который я создаю, нет проверок, чтобы проверить состояние операции).

6 ответов

в базе данных перейдите к обзору -> внизу проверьте уведомления -> вы делаете щелчок по изображению

Я знаю, как отслеживать ход выполнения операции импорта / экспорта, если вы используете вместо этого PowerShell, но я не знаю, как отслеживать ход выполнения с помощью API-интерфейса REST Azure.

Если вы используете командлет PowerShell New-AzureRmSqlDatabaseImport для импорта базы данных или вы используете экспорт базы данных New-Azure RmSql для экспорта базы данных, вы можете использовать Get-AzureRmSqlDatabaseImportExportStatus для отслеживания хода операции импорта / экспорта.

Для любого 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, но для других языков применяется тот же принцип.

Чтобы отслеживать процесс импорта, откройте страницу сервера базы данных и в разделе "Настройки" выберите "История импорта / экспорта". В случае успеха импорт получает статус "Завершено".

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

По словам Microsoft:

"У нас есть REST API для операций импорта / экспорта в Azure SQL, но у нас нет REST API для определения статуса импорта / экспорта. Клиент должен использовать Powershell для получения статуса"

Это прискорбно, поскольку вы не можете написать полностью автоматизированное и продаваемое приложение, позволяющее клиентам загружать свои данные и данные на борт в SaaS из устаревшего приложения.

Я также обнаружил, что невозможно определить, не удалось ли выполнить импорт, с помощью команды Powershell, поскольку у него нет URI базы данных (из-за сбоя импорта) для проверки состояния импорта.

Я нахожу статью " Экспорт базы данных Azure SQL", в которой рассказывается о том, как проверить состояние экспорта с помощью API-интерфейса службы экспорта / экспорта базы данных Microsoft Azure SQL.

Резюме:

На портале управления нажмите на базу данных, и на информационной панели отобразится недавний статус экспорта. На снимке экрана 5 вы увидите, что состояние АВТОМАТИЗИРОВАННЫЙ ЭКСПОРТ для моей базы данных отображается как НИКОГДА НЕ ЭКСПОРТИРОВАННЫЙ. Это изменится после успешного экспорта. На портале управления нажмите на базу данных, и на информационной панели отобразится недавний статус экспорта.

После завершения экспорта, который в конечном итоге был запланирован на 1:00, завершен через 5 минут, и состояние автоматического экспорта на моей панели показывает, что то же самое. (Смотрите скриншот 6).

Надеюсь это поможет.

Другие вопросы по тегам