Импорт больших коллекций

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Для баз данных, предупреждающих о том, что средство миграции данных слишком велик, для миграции в Azure DevOps Services требуется другой подход к упаковке данных. Если вы не уверены, превышает ли коллекция пороговое значение размера, следует выполнить проверку средства миграции данных в коллекции. Проверка позволяет узнать, нужно ли использовать метод виртуальной машины SQL Azure для импорта.

Определите, можно ли уменьшить размер коллекции.

Прежде чем продолжить, рекомендуется проверка, чтобы узнать, можно ли очистить старые данные. Со временем коллекции могут создавать большие объемы данных. Этот рост является естественной частью процесса DevOps, но вы можете обнаружить, что вам не нужно хранить все данные. Некоторые распространенные примеры устаревших данных являются старыми рабочими областями и результатами сборки.

Очистка старых артефактов, которые больше не относятся к соответствующим артефактам, может удалить гораздо больше места, чем ожидалось, и это может определить, используется ли метод импорта DACPAC или виртуальная машина SQL Azure.

Внимание

После удаления старых данных его нельзя восстановить, если вы не восстановите старую резервную копию коллекции.

Если вы находитесь под пороговым значением DACPAC, следуйте инструкциям по созданию DACPAC для импорта. Если база данных по-прежнему не удается получить под пороговым значением DACPAC, необходимо настроить виртуальную машину SQL Azure для импорта в Azure DevOps Services.

Настройка виртуальной машины SQL Azure для импорта в Azure DevOps Services

Давайте рассмотрим, как это сделать. На высоком уровне вы:

  • Настройка виртуальной машины SQL Azure.
  • (Необязательно) Ограничить доступ только к IP-адресам Azure DevOps Services.
  • Настройте исключения брандмауэра IP.
  • Восстановите базу данных на виртуальной машине.
  • Настройте коллекцию для импорта.
  • Настройка файла спецификации импорта для целевой виртуальной машины

Настройка виртуальной машины SQL Azure

Вы можете настроить виртуальную машину SQL Azure из портал Azure с помощью нескольких щелчков мыши. Дополнительные сведения см. в статье "Использование портал Azure для подготовки виртуальной машины Windows с помощью SQL Server".

Примечание.

При настройке виртуальной машины SQL Azure помните, что производительность виртуальной машины и подключенных дисков данных существенно влияет на производительность импорта. По этой причине настоятельно рекомендуется:

  • Выбор размера виртуальной машины на уровне D8s_v5_* или более поздней
  • Использование управляемых дисков
  • Консультации по производительности виртуальных машин и дисков. Убедитесь, что инфраструктура настроена таким образом, чтобы ни операции ввода-вывода в секунду, ни операции ввода-вывода в хранилище виртуальных машин не стали узким местом в производительности импорта. Например, убедитесь, что количество дисков данных, подключенных к виртуальной машине, достаточно для поддержки операций ввода-вывода в секунду из виртуальной машины.

Azure DevOps Services доступна в нескольких регионах Azure по всему миру. Их можно увидеть в таблице ниже.

Внимание

Чтобы убедиться, что импорт успешно запущен, важно разместить данные в правильном регионе. Если вы настроили виртуальную машину SQL Azure в расположении, отличном от регионов, перечисленных в следующей таблице, импорт завершится ошибкой.

Если вы используете этот метод импорта, определите, где создать виртуальную машину SQL Azure, ссылаясь на следующую таблицу. Создание виртуальной машины в регионе, отличном от тех, в этом списке, не поддерживается для выполнения импорта.

Требуемый регион импорта Регион виртуальной машины SQL Azure
Центральная США Центральная часть США
Западная Европа Западная Европа
Восточная Австралия Восточная Австралия
Brazil South Южная Бразилия
Индия (юг) Индия (юг)
Центральная Канада Центральная Канада
Азиатско-Тихоокеанский регион Юго-Восточная Азия (Сингапур)
южная часть Соединенного Королевства южная часть Соединенного Королевства

Хотя Azure DevOps Services доступна в нескольких регионах США, только центральное США регион принимает новые организации. В настоящее время компании не могут импортировать свои данные в другие регионы США Azure.

Примечание.

Клиенты DACPAC должны обратиться к таблице регионов в разделе "Шаг 3. Отправка ФАЙЛА DACPAC". Приведенные выше рекомендации предназначены только для виртуальных машин SQL Azure.

Ниже приведены несколько дополнительных конфигураций виртуальных машин SQL Azure, которые мы рекомендуем:

  • Настройте временную базу данных SQL для использования диска, отличного от диска C. В идеале диск должен иметь достаточно свободное место; по крайней мере эквивалентно самой большой таблице базы данных.
  • Если исходная база данных по-прежнему превышает 1 терабайт (ТБ) после уменьшения его размера, необходимо подключить дополнительные 1-ТБ диски и объединить их в одну секцию для восстановления базы данных на виртуальной машине.
  • Если базы данных коллекции имеют более 1 ТБ размера, рассмотрите возможность использования SSD как для временной базы данных, так и для базы данных коллекции. Кроме того, рассмотрите возможность использования больших виртуальных машин с 16 виртуальными ЦП и 128 ГБ ОЗУ.
  • Для доступа к этому компьютеру требуется общедоступный IP-адрес.

Ограничение доступа только к IP-адресам Azure DevOps Services

Дополнительные сведения см. на странице "Ограничить доступ к IP-адресам Azure DevOps Services".

Восстановление базы данных на виртуальной машине

После настройки и настройки виртуальной машины Azure необходимо выполнить отсоединение резервного копирования из экземпляра Azure DevOps Server на виртуальную машину Azure. В Azure есть несколько документированных методов для выполнения этой задачи. База данных коллекции должна быть восстановлена в экземпляре SQL и не требует установки Azure DevOps Server на виртуальной машине.

Настройка коллекции для импорта

После восстановления базы данных коллекции на виртуальной машине Azure настройте имя входа SQL, чтобы разрешить Azure DevOps Services подключаться к базе данных для импорта данных. Это имя входа разрешает доступ только для чтения к одной базе данных.

Чтобы начать, откройте СРЕДУ SQL Server Management Studio на виртуальной машине и откройте новое окно запроса к базе данных для импорта.

Задайте для восстановления базы данных простое значение:

ALTER DATABASE [<Database name>] SET RECOVERY SIMPLE;

Создайте имя входа SQL для базы данных и назначьте это имя для входа в TFSEXECROLE:

USE [<database name>]
CREATE LOGIN <pick a username> WITH PASSWORD = '<pick a password>'
CREATE USER <username> FOR LOGIN <username> WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember @rolename='TFSEXECROLE', @membername='<username>'

Следуя нашему примеру Fabrikam, две команды SQL будут:

ALTER DATABASE [Foo] SET RECOVERY SIMPLE;

USE [Foo]
CREATE LOGIN fabrikam WITH PASSWORD = 'fabrikamimport1!'
CREATE USER fabrikam FOR LOGIN fabrikam WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember @rolename='TFSEXECROLE', @membername='fabrikam'

Примечание.

Обязательно включите режим SQL Server и проверка подлинности Windows в SQL Server Management Studio на виртуальной машине. Если режим проверки подлинности не включен, импорт завершится ошибкой.

Настройка файла спецификации импорта для целевой виртуальной машины

Обновите файл спецификации импорта, чтобы включить сведения о подключении к экземпляру SQL Server. Откройте файл спецификации импорта и выполните следующие обновления:

  1. Удалите параметр DACPAC из объекта исходных файлов.

    Спецификация импорта перед изменением отображается в следующем коде:

    Снимок экрана: спецификация импорта перед изменением.

    Спецификация импорта после изменения показана в следующем коде:

    Снимок экрана: спецификация импорта после изменения.

  2. Заполните необходимые параметры и добавьте следующий объект свойств в исходный объект в файл спецификации.

    "Properties":
    {
        "ConnectionString": "Data Source={SQL Azure VM Public IP};Initial Catalog={Database Name};Integrated Security=False;User ID={SQL Login Username};Password={SQL Login Password};Encrypt=True;TrustServerCertificate=True" 
    }
    

После применения изменений спецификация импорта будет выглядеть следующим образом:

Снимок экрана: спецификация импорта, ссылающаяся на виртуальную машину SQL Azure.

Теперь спецификация импорта настроена на использование виртуальной машины SQL Azure для импорта. Выполните остальные действия по подготовке для импорта в Azure DevOps Services. После завершения импорта обязательно удалите имя входа SQL или измените пароль. Корпорация Майкрософт не сохраняет данные для входа после завершения импорта.