Questions tagged «high-availability»

高可用性技术掩盖了硬件或软件故障的影响,从而使用户和应用程序的停机时间最小化。

2
当数据“自然可分区”时,跨机器对PostgreSQL进行分区的现代方法是什么?
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 在进入“ NoSQL”领域几年后,现在我遇到了一个本质上非常“关系”的问题。今天,我看到的数据存储区与以往完全不同。诸如Riak之类的事情以一种无法忍受的单点故障,“需要维护的停机”之类的方式宠坏了我。当然,(或者我希望),我还没有完全失去理智。这是一个个人项目,尚未(或尚未)有很高的要求。 大多数分片解决方案都没有给我我想要的东西(至少乍一看),可能是因为我的问题很“容易”解决。至少在概念层面(忽略RDBM本身带来的限制)。 我有少量的“共享”数据,可以自由复制。它没有硬一致性的要求。可以将其存储在类似发电机的数据库中,并且可以无限扩展。但是,如果可能的话,我仍然想使用一个数据库。 我有很多“每用户”数据。那就是-很多用户,每个用户拥有绝对合理大小的数据,确实适合存储在单个PostgreSQL节点上。我们正在谈论的最多是数千条记录。 我永远不需要查询跨用户,也不需要跨用户原子性。 这听起来非常容易实现。至少当我用“ NoSQL眼睛”看时。 这是我幼稚的入门想法: 在极端情况下,我可以将整个用户序列化为Riak中的单个键/值。当然,对数兆字节的数据进行持续的反序列化会很慢,这就是我考虑使用PostgreSQL的原因。很多Riak K / V都是不行的,因为我需要每个用户数据内的原子性/事务性。 我可以为每个用户使用一个SQLite数据库,并使用GlusterFS之类的文件来实现冗余/可用性。如果我无法使用PostgreSQL找到同样好的东西,这可能就是我要选择的解决方案。优点:可以很好地缩小/放大比例;缺点:我比SQLite更喜欢PostgreSQL的类型和严格性 因此,理想情况下,我将从PostgreSQL分片解决方案中请求什么: 自动在每个用户的数据(在不同的计算机上)周围保留几个副本。能够按用户/分片动态切换主节点(如果先前的主节点出现故障)。 通过添加/删除服务器节点,可以动态放大/缩小规模。通常就像Riak一样能够做到。 不需要我的应用程序知道与哪些节点以及何时与之对话。

2
是否有每个SQL Server版本的联机操作的完整列表?
当我们即将更改5TB数据库中的一些大表时,我发现自己需要一个可以在线执行的操作的列表,并且这些操作要求在运行时保持完全锁定。理想情况下,该列表还将包含有关哪些语句需要SCH-M锁在最后提交的信息。 虽然我在Microsoft时就了解了其中的大多数知识,但令我感到惊讶的是,由于它们是从SQL Server 2005一直发展到2014 CTP的,因此找不到公开的在线操作列表。 有人有这样的列表吗?如果没有,我可能决定创建它。

3
使用HAProxy和PGBouncer的PostgreSQL高可用性/可伸缩性
我有一个Web应用程序的多个PostgreSQL服务器。通常,一个主机和多个从机处于热备用模式(异步流复制)。 我使用PGBouncer进行连接池:在连接到本地主机上的数据库的每台PG服务器(端口6432)上安装了一个实例。我使用事务池模式。 为了在从属服务器上平衡只读连接的负载,我将HAProxy(v1.5)与conf差不多使用: listen pgsql_pool 0.0.0.0:10001 mode tcp option pgsql-check user ha balance roundrobin server master 10.0.0.1:6432 check backup server slave1 10.0.0.2:6432 check server slave2 10.0.0.3:6432 check server slave3 10.0.0.4:6432 check 因此,我的Web应用程序连接到haproxy(端口10001),该端口在每个PG从站上配置的多个pgbouncer上进行负载平衡连接。 这是我当前架构的表示图: 这样可以很好地工作,但是我意识到有些实现方式大不相同:Web应用程序连接到单个PGBouncer实例,该实例连接到HAproxy,后者在多个PG服务器上实现负载平衡: 最好的方法是什么?第一个(我当前的一个)还是第二个?一种解决方案比另一种解决方案有什么优势? 谢谢

5
SQL Server是否等同于Oracle RAC的功能?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 我做了一些谷歌搜索,比几年前还没有找到这个问题的答案,所以我想问一下。Oracle的RAC功能可为读写事务提供负载平衡,并且可在不停机的情况下实现横向扩展和高可用性(至少据我所知-我们将部署第一个使用RAC的数据库,因此,看看效果如何)。 是否提供任何提供等效功能的SQL Server功能集(或您可以在其上安装的第三方组件)?我们一直使用Windows群集,在该群集中,故障转移事件会导致大约20-30秒的SQL停机时间-始终可以忍受,但并不理想。现在,借助SQL 2012中的AlwaysOn,SQL Server将其缩短到大约15秒,并增加了只读-辅助数据库的概念,但是它们仍然要求通过单个连接点阻塞写事务(由于许多事务都需要处理,因此大大改进了)只是阅读,但仍然不是真正的负载平衡),并且在节点故障或需要打补丁的情况下,仍然存在停机时间。 我想这只是出于好奇-我觉得这是SQL Server落后于Oracle的唯一领域(至少在我个人使用的功能中)。我想看看是否有任何选择可以弥补这一差距,并在我们等待添加Microsoft的等效功能时(也许在SQL 2014/2015中)改善我们自己的SQL Server部署?


2
架构更改会“破坏”可用性组,还是透明处理?
我的组织计划采用SQL Server 2012可用性组,并且我试图了解它将对我们的应用程序升级过程产生什么影响(如果有)。 我们每8周发布一次应用程序更新,任何发布都可能包含架构更改和/或数据迁移。 我想了解的是HA / DR解决方案是否透明地处理架构更改(新列,索引添加到第二级),还是在每个实例上创建架构然后重新打开Always On所需的手动干预。 我假设的数据迁移部分是透明处理的,但也想确认一下。 我想我也在做出一个笼统的假设,即基于可用性组配置的这些行为也没有差异,这可能也是错误的。请告诉我。 简而言之; 在我的应用程序的任何给定发行版中,我都可以通过向表中添加列来更改非常大的表(10s至1亿亿条记录)。一些列可能是“ net new”的,因此它们可以利用企业在线模式更改功能。其他列可能是对现有列的重构(FullName被拆分为FirstName和LastName),并且将对表中的每一行运行迁移以填充这些字段。这些行为是否需要DBA更改AlwaysOn配置,或者默认情况下会进行处理,并且所有辅助节点都“免费”获得DDL和DML语句? 感谢您的澄清。


2
PostgreSQL的高可用性
我是PostgreSQL数据库的新手。最近,我们的开发人员需要对我们的系统进行一些升级。 因此,我们计划实现某种方法以实现数据库故障转移。 根据我在此处的 Postgresql Wiki的阅读,我们正在尝试实现热备用或热备用。所以我的问题是: 它们之间的主要区别是什么? 哪一个更好? 我们还有其他方法可以考虑在Postgres数据库中实现高可用性吗?

2
可用性组可以代替事务复制吗?
我一直在研究SQL Server 2012的新功能,以及它如何帮助解决当前的问题。 当前,我们使用SQL Server 2008 R2,并通过事务复制将两个OLTP服务器的数据库复制到单个报告服务器。然后,我们使用这些复制的DB进行报告。 我对SQL Server 2012和可用性组是否可以替代它感兴趣-因此,我将使用新的可用性组并将这两个OLTP服务器的数据库镜像到报告服务器,而不是事务复制,在该服务器上,报告将能够执行访问只读副本。 我不确定这是否会奏效,甚至根本不会奏效。 我想摆脱复制,因为它会导致我的部署策略出现问题(使用VSDBCMD.exe)。我还想摆脱大型数据库上复制重新初始化的延迟。 有人对此有任何好的例子或经验吗?是否可以按照较低版本中的常规镜像将可读副本从多个服务器镜像到单个服务器? 最初是在这里问到的:https : //stackoverflow.com/questions/10415225/mirroring-and-availability-groups-in-sql2012对不起,我认为我还不能迁移问题。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.