问题描述
备份网站时由于文件太大了,导致应用服务备份失败。如何解决呢?
问题分析
App Service (应用服务)的备份功能有10GB大小的限制,超过了是无法备份成功的并且该限制是无法扩大的。查看微软云的官方网站,备份功能还有以下限制和要求:
- 备份和还原功能要求应用服务计划处于标准层、高级层或隔离层 。
- 在与要备份的应用相同的订阅中,需要有一个 Azure 存储帐户和容器。
- 最多可备份 10 GB 的应用和数据库内容。 如果备份大小超过此限制,会出错。
- 不支持备份启用了 TLS 的 Azure Database for MySQL。 如果已配置备份,则会遇到备份失败。
- 不支持备份启用了 TLS 的 Azure Database for PostgreSQL。 如果已配置备份,则会遇到备份失败。
- 应用内 MySQL 数据库无需任何配置即可自动备份。 如果对应用内 MySQL 数据库进行手动设置,例如添加连接字符串,则备份可能无法正常工作。
- 不支持将启用了防火墙的存储帐户用作备份目标。 如果已配置备份,则会遇到备份失败。
解决办法
核心思想就是避开10GB的限制,减少需要备份的文件。
一:配置App Service的部分备份或者时排除不需要备份的文件
在应用的 D:\home\site\wwwroot
文件夹中创建一个 _backup.filter
文件。 指定要在此文件中排除的文件和文件夹列表。详见:https://docs.microsoft.com/zh-cn/azure/app-service/manage-backup#exclude-files-from-your-backup
二:手动下载文件到本地
1)如需要下载的文件过多,可以先通过tar命令进行压缩后下载(可直接在kudu中,点击文件右边的下载图标)
- 压缩当前目录命令:tar -cf testappservice.tar .
2) 使用FTP连接到App Service下载
参考官方文档的“使用 FTP/S 将应用部署到 Azure 应用服务”,同样的方式下载文件。
3)使用git clone把文件全部克隆到本地
- 在部署中心选择local git 保存,之后记录一下git clone url
- 运行下面的命令 uri为git clone uri : git clone https://xxx.scm.chinacloudsites.cn:443/xxx.git
附录一:使用命令【du -sh *】在kudu中查看wwwroot文件夹下文件的大小
附录二:App Service登录Kudu站点的方式
- 登录进当前应用服务的kudu站点,入口URL为:https://<yoursitename>.scm.chinacloudsites.cn/
- 在门户中登录Kudu站点(Azure门户:App Service -> Development Tools -> Advanced Tools -> Go)
参考资料
在 Azure 中备份应用 : https://docs.azure.cn/zh-cn/app-service/manage-backup
从本地 Git 部署到 Azure 应用服务 : https://docs.azure.cn/zh-cn/app-service/deploy-local-git
使用 FTP/S 将应用部署到 Azure 应用服务 : https://docs.azure.cn/zh-cn/app-service/deploy-ftp