AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 41952
Accepted
WhoIsNinja
WhoIsNinja
Asked: 2013-05-11 13:31:49 +0800 CST2013-05-11 13:31:49 +0800 CST 2013-05-11 13:31:49 +0800 CST

AlwaysOn Architecture - 用于创建开发环境的 SQL Server 2012?

  • 772

我在想,除了使用相同的架构设置 HADR 之外,是否可以以某种方式利用 SQL Server 2012 中的 AlwaysOn 架构来正确地为 DEV 和 QA 环境创建副本?

sql-server sql-server-2012
  • 3 3 个回答
  • 733 Views

3 个回答

  • Voted
  1. Best Answer
    Nathan Jolly
    2013-05-11T19:41:29+08:002013-05-11T19:41:29+08:00

    正如 Aaron Bertrand 在他的评论中提到的,AlwaysOn除了其(非常简洁的)冗余功能之外,仅旨在支持只读操作的卸载。

    如果您正在寻找的只是一个让您的开发人员可以在不给生产服务器增加负载的情况下检查生产数据的地方,那么它也许是一种可能有用的技术——但您可以通过日志传送实现几乎相同的事情。

    您可以从备用服务器构建您的开发环境——无论它使用 AlwaysOn、镜像还是日志传送——通过使用支持可写快照的存储设备,或可以通过 iSCSI 提供可写快照的服务器(例如ZFS 服务器)。但是,为此您可能需要额外的服务器,一些自由度来处理您的存储配置,并且可能需要有人在您尝试设置时依靠肩膀哭泣。

    NetApp 的 SnapManager 网站上的“克隆”小视频提供了有关其工作原理的有用概述——不幸的是,我似乎找不到非特定于供应商的很好的描述。

    • 5
  2. Aaron Bertrand
    2013-05-13T08:12:23+08:002013-05-13T08:12:23+08:00

    很难准确地确定您要在这里完成什么。如果“开发”和“QA”是指“我们只希望能够针对生产环境的精确副本运行只读查询”,那么可以肯定的是,您可以使用生产环境中的辅助/副本来完成此操作。(不过,“精确”程度取决于您的可用性组是设置为同步提交模式还是异步提交模式。)

    如果您希望在开发和/或 QA 中执行架构更改并在不干扰生产的情况下测试这些更改,则您不能这样做 - 辅助副本是只读的。也许您认为可用性组提供了某种负载平衡的合并复制灵丹妙药,但这不是它的用途。

    你应该如何进行取决于你想要完成什么。对于可用性组,您绝对应该关注 HA/DR 方面,因为这些是它旨在解决的问题。您的 QA/DEV 要求——同样,除非它们仅设计用于针对本质上是生产数据库的克隆来测试只读操作——将需要以其他方式得到满足。根据您的开发/QA 周期,您可以使用以下任何一种或某些组合:

    • 备份生产数据库并在开发/QA 中恢复它(当然你可以使用通过可用性组创建的备份),比如每晚。这可以让您的数据按您希望的频率更新。这通常意味着在模式/代码更改的情况下,您将需要暂停此过程,直到将这些更改部署到生产中(否则下一次备份将恢复您的更改)。
    • 在 Dev/QA 中保留一个“主干”,并可能 - 结合上述 - 将更改迁移到生产数据库的恢复副本(允许您针对相对现代版本的数据测试您的更改)。您还可以绕过备份/恢复,并在针对您的主干中的任何数据进行测试后,将架构/代码更改简单地应用于生产。这简化了部署过程,但为回归/边缘情况引入了更多机会。

    在任何一种情况下,迁移更改的部署部分都可能是您最大的障碍——有许多工具可以帮助解决这个问题;我在这里写了关于他们的博客。

    • 3
  3. DiGi
    2013-05-12T01:24:17+08:002013-05-12T01:24:17+08:00

    将数据库备份从生产服务器恢复到 QA 和 DEV 服务器是管理它的最简单方法。

    恢复后,您必须应用更改脚本。AlwaysOn 是“数据库克隆”,但对于 DEV 和 QA,您需要“生产 DB + DEV 更改”。

    • 0

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    授予用户对所有表的访问权限

    • 5 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve