Резервное копирование приложения в Azure

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

Сведения о восстановлении приложения из резервной копии см. в статье Восстановление приложения в службе приложений Azure.

Что входит в резервную копию

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

  • конфигурация приложения;
  • содержимое файла;
  • база данных, подключенная к приложению.

Функция архивации поддерживается для следующих решений базы данных:

Примечание

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

Требования и ограничения

  • Для использования резервного копирования и восстановления требуется, чтобы у плана службы приложений был уровень Стандартный, Премиум или Изолированный. Дополнительные сведения о масштабировании плана службы приложений для использования более высокого уровня см. в статье Масштабирование веб-приложения в службе приложений Azure. Уровни Премиум и Изолированный позволяют создавать большее количество ежедневных резервных копий по сравнению с уровнем Стандартный.
  • Для архивации требуется учетная запись хранения Azure и контейнер в той же подписке, что и приложение, для которого вы хотите создавать резервные копии. Дополнительные сведения об учетных записях хранения Azure см. в статье Общие сведения об учетной записи хранения.
  • Резервное копирование может доставлять до 10 ГБ содержимого приложения и базы данных, до 4 Гбайт, которое может быть резервной копией базы данных. Если размер резервной копии превысит этот лимит, отобразится сообщение об ошибке.
  • Резервное копирование базы данных Azure с поддержкой TLS для MySQL не поддерживается. Если настроено резервное копирование, будут возникать сбои резервного копирования.
  • Резервное копирование базы данных Azure для PostgreSQL с поддержкой TLS не поддерживается. Если настроено резервное копирование, будут возникать сбои резервного копирования.
  • Базы данных в приложении MySQL автоматически создают резервные копии без любой настройки. Если вы вносите параметры вручную для баз данных в приложении MySQL, например для добавления строк подключения, резервные копии могут работать неправильно.
  • Использование учетной записи хранения с включенным брандмауэром в качестве места назначения для резервных копий не поддерживается. Если настроено резервное копирование, будут возникать сбои резервного копирования.
  • Использование учетной записи хранения с включенной частной конечной точкой для резервного копирования и восстановления не поддерживается.

Создание резервной копии вручную

  1. На портале Azure перейдите на страницу своего приложения и выберите Резервные копии. Откроется страница Резервные копии.

    Страница резервных копий

    Примечание

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

  2. На странице Архивация выберите Архивация не настроена. Щелкните здесь, чтобы настроить архивацию для приложения.

    Щелкните "Настроить".

  3. На странице Конфигурация архивации щелкните Хранилище: не настроено, чтобы настроить учетную запись хранения.

    Снимок экрана: раздел "Хранилище резервных копий", где выбран вариант "Хранилище не настроено".

  4. Выберите расположение резервной копии, щелкнув Учетная запись хранения > Контейнер. Эта учетная запись хранения должна принадлежать к той же подписке, что и приложение, резервную копию которого вы собираетесь создать. При необходимости на соответствующих страницах можно создать новую учетную запись хранения или новый контейнер. Закончив, щелкните Выбрать.

  5. На странице Конфигурация резервного копирования, которая осталась открытой, вы можете настроить резервное копирование базы данных, а затем выбрать базы данных, которые необходимо включить в резервные копии (База данных SQL или MySQL) и щелкнуть ОК.

    Снимок экрана: раздел "Резервное копирование базы данных" с областью для выбора "Включить в резервную копию"

    Примечание

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

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

  6. На странице Конфигурация архивации нажмите кнопку Сохранить.

  7. На странице Резервные копии щелкните Архивация.

    Кнопка создания резервной копии

    Во время процесса архивации отображается сообщение о ходе выполнения.

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

Настройка автоматического резервного копирования

  1. На странице Конфигурация архивации для параметра Архивация по расписанию установите значение Вкл.

    Включение автоматически создаваемых резервных копий

  2. Настройте расписание резервного копирования и нажмите кнопку ОК.

Настройка частичной архивации

Иногда не нужно создавать резервную копию всего приложения. Вот несколько таких случаев.

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

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

Примечание

Размер отдельных баз данных в резервной копии не может быть больше 4 ГБ. Общий размер резервной копии не может быть больше 10 ГБ.

Исключение файлов из резервной копии

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

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

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

Папка с изображениями

Создайте файл _backup.filter и поместите в него приведенный выше список, при этом удалив D:\home. В одной строке указывайте один каталог или файл. В результате содержимое файла будет выглядеть так:

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

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

Выполните архивацию привычным для вас способом — вручную или автоматически. Теперь любые файлы и папки, которые указаны в _backup.filter, будут исключены из будущих архиваций, инициированных по расписанию или вручную.

Примечание

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

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

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

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

Резервная копия базы данных приложения хранится в корне ZIP-файла. Для Базы данных SQL это файл BACPAC (без расширения), который можно импортировать. Сведения о создании базы данных в Базе данных SQL Azure с использованием экспорта BACPAC см. в статье Импорт BACPAC-файла для создания базы данных в Базе данных SQL Azure.

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

Изменение любого из этих файлов в контейнере websitebackups может привести к повреждению резервной копии и сделать восстановление из нее невозможным.

Устранение неполадок

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

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

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

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

Примеры см. в разделах:

Next Steps

Сведения о восстановлении приложения из резервной копии см. в статье Восстановление приложения в службе приложений Azure.