Контейнер сервера ACI sql не указывает на хранилище файлов при запуске - PullRequest
0 голосов
/ 04 октября 2019

Я ищу создание сервера sql с сохранением хранилища файлов в контейнере экземпляра Azure (ACI) с помощью сценария powershell.

Я делаю следующие шаги 1. Создайте группу ресурсов 2. Создайте хранилище файлов3. Создайте контейнер сервера SQL, который использует хранилище файлов. 4. Извлеките весь журнал из контейнера

Моя проблема заключается в том, что сервер sql в контейнере не запускается с использованием расположения файла / данных в хранилище файлов.

Я вижу, что с помощью docker используется параметр -v или -mount, но у меня не получилось с моими попытками.

Так что любая помощь будет оценена

СпасибоВы продвигаетесь.

Микаэль

Сценарий Powershell

param (

    # The ressource group name
    $ressourceGroup = "sql-container",

    # Location for where the instance is placed
    $location = "WestEurope",

    # Image name to download
    $imageName = "mcr.microsoft.com/mssql/server:latest-ubuntu",    

    # Dns name for this instanse
    $dnsName = "sql-test99",

    # Database instanse name
    $databaseInstanseName = "mssql-2019",

    # Database collatino type
    $databaseCollation = "Danish_Norwegian_CI_AS",

    # Database login name
    $databaseLoginName = "SA",

    # Database login name
    $databaseLoginPassword = "!thisWillMakeMyDayEveryDayIn2019",

    # Database default locations
    $databaseDefaultLocation = "/mnt/mydata/",

    # SQL server name
    $sqlServerFullName = $dnsName + "." + $location + ".azurecontainer.io",

    # Storage account name  
    $storage_account_name = "mikaelsqlstorageaccount",

    # Storage share name    
    $storage_share_name = "sqlsharestorage",

    # Storage key
    $storage_key
)

az group create --name $ressourceGroup --location $location

az Storage account create --resource-group $ressourceGroup --name $storage_account_name --location $location --sku Standard_LRS

az Storage share create --name $storage_share_name --account-name $storage_account_name

$script:storage_key=$(az Storage account keys list --resource-group $ressourceGroup --account-name $storage_account_name --query "[0].value" --output tsv)

az container create --image $imageName --name $databaseInstanseName --resource-group $ressourceGroup --cpu 1 --memory 3.5 --port 1433 --ip-address public -e ACCEPT_EULA=Y MSSQL_SA_PASSWORD=$databaseLoginPassword MSSQL_PID=Developer MSSQL_COLLATION=$databaseCollation MSSQL_ENABLE_HADR=Y MSSQL_BACKUP_DIR=$databaseDefaultLocation MSSQL_DATA_DIR=$databaseDefaultLocation MSSQL_LOG_DIR=$databaseDefaultLocation MSSQL_DUMP_DIR=$databaseDefaultLocation --location $location --dns-name-label $dnsName --azure-file-volume-account-name $storage_account_name --azure-file-volume-account-key $storage_key --azure-file-volume-share-name $storage_share_name --azure-file-volume-mount-path $databaseDefaultLocation

az container logs --resource-group $ressourceGroup --name $databaseInstanseName

Журнал контейнера SQL

2019-10-07 08:41:08.07 Server      Logging SQL Server messages in file '/var/opt/mssql/log/errorlog'.
2019-10-07 08:41:08.07 Server      Registry startup parameters: 
     -d /var/opt/mssql/data/master.mdf
     -l /var/opt/mssql/data/mastlog.ldf
     -e /var/opt/mssql/log/errorlog
.
.
2019-10-07 08:41:19.84 spid16s      index restored for master.syspriorities.
2019-10-07 08:41:20.45 spid30s     ***Stack Dump being sent to /mnt/mydata/SQLDump0001.txt

2019-10-07 08:41:20.49 spid30s     SqlDumpExceptionHandler: Process 30 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.

1 Ответ

0 голосов
/ 07 октября 2019

Согласно сообщению, которое вы предоставили, возможная причина заключается в том, что путь монтирования должен быть /mnt/mydata/. Поэтому вам нужно изменить переменную databaseDefaultLocation с правильным форматом пути. И вы также можете увидеть пример здесь .

Кстати, постоянные тома не поддерживают контейнер Windows в ACI. Поэтому вам также необходимо обратить на это внимание. Подробнее см. Примечание здесь .

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