我在 Azure 存储中有一个
.bacpac
文件,并且希望将其恢复为 Azure SQL Server 上的数据库。 .bacpac
文件称为 testdb
。
我正在使用以下命令:
az sql db import --admin-password <sql_server_admin_password> --admin-user <sql_server_admin_username>
--storage-key <storage_account_key> --storage-key-type StorageAccessKey
--storage-uri <bacpac_file_uri> --name 'newtestdb'
--resource-group 'testrg' --server 'testserver'
问题是它说在资源组
servers/testserver/databases/newtestdb
下找不到testrg
。
我认为它会在该服务器上的资源组下创建新数据库
testrg
。
如何将
.bacpac
文件恢复到资源组中的 SQL Server?
假设将 bacpac 上传到 Azure 存储帐户,您需要首先创建资源组,然后创建 Azure SQL 逻辑服务器,然后在该逻辑服务器上创建一个空的 Azure SQL 数据库,最后使用新名称导入数据库创建的数据库。下面是 AZ 命令的全功能脚本以及执行它们所需的顺序:
# Import a BACPAC file into a database in SQL Database
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-azuresql-rg-$randomIdentifier"
tag="import-from-bacpac"
server="msdocs-azuresql-server-$randomIdentifier"
database="msdocsazuresqldb$randomIdentifier"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
storage="msdocsazuresql$randomIdentifier"
container="msdocs-azuresql-container-$randomIdentifier"
bacpac="sample.bacpac"
echo "Using resource group $resourceGroup with login: $login, password: $password..."
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag
echo "Creating $storage..."
az storage account create --name $storage --resource-group $resourceGroup --location "$location" --sku Standard_LRS
echo "Creating $container on $storage..."
key=$(az storage account keys list --account-name $storage --resource-group $resourceGroup -o json --query [0].value | tr -d '"')
az storage container create --name $container --account-key $key --account-name $storage #--public-access container
echo "Downloading sample database..."
az rest --uri https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Standard.bacpac --output-file $bacpac -m get --skip-authorization-header
echo "Uploading sample database to $container..."
az storage blob upload --container-name $container --file $bacpac --name $bacpac --account-key $key --account-name $storage
echo "Creating $server in $location..."
az sql server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password
az sql server firewall-rule create --resource-group $resourceGroup --server $server --name AllowAzureServices --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
echo "Creating $database..."
az sql db create --name $database --resource-group $resourceGroup --server $server --edition "GeneralPurpose"
echo "Importing sample database from $container to $database..."
az sql db import --admin-password $password --admin-user $login --storage-key $key --storage-key-type StorageAccessKey --storage-uri https://$storage.blob.core.windows.net/$container/$bacpac --name $database --resource-group $resourceGroup --server $server