Как восстановить схему на Azure SQL Базы данных сервера, используя скрипт PowerShell? - PullRequest
0 голосов
/ 20 января 2020

Я создал сервер sql, развернул пул elasti c на этом сервере и могу создать несколько баз данных в этом пуле elasti c по этой ссылке https://dba.stackexchange.com/a/257739/197860. Теперь моя цель загрузки этого вопроса: я хочу восстановить только схему, а затем данные в созданных azure sql базах данных с помощью PowerShell Script. Может ли кто-нибудь помочь мне с этим, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Восстановление bacpa c создает новую базу данных на Azure SQL База данных. Ниже приведен сценарий PowerShell для его восстановления.

# Restore/Import bacpac to database with an S3 performance level
$importRequest = New-AzSqlDatabaseImport -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -DatabaseName $databaseName `
    -DatabaseMaxSizeBytes "262144000" `
    -StorageKeyType "StorageAccessKey" `
    -StorageKey $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName).Value[0] `
    -StorageUri "https://$storageaccountname.blob.core.windows.net/$storageContainerName/$bacpacFilename" `
    -Edition "Standard" `
    -ServiceObjectiveName "S3" `
    -AdministratorLogin "$adminSqlLogin" `
    -AdministratorLoginPassword $(ConvertTo-SecureString -String $password -AsPlainText -Force)

# Check restore/import status and wait for the import to complete

$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Importing")
while ($importStatus.Status -eq "InProgress")
{
    $importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
    [Console]::Write(".")
    Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus

После восстановления вы можете назначить базу данных в пул elasti c.

# Move the database to the pool
$firstDatabase = Set-AzSqlDatabase -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -DatabaseName $firstDatabaseName `
    -ElasticPoolName $PoolName
0 голосов
/ 20 января 2020

Если вы хотите восстановить схему с локального SQL сервера в Azure SQL базу данных в пуле Elasti c, вы можете использовать инструмент Data Migration Assistant (DMA) .

DMA поддерживает только миграцию схемы:

enter image description here

Если вы хотите восстановить схему между Azure SQL базой данных, вы можете использовать SSMS Генерация и публикация sh Мастер сценариев . Вы можете использовать мастер создания сценариев Generate и Publi sh для создания сценариев передачи базы данных между экземплярами SQL Server Database Engine или Azure SQL Database.

База данных правой кнопкой мыши - Создать сценарий:

enter image description here

enter image description here

Тогда вы можете использовать PowerShell для запустите скрипт SQL.

Ссылка:

  1. Как выполнить. sql файл с использованием powershell?
  2. Как выполнить SQL Сценарий, используя windows powershell (используя invoke-sqlcmd или любое другое)

У меня есть вопрос, так как вам нужно восстановить схему, а затем данные в эти созданные Azure SQL базы данных, почему бы вам не импортировать файл резервной копии, например .bacpa c, для создания базы данных на этом сервере Azure SQL напрямую с PowerShell?

Пожалуйста, обратитесь к этим учебникам:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...