Поделиться через


Создайте резервную копию и восстановите ваше приложение в службе приложений Azure.

Это важно

Начиная с 31.03.2028, пользовательские резервные копии Azure App Service больше не будут поддерживать резервное копирование связанных баз данных. См. Устаревание резервных копий связанных баз данных для получения дополнительной информации.

В Azure App Service вы можете легко восстановить резервные копии приложений. Вы также можете создавать пользовательские резервные копии по запросу или настраивать запланированные пользовательские резервные копии. Вы можете восстановить резервную копию, перезаписав существующее приложение или восстановив его в новое приложение или слот. В этой статье объясняется, как восстановить резервную копию и создать пользовательские резервные копии.

Функции резервного копирования и восстановления поддерживаются на уровнях Basic, Standard, Premium и Isolated. Для базового уровня вы можете только выполнять резервное копирование и восстановление производственного слота. Для получения дополнительной информации о масштабировании вашего плана App Service до более высокого уровня, смотрите Увеличение масштаба приложения в Azure.

Автоматические и пользовательские резервные копии

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

Особенность Автоматические резервные копии Пользовательские резервные копии
Ценовые категории Базовый, Стандартный, Премиум, Изолированный. Базовый, Стандартный, Премиум, Изолированный.
Требуется настройка Нет. Yes.
Размер резервной копии 30 GB. 10 ГБ, из которых 4 ГБ может быть связанной базой данных.
Связанная база данных Не выполнено резервное копирование. Начиная с 31.03.2028, пользовательские резервные копии в Azure App Service больше не будут поддерживать резервное копирование связанных баз данных.

Следующие связанные базы данных могут быть сохранены в резервной копии: SQL Database, Azure Database for MySQL, Azure Database for PostgreSQL, MySQL in-app. Обратите внимание, что Azure DB для MySQL - Гибкий сервер и Azure DB для PostgreSQL - Гибкий сервер не поддерживаются в пользовательских резервных копиях.
Storage account требуется Нет. Yes.
Частота резервного копирования Ежечасно, не настраивается. Настраиваемый.
Удержание 30 дней, не настраивается.

Дни 1-3: ежечасные резервные копии сохраняются.

Дни 4-14: сохраняется каждая третья почасовая резервная копия.

С 15 по 30 день: сохраняется каждое шестое почасовое резервное копирование.
0-30 дней или бессрочно.
Загружаемый Нет. Да, как объекты Azure Storage.
Частичные резервные копии Не поддерживается. Поддерживается.
Резервное копирование по виртуальной сети Не поддерживается. Поддерживается.

Восстановить резервную копию

Примечание

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

  1. В панели управления приложением в портале Azure выберите Резервные копии в левом меню. Страница Резервные копии перечисляет все автоматические и пользовательские резервные копии вашего приложения и отображает статус каждой из них.

    Скриншот, показывающий, как открыть страницу резервных копий.

  2. Выберите автоматическое или пользовательское резервное копирование для восстановления. Выберите ссылку Восстановить.

  3. Раздел Детали резервного копирования заполняется автоматически для вас.

  4. Укажите место восстановления в Choose a destination. Чтобы восстановить в новом приложении, выберите Создать новое под блоком App Service. Чтобы восстановить в новый слот развертывания, выберите Создать новый в поле Слот развертывания.

    Если вы выберете существующий слот, все данные в его файловой системе будут удалены и перезаписаны. Производственный слот имеет то же имя, что и имя приложения.

  5. Вы можете восстановить настройки вашего сайта в разделе Расширенные параметры.

  6. Select Restore.

Создать резервную копию по своему выбору

  1. Перейдите в панель управления приложениями в портале Azure. В левом меню выберите Резервные копии.

  2. В верхней части страницы Резервные копии выберите Настроить пользовательские резервные копии.

  3. В учетной записи хранилища выберите существующую учетную запись хранилища в той же подписке или выберите Создать новую. Повторите в Container.

    Чтобы создать резервную копию связанных баз данных, выберите Далее: Дополнительно>Включить базу данных, и выберите базы данных для резервного копирования.

    Примечание

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

    Внутренние базы данных MySQL всегда резервируются без какой-либо настройки. Если вы вручную создаете настройки для встроенных баз данных MySQL, например, добавляете строки подключения, резервные копии могут работать неправильно.

  4. Select Configure.

    После настройки учетной записи хранения и контейнера вы можете в любое время инициировать резервное копирование по запросу. Резервные копии по запросу сохраняются на неопределенный срок.

  5. At the top of the Backups pane, select Backup Now.

    Пользовательская резервная копия отображается в списке с индикатором прогресса. Если возникает ошибка, вы можете выбрать элемент строки, чтобы увидеть сообщение об ошибке.

Настройка пользовательских запланированных резервных копий

  1. На панели Настройка пользовательских резервных копий выберите Установить расписание.

  2. Настройте расписание резервного копирования по своему усмотрению, затем выберите Настроить.

Резервное копирование и восстановление связанной базы данных

Примечание

Пользовательские резервные копии с подключенными базами данных для App Service поддерживают только уровни Single Server базы данных Azure для MySQL и PostgreSQL. Поскольку уровни Single Server устарели, обновление связанных баз данных до Flexible Server может привести к сбоям в резервном копировании. Используйте встроенные инструменты резервного копирования баз данных, чтобы предотвратить потерю данных. Сервера MySQL и PostgreSQL в виде автономных установок (например, на виртуальных машинах) не затрагиваются выводом из эксплуатации уровня Single Server. Чтобы узнать подробности об окончании поддержки, см. MySQL Single Server retirement и PostgreSQL Single Server retirement.

Для резервного копирования и восстановления Гибких серверов, обратитесь к соответствующей документации по базе данных.

В пользовательские резервные копии могут входить связанные базы данных (за исключением случаев, когда резервное копирование настраивается через виртуальную сеть Azure). Чтобы убедиться, что ваша резервная копия включает связанную базу данных, выполните следующие действия:

  1. Убедитесь, что связанная база данных поддерживается.
  2. Создайте строку подключения, указывающую на вашу базу данных. База данных считается «связанной» с вашим приложением, если в конфигурации вашего приложения есть действительная строка подключения для нее.
  3. Следуйте инструкциям в разделе Создание специальной резервной копии, чтобы выбрать связанную базу данных на вкладке Дополнительно.

Чтобы восстановить базу данных, включенную в пользовательскую резервную копию:

  1. Следуйте инструкциям в Restore a backup.
  2. В Дополнительных параметрах выберите Включить базу данных.

Для получения информации по устранению неполадок см. Почему моя связанная база данных не создается резервная копия?.

Устаревание привязанных резервных копий баз данных

Начиная с 31.03.2028, пользовательские резервные копии Azure App Service больше не будут поддерживать резервное копирование связанных баз данных. Мы рекомендуем использовать встроенные средства резервного копирования и восстановления, предоставляемые каждой службой базы данных. Чтобы помочь пользователям подготовиться к этому изменению, команда App Service удалит возможность включать связанные базы данных в новых пользовательских конфигурациях резервного копирования согласно следующему расписанию:

  • Ноябрь 2025 – Удаление связанных баз данных MySQL и PostgreSQL
  • Апрель 2026 г. – Удаление связанных баз данных Azure SQL и SQL Server. Пользовательские резервные копии, которые уже включают связанные базы данных, будут продолжать включать эти базы данных до 31.03.2028, после чего связанные базы данных больше включаться не будут.

Резервное копирование и восстановление через виртуальную сеть Azure

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

Чтобы выполнять резервное копирование и восстановление через виртуальную сеть Azure:

  1. При настройке пользовательских резервных копий выберите создание и восстановление резервных копий через интеграцию с виртуальной сетью.
  2. Чтобы сохранить ваши настройки, выберите Настроить.

Для включения функции резервного копирования/восстановления через виртуальную сеть для слотов развёртывания, выполните необходимые действия отдельно для каждого слота:

  • Интеграция с виртуальной сетью включена для слотов развертывания или слот находится в среде App Service Environment версии v3.
  • Для слотов развертывания выбрана опция резервного копирования/восстановления через интеграцию с виртуальной сетью.

Если вы не видите флажок или если флажок отключен, убедитесь, что ваши ресурсы соответствуют требованиям.

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

Настройка частичных резервных копий

Частичные резервные копии поддерживаются для пользовательских резервных копий, но не для автоматических резервных копий. Иногда вам не хочется делать резервную копию всего в вашем приложении. Вот несколько примеров:

  • Вы настраиваете еженедельные резервные копии приложения, которое содержит статический контент, никогда не изменяющийся (например, старые блоги или изображения).
  • У вашего приложения более 10 ГБ контента. Это максимальный объем данных, который вы можете создать резервную копию за один раз.
  • Вы не хотите создавать резервные копии файлов журналов.

Чтобы исключить папки и файлы из будущих резервных копий, создайте файл _backup.filter в папке %HOME%\site\wwwroot вашего приложения. Укажите список файлов и папок, которые вы хотите исключить в этом файле.

Tip

Вы можете получить доступ к своим файлам, перейдя по адресу https://<app-name>.scm.azurewebsites.net/DebugConsole. Если появится запрос, войдите в свою учетную запись Azure.

Определите папки, которые вы хотите исключить из своих резервных копий. Например, допустим, вы хотите отфильтровать выделенную папку и файлы.

Снимок экрана, показывающий файлы и папки, которые следует исключить из резервных копий.

Создайте файл с именем _backup.filter и поместите в него предыдущий список, но удалите корневой %HOME%. Перечислите один каталог или файл на строку. Содержимое файла должно быть:

\site\wwwroot\Images\brand.png
\site\wwwroot\Images\2014
\site\wwwroot\Images\2013

Загрузите файл _backup.filter в каталог D:\home\site\wwwroot\ вашего сайта, используя FTP или любой другой метод. Если вы хотите, вы можете создать файл напрямую с помощью Kudu DebugConsole и вставить туда содержимое.

Запускайте резервное копирование как обычно: пользовательское по запросу или пользовательское по расписанию. Любые файлы и папки, указанные в _backup.filter, исключаются из будущих резервных копий.

Примечание

_backup.filter изменяет способ работы восстановления. Без _backup.filter, восстановление резервной копии удаляет все существующие файлы в приложении и заменяет их файлами из резервной копии. С _backup.filter, любое содержимое в файловой системе приложения, включенное в _backup.filter, остается без изменений (не удаляется).

Как хранятся резервные копии

После создания одного или нескольких резервных копий для вашего приложения, эти копии будут видны на странице Containers вашего аккаунта хранилища и вашего приложения. В учетной записи хранилища каждая резервная копия состоит из ZIP-файла, содержащего данные резервной копии, и XML-файла, содержащего описание содержимого ZIP-файла. Вы можете распаковать и просмотреть эти файлы, если хотите получить доступ к своим резервным копиям, не выполняя фактическое восстановление приложения.

Резервная копия базы данных приложения хранится в корневом каталоге .zip файла. Для SQL Database это файл BACPAC (без расширения файла) и может быть импортирован. Чтобы создать базу данных в Azure SQL Database на основе экспорта BACPAC, ознакомьтесь с Импорт файла BACPAC для создания базы данных в Azure SQL Database.

Предупреждение

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

Сообщения об ошибках

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

Ошибка Исправить
Не удалось получить доступ к хранилищу. Удалите и перенастройте расписание резервного копирования или перенастройте хранилище для резервных копий.
Размер веб-сайта и базы данных превышает лимит {0} ГБ для резервного копирования. Размер вашего контента составляет {1} ГБ. Исключите некоторые файлы из резервной копии или удалите часть базы данных из резервной копии и используйте вместо этого резервные копии, предлагаемые извне.
Произошла ошибка при подключении к базе данных {0} на сервере {1}: Аутентификация на хосте {1} для пользователя \<username> с использованием метода mysql_native_password завершилась неудачей с сообщением: Неизвестная база данных \<db-name>. Обновите строку подключения к базе данных.
Невозможно разрешить {0}. {1} (CannotResolveStorageAccount) Удалите расписание резервного копирования и настройте его заново.
Ошибка входа для пользователя {0}. Обновите строку подключения к базе данных.
Создание копии базы данных {0}({1}) вызвало исключение. Не удалось создать копию базы данных. Используйте административного пользователя в строке подключения.
Основной объект "\<name>" не может получить доступ к базе данных "master" в текущем контексте безопасности. Невозможно открыть базу данных "master", запрашиваемую при входе в систему. Вход не удался. Не удалось войти для пользователя \<name>. Используйте административного пользователя в строке подключения.
Произошла ошибка, связанная с сетью или конкретным экземпляром, при установлении соединения с SQL Server. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (Поставщик: Named Pipes Provider, ошибка: 40 - Не удалось установить соединение с SQL Server). Убедитесь, что строка подключения действительна. Разрешите исходящие IP-адреса приложения в настройках сервера базы данных.
Не удается открыть сервер "\<name>", запрошенный при входе в систему. Не удалось войти. Убедитесь, что строка подключения действительна.
Отсутствуют обязательные параметры для действительной совместной подписи доступа. Удалите расписание резервного копирования и настройте его заново.
Требуется SSL-соединение. Укажите параметры SSL и повторите попытку подключения. Подключение SSL к базе данных Azure для MySQL и базе данных Azure для PostgreSQL не поддерживается для резервного копирования баз данных. Вместо этого используйте встроенную функцию резервного копирования в соответствующей базе данных.

Как работают резервное копирование и восстановление в App Service Environments?

  • Автоматические резервные копии могут быть восстановлены в целевое приложение в самом App Service Environment, а не в другом App Service Environment.
  • Кастомные резервные копии могут быть восстановлены в целевом приложении в другой среде App Service, например, из App Service Environment v2 в App Service Environment v3.
  • Резервные копии могут быть восстановлены на целевое приложение, работающее на той же платформе ОС, что и исходное приложение.

Автоматизация с помощью скриптов

Вы можете автоматизировать управление резервными копиями с помощью сценариев, используя Azure CLI или Azure PowerShell.

Для примеров см.:

Часто задаваемые вопросы

Являются ли резервные копии инкрементными обновлениями или полными резервными копиями?

Каждый резервный снимок является полной офлайн-копией вашего приложения, а не его инкрементным обновлением.

Поддерживает ли Azure Functions автоматическое резервное копирование?

Автоматические резервные копии доступны для Azure Functions в выделенных (App Service) уровнях Базовый, Стандартный и Премиум. В автоматических резервных копиях не поддерживается для функциональных приложений в тарифных планах Consumption или Elastic Premium.

Что входит в автоматическое резервное копирование?

В следующей таблице показано, какое содержимое сохраняется в автоматическом резервном копировании.

Содержание Восстановлено?
Приложения Windows: Все содержимое приложения в каталоге %HOME%.
Приложения Linux: Все содержимое приложений в каталоге /home.
Пользовательские контейнеры (Windows и Linux): Содержимое в постоянном хранилище.
Yes
Содержимое пакета run-from-ZIP. Нет
Содержимое из любого настроенного хранилища Azure, например, из разделяемого хранилища Azure Files. Нет

В следующей таблице показано, какие конфигурации приложения восстанавливаются, когда вы выбираете восстановление конфигураций приложения.

Настройки Восстановлено?
Параметры нативного журнала, включая настройки учетной записи Azure Storage и контейнера. Yes
Конфигурация Application Insights Yes
Проверка здоровья Yes
Сетевые функции, такие как частные конечные точки, гибридные соединения и интеграция виртуальной сети Нет
Authentication Нет
Managed identities Нет
Пользовательские домены Нет
TLS/SSL Нет
Scale out Нет
Диагностика с использованием Azure Monitor Нет
Alerts and metrics Нет
Backup Нет
Связанные слоты развертывания Нет
Любая связанная база данных, которую поддерживает настраиваемая резервная копия Нет

Что включено в индивидуальную резервную копию?

Пользовательская резервная копия (резервная копия по требованию или по расписанию) включает все содержимое и конфигурацию, которые включены в автоматическую резервную копию, а также любую связанную базу данных, вплоть до максимально допустимого размера.

Каждая резервная копия содержит файл .zip с данными резервного копирования и файл .xml {siteName}-{dateTime}.xml, в котором перечислено содержимое, включая пользовательские домены. При восстановлении пользовательской резервной копии пользовательские домены из XML-файла будут добавлены в целевое приложение, если отсутствует конфликт DNS (т.е. домен доступен для привязки), и если у целевого приложения имеются другие пользовательские домены, помимо указанных в списке XML-файла, эти домены будут удалены.

При резервном копировании через виртуальную сеть Azure вы не можете выполнить резервное копирование связанной базы данных.

Почему моя связанная база данных не сохраняется в резервной копии?

Примечание

Пользовательские резервные копии с подключенными базами данных для App Service поддерживают только уровни Single Server баз данных Azure для MySQL и PostgreSQL. Поскольку уровни Single Server выводятся из эксплуатации, обновление связанных баз данных до Flexible Server может привести к сбоям в резервном копировании. Используйте штатные средства резервного копирования данных, чтобы предотвратить потерю данных. Серверы MySQL и PostgreSQL, работающие в автономном режиме (например, на виртуальных машинах), не затрагиваются выводом из эксплуатации уровня Single Server. Для подробной информации о прекращении поддержки, смотрите прекращение поддержки MySQL Single Server и прекращение поддержки PostgreSQL Single Server.

Для резервного копирования и восстановления гибких серверов см. соответствующую документацию базы данных.

Связанные базы данных резервируются только для пользовательских резервных копий, вплоть до допустимого максимального размера. Если превышен максимальный размер резервной копии (10 ГБ) или максимальный размер базы данных (4 ГБ), резервное копирование не удастся. Вот несколько распространенных причин, почему ваша связанная база данных не создается резервной копией:

  • Создание резервных копий для Azure Database for MySQL с поддержкой TLS не поддерживается. Если резервное копирование настроено, могут возникать сбои резервного копирования.
  • Резервное копирование базы данных Azure для PostgreSQL с поддержкой TLS не поддерживается. Если резервное копирование настроено, вы получаете сбои резервного копирования.
  • Базы данных MySQL в приложении автоматически создаются без какой-либо конфигурации. Если вы вручную настраиваете базы данных MySQL для приложений, например, добавляя строки подключения, резервные копии могут работать неправильно.

Что произойдет, если размер резервной копии превысит допустимый максимум?

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

Могу ли я использовать учетную запись хранилища с включенными функциями безопасности?

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

Как восстановить приложение в другом абонентском плане?

  1. Создайте индивидуальную резервную копию исходного приложения в контейнере Azure Storage.
  2. Скачайте резервный файл ZIP и файл метаданных XML на ваш локальный компьютер.
  3. Загрузите как файлы ZIP, так и XML в целевой аккаунт хранилища.
  4. На странице Резервные копии вашего целевого приложения нажмите Восстановить в верхнем меню.
  5. В разделе Подробности резервного копирования выберите Хранилище в качестве Источник. Выберите учетную запись хранения, в которую вы загрузили файлы резервного копирования.
  6. Нажмите Использовать файл в учетной записи хранения и выберите ZIP-файл для восстановления.
  7. Настройте оставшиеся параметры, как описано в Restore a backup. Подтвердите и начните процесс восстановления.

Как восстановить приложение в той же подписке, но в другом регионе?

Вы можете восстановить приложение в другом регионе в рамках той же подписки. Процесс следует тем же шагам, которые описаны в Восстановление из резервной копии. Убедитесь, что целевое приложение имеет доступ к резервному хранилищу исходного приложения. Процесс восстановления в портале Azure позволяет выбрать приложение в другом регионе, если оно остаётся в рамках одной и той же подписки.

Где хранятся автоматические резервные копии?

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

Как остановить автоматическое резервное копирование?

Вы не можете остановить автоматические резервные копии. Автоматическое резервное копирование сохраняется на платформе и не влияет на базовую версию приложения или его хранилище.