数据库架构更改时 Azure 无缝升级

2023-11-23

假设我有一个生产部署和临时部署,两者都使用自己的 (SQL Azure) 数据库。如果暂存中的模式已更改并且需要部署到生产中,是否有一种定义的方法可以在生产数据库上实现数据库升级(无需停机)?

例如如果我交换 VIP staging 生产(同时以某种方式自动更改连接字符串),自动升级 sql azure 数据库的最佳流程是什么。

我的想法是发现 RoleEnvironmentChanging 中的环境变化(尽管不确定 VIP 交换是否会触发 RoleEnvironmentChanginng),然后针对未来数据库(即 prod)运行 sql 脚本,但是我需要确保该脚本是仅运行一次,将会有多个实例转换。


因此,您有具有自己的 SQL Azure 数据库的生产部署和具有自己的 SQL Azure 数据库的临时部署。在这种情况下,两个应用程序的连接字符串都指向两个不同的数据库。

您的第一个要求是在交换部署或执行某些操作时动态更改数据库架构,我对此设计有以下担忧:

  1. 如果您在角色中编写任何代码来执行“一次且仅一次”操作,则不能保证这种情况只会发生一次。它会发生多次,具体取决于多种情况,例如

    1.1 在任何情况下,您的虚拟机都需要由系统重新映像,并且此代码将执行与上次重新映像期间完全相同的操作

    1.2 您可以通过某些外部密钥的某些注册表方法来保护它在角色启动或VM启动时不会发生,但有完整的证明机制不会发生。

  2. 因此,我建议当您准备好交换部署时,您可以:

    2.1 运行脚本以更新到与生产相关的 SQL Azure 架构(这不会影响应用程序下载,因为它没有被触及,但是当您的数据库架构更新时,您可能会更好地知道它如何影响您的应用程序)

    2.2 更改暂存部署中的配置以指向生产 SQL Azure(这根本不会导致任何生产应用程序停机)

    2.3 交换部署(这也不会导致应用程序停机)

因此,即使您手动更新数据库架构,然后交换部署,除了数据库更新架构所花费的时间之外,也不会出现明显的停机时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库架构更改时 Azure 无缝升级 的相关文章

  • 将新的 SQL Azure 层与旧层进行比较 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 既然 Microsoft 提供了新的 SQL Azure 服务级别 基本 标准 高级 我们正在尝试弄清楚它们如何映射到现有服务级别 Web
  • 如何在 Microsoft Azure Function 中创建类?

    可能这是一个错误的问题 但我需要创建一个模型 类并在天蓝色函数中访问相同的模型 类 我无法找到如何创建课程 类可以内联创建 因为它通常会在常规 C 项目中定义类 这是一个例子 https github com Azure azure web
  • 如何在没有 user_impersonation OAuth2Permission 的情况下创建新的 Azure 应用程序注册?

    我想知道 Azure 专家中是否有人可以澄清New AzureADApplication https learn microsoft com en us powershell module azuread new azureadapplic
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • Azure Active Directory - 自定义策略错误

    我已按照此处提供的指南在 Azure AD B2C 中设置了自定义策略 https learn microsoft com azure active directory b2c active directory b2c setup sf a
  • 如果警告数量超过一定限制,AzureDevOps 构建管道将失败

    我热衷于不让项目质量失控 我知道在某些情况下警告可能有意义 但我担心警告的数量会随着时间的推移而增加 我有一个 Azure DevOps 构建 门控提交 管道 我只想允许 10 个警告 以便在某些时候开发人员必须解决他们的警告 有没有办法对
  • msal.js 访问令牌中的自定义声明

    我使用 msal js 保护了我的 Angular 7 应用程序 我创建了一个自定义策略 该策略返回 id token 和 access token 中的自定义声明类型 为了实现这一目标 我一直在遵循本教程 https learn micr
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 在 azure blob 存储中就地创建 zip 文件

    我将文件存储在 Blob 存储帐户内的一个容器中 我需要在第二个容器中创建一个 zip 文件 其中包含第一个容器中的文件 我有一个使用辅助角色和 DotNetZip 工作的解决方案 但由于 zip 文件的大小最终可能达到 1GB 我担心在进
  • 指定的CGI应用程序遇到错误,服务器终止了进程

    我在 azure 上托管一个 asp net 5 应用程序 代码是为 beta8 编译的 该应用程序在本地环境以及当我在 azure 网站上发布代码时运行良好 我收到一个常见错误 指定的 CGI 应用程序遇到错误 服务器终止了该进程 我能够
  • 无法在 Mac OS X 上 rdp 到 Azure

    我正在尝试从 Mac OS X 远程桌面到 Azure 实例 但找不到允许我执行此操作的工具 地址和用户名很好 但客户端似乎都没有能力包含实例信息 到目前为止 我已经尝试过 Microsoft RDC 和 CoRD 但没有成功 有人在 Ma
  • Azure Functions 门户错误 - 函数运行时无法启动

    我有一个 VS 2017 C 开发的 Azure Function App 使用 VS 2017 发布机制部署在消费计划上 所有功能均由定时器或服务总线触发 我在 Azure 门户中看到运行状态 并且功能似乎正在运行 例如将行写入 SQL
  • 基于生产的 Azure SQL 数据库沙箱

    我有一个大型 Azure Sql 数据库 我需要向团队提供一个沙箱 它是数据库的副本 但允许他们创建 sql 对象 沙箱中的数据需要与生产保持同步 我使用了弹性查询 但是性能并不理想 我查看了数据同步 但公司要求 AD 身份验证 定期恢复生
  • 如何检查 SQL Server 数据库的 Azure 定价层更改历史记录?

    两个月前 我创建了一个具有 S0 定价层的 AZURE SQL 数据库 但不知何故 同一数据库的定价等级突然升级到 P15 持续 10 天 然后再次降级到 S0 我想查一下这是何时以及如何发生的 有什么方法可以从 Azure 门户或使用任何
  • Azure 媒体服务播放器

    我觉得这是一个非常愚蠢的问题 但我的研究告诉我我必须创建自己的播放器 真的吗 我有一个来自 Azure 媒体服务的链接 发布 URL 如下所示 http streamvideotest streaming mediaservices win
  • Azure Web 角色中的网站项目

    我正在研究一个新的 ASP Net 项目 我们希望将其托管在 Windows Azure Web 角色中 该项目的技术要求之一是利用 ASP Net 的完整预编译选项 不可更新 单页程序集 Web Site项目模型 与 ASP Net 相反
  • 如何仅将 dist 文件夹部署到 azure 网站?

    我的 azure 网站项目中有 src 文件和 dist 文件夹 project src dist 默认行为上传项目内的所有文件 即 src 和 dist website src dist 我想保持网站干净 只包含 dist 文件 webs
  • Azure 表存储分区键

    两个有些相关的问题 1 是否有办法获取表实体所在服务器的ID 2 使用 GUID 能否为我提供最佳的分区键分布 如果没有 那又会怎样呢 几周来我们一直在为表存储性能而苦苦挣扎 简而言之 这确实很糟糕 但我们很早就意识到使用随机分区键会将实体
  • 带有 CosmosDBTrigger 的 Azure 函数似乎不是由 upsert 触发的

    我是第一次使用 Azure Functions 我正在尝试编写一个简单的函数来响应更改或添加到 CosmosDb 集合中的文档 我写的函数如下所示 FunctionName ChangeLog public static void Run
  • 如何结合 AD B2C(MSAL) 和 CosmosDB

    我在我的 Xamarin 表单应用程序中使用 appcenter Auth 和 Data 但微软正在关闭这些服务 所以我现在需要自己做 Atm 这两个允许我使用 ADB2C 验证我的用户 然后授予他们访问 Cosmos 数据库中自己和共享内

随机推荐

  • 如何在 iTextSharp 中将 PDF 转换为文本文件

    我必须从 PDF 文件中检索文本 但使用下面的代码我只得到空文本文件 for int i 0 i lt n i pagenumber i 1 filename pagenumber ToString while filename Lengt
  • 如何在 imacros 中使用 JavaScript?

    我不知道如何在 JavaScript 中使用 imacros 我查看了他们的帮助 在 Stack Overflow 上看到了无数的例子 但不知道缺少什么 任何地方都没有明确解释 这是我尝试过的 使用他们的帮助文件中解释的示例 http wi
  • 如何防止 FileUpload 控件在回发时被清除? [复制]

    这个问题在这里已经有答案了 我在使用 FileUpload 控件时遇到了一些问题 想知道是否可以获得一些帮助 在我的页面上 我有一个 FileUpload 控件和一个下拉列表 因此 用户浏览到他们想要的文件 然后从下拉列表中选择一个选项 这
  • Google Drive API 如何找到文件的路径?

    我试图在使用 Google Drive API 获取文件列表时找到文件的路径 现在 我可以获取文件属性 当前仅获取校验和 id 名称和 mimeType results globalShares service files list pag
  • getWindowVisibleDisplayFrame() 在 Android 2.2、2.3 中给出不同的值(但不是 2.3.3)

    我有一个Activity它使用 getWindow getDecorView getWindowVisibleDisplayFrame rectangle 确定可用的屏幕空间并决定放置图像的位置 单击硬件 后退 按钮离开后返回活动Activ
  • hibernate @ManyToMany 双向急切获取

    我有一个我认为应该很常见的问题 但我找不到答案 我有 2 个对象 组和用户 我的课程看起来像这样 class Group ManyToMany fetch FetchType EAGER List
  • 使用 Rcpp 在 R 包中添加外部库

    我正在尝试开发一个 R 包 它使用Sundials用于求解微分方程的 C 库 为了不让用户安装该库 我将该库的源代码放在我的包中 我已将库中的所有头文件放入 inst include sundials 2 6 2和 c文件在src sund
  • 如何使用 QTextEdit 结束行

    我正在尝试创建QTextEdit有一些文本 在这段文本中我有行尾字符 n 但它不被接受QTextEdit对象 整个文本显示 没有任何中断 有什么理由吗 如果您使用的是 Qt 4 3 或更高版本 那么您可以使用 您可以使用以下命令关闭富文本编
  • 如何创建 dotnet core 单个可执行文件

    我想将我的 dotnet core 项目配置为编译为单个可执行文件 该项目与使用生成的项目类似dotnet new version 1 0 0 buildOptions debugType portable emitEntryPoint t
  • 为什么使用 QuantifiedConstraints 指定类型类的子类还需要子类的实例?

    我正在尝试多种无标签编码Free LANGUAGE PolyKinds LANGUAGE TypeSynonymInstances LANGUAGE TypeFamilies LANGUAGE Rank2Types LANGUAGE Fle
  • 如何从文本输入将锚标记添加到 URL

    我希望能够在评论字段中获取用户输入的文本并检查 URL 类型表达式 如果存在 则在显示评论时添加锚标记 到 url 我在服务器端使用 PHP 在客户端使用 Javascript 带有 jQ uery 所以我应该等到 URL 显示之前才检查它
  • 对 XML 模式进行版本控制的最佳实践是什么?

    我经常需要为不同的基于 XML 的导入例程设计 XML 模式 很明显 XML 模式会随着时间的推移而发展 或者它们可能包含需要修复的错误 因此捕获模式的版本并拥有某种机制来绑定特定版本非常重要 目前我有两种情况 该错误是在架构中发现的 并且
  • 将 2D 数组组合到 3D 数组

    你好 我有 3 个 numpy 数组 如下所示 gt gt gt print A 1 0 0 3 0 0 5 2 0 2 0 0 1 2 1 gt gt gt print B 5 9 9 37 8 9 49 8 3 3 3 1 4 4 5
  • 确定浮动元素中的换行位置

    假设我有六个 div 容器内的元素 div 这六个 div 中的每一个都是一个正方形并且具有 CSS 样式float left应用 默认情况下 当它们到达容器的边缘时 div 他们会包裹起来 现在 我的问题是 使用Javascript 是否
  • 实现可扩展性的最佳数据访问范例是什么?

    微软提供了许多不同的数据访问选项 哪一种最适合可扩展的应用程序 Linq 我们应该使用 Linq 吗 这看起来确实很简单 但如果您了解 SQL 它确实会有帮助 我还听说您无法使用 Linq 在 ASP NET 中运行异步查询 因此我想知道它
  • 如何使用 BeautifulSoup 获取选项文本

    我想使用 BeautifulSoup 来获取以下 html 中的选项文本 例如 我想获取 2002 12 2003 12 等
  • 使用Python/PIL裁剪图像的非对称区域

    有没有办法剪掉non使用 Python PIL 绘制图像的矩形区域 例如在这张图片中 我想排除所有黑色区域以及塔 屋顶和电线杆 http img153 imageshack us img153 5330 skybig jpg 我猜是图像路径
  • 函数模板可以用作高阶函数调用中的一等公民吗?

    将函数模板作为参数传递给另一个函数模板总是有点棘手 通常 人们必须创建一个 lambda 对象来调用原始函数 Example template
  • 在 Swift 中实现哈希组合器

    我正在延长一个struct符合Hashable 我将使用DJB2哈希组合器来完成此操作 为了使编写其他东西的哈希函数变得容易 我想扩展Hashable协议 以便我的哈希函数可以这样写 extension MyStruct Hashable
  • 数据库架构更改时 Azure 无缝升级

    假设我有一个生产部署和临时部署 两者都使用自己的 SQL Azure 数据库 如果暂存中的模式已更改并且需要部署到生产中 是否有一种定义的方法可以在生产数据库上实现数据库升级 无需停机 例如如果我交换 VIP staging 生产 同时以某