Articles of 高可用性

Biztalk 2009 logshipping与SQL 2008

我正在为Biztalk 2009数据库设置biztalk logshipping。 以下http://msdn.microsoft.com/en-us/library/aa560961.aspx文章,我正在做以下设置目标服务器上的biztalk logshipping: 通过以下方式启用即席查询: sp_configure 'show advanced options',1 go reconfigure go sp_configure 'Ad Hoc Distributed Queries',1 go reconfigure go sp_configure 'show advanced options',0 go reconfigure go 在目标服务器上的主服务器上执行LogShipping_Destination_Schema和LogShipping_Destination_Logic 跑: exec bts_ConfigureBizTalkLogShipping @nvcDescription ='',@nvcMgmtDatabaseName ='',@nvcMgmtServerName ='',@SourceServerName = null, – null表示此目标服务器恢复所有数据库@fLinkServers = 1 – 1自动将服务器链接到pipe理数据库 当我运行这个我收到以下错误: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. 经过一番调查,我发现了一些信息: 通常这个错误意味着没有configurationSQL Server服务主体名称(SPN),并且NTLM没有被用作authentication机制。 […]

群集文件系统如何避免竞争条件?

群集文件系统如何避免可能的竞争条件? 我试图掌握在Master-Master体系结构中使用集群文件系统。 我特别想到GlusterFS,所以对它的实现细节是值得欢迎的,但是我希望得到一个普遍的答案。

预测裂脑情况后的初选数量

我正在尝试使用http://www.drbd.org/users-guide/s-configure-split-brain-behavior.html中解释的自动拆分脑部恢复策略来避免分裂大脑的情况 如何预测我们参与的条件? 如何预测裂脑之后的初选数量? 这全是偶然吗?

单个接口上的多个IP地址 – 强制源IP地址

我有一个host A有两个不同的IP地址(比如10.0.0.1和10.0.0.3 )的接口eth1 。 .1是主机的标准IP, .3是故障转移IP,可以切换到另一台服务器( host B , 10.0.0.2 ),以实现HA目的。 通过/etc/network/interfaces设置10.0.0.1 ,通过Pacemakerpipe理10.0.0.3并通过ip addr add 。 我的问题是,当我尝试从host A连接到10.0.0.3提供的(本地)服务时,它也使用10.0.0.3作为连接的源地址。 如果故障切换IP切换到辅助节点( host B ),这显然不能工作。 现在的问题是,如果我能以某种方式指定10.0.0.1作为连接到10.0.0.3的源IP? ip route get 10.0.0.3显示10.0.0.3作为源地址可能是此行为的原因。

Tomcat Web应用程序高可用性

我已经设置了Apache-Tomcat集群(Ubuntu服务器),并且我使用了tomcat支持的集群技术和mod_jk,下面的链接清晰易懂。 我在我的局域网中做了这样的事情, three computers 1 as LB and other two as tomcat web servers ,一旦我对设置完全满意,我就想到实现这个function。 我跟着很多链接,我粘贴的链接是其中之一,我configuration在不同的物理机器上。 configuration是successful ,我觉得它很容易设置。 我检查了停止一个tomcat的networking服务器,它立即开始发送请求到另一个networking服务器。 据我所知,我很清楚,这种configuration支持HA和LB. 以下是我的Apache Tomcat集群详细信息: 1 Load Balancer(192.168.1.100) 2 web Servers(192.168.1.101, 192.168.1.102) On all the three servers, I installed apache2 & tomcat6 and configured tomcat to run on port 80 with mod_jk on all the servers. Load Balancer: […]

Tomcat7并行部署function:在生产服务器上使用它的经验?

我们正在研究Tomcat 7的function,以允许同时部署同一个webapp的多个版本: http://www.tomcatexpert.com/blog/2011/05/31/parallel-deployment-tomcat-7 http://www.javacodegeeks.com/2011/06/zero-downtime-deployment-and-rollback.html 我们的网站每天定期获得10-20,000个用户会话,其中不less是交易/有状态的webapps。 并行部署对于我们想要的来说似乎是完美的,但是我并没有真正听说过人们在服务器上使用它的经验。 如果你在生产中使用了tomcat 7的这个特性,那么到目前为止你是否有任何问题? 您是否需要对您的web应用程序进行任何更改才能使用此Tomcatfunction“发挥出色”?

如何在两台Linux机器之间进行负载平衡?

受堆栈溢出networking的启发,我现在痴迷于HAProxy并尝试自己使用它。 目前,每个HAProxy盒子都有两张网卡(好了,configuration了两张),我最多可以有4张,不确定是否需要自己的盒子进行pipe理。 在这两台机器上,后端一个(eth1)是一个专用IP,连接到networking服务器的交换机,面向前端(eth0)的公用互联网IP直接路由。 另外,我为eth0创build了一个名为eth0:0虚拟ip,它拥有第三个公共ip地址。 我只是想知道如何使用它来在负载均衡之间的多个Web服务器之间进行负载平衡,但是,我无法在两个HAProxy盒子之间进行负载均衡 – 它们似乎在争夺虚拟IP,但是,这似乎并不做个聪明的解决scheme 现在,通过使用虚拟共享IP地址,这个解决scheme似乎可以正常工作,而且确实给了我最大的正常运行时间,但是,这是正确的方法吗?还是有更智能的方法? 我一直在寻找其他的Linux软件包,比如keepalived,但是我现在只用了一个星期的Linux(服务器),而且是我理解的极限。 有没有人曾经这样做过,并且能够提供最大的正常运行时间?

SQL Server高可用性 – 使用MSCS进行镜像?

我正在考虑为我的SQL Server驱动的应用程序提供高可用性选项。 要求是: HA防止存储故障。 当其中一个数据库服务器正在进行软件更新(例如Windows Update / SQL Server服务包的计划中断)时的数据可访问性。 一定不要过多涉及硬件采购。 该应用程序是一个ASP.NET Web应用程序。 Web应用程序的用户拥有自己的数据库实例。 我见过两个主要选项:SQL Server故障转移群集和SQL Server镜像。 据我所知,SQL Server故障转移群集需要购买共享磁盘arrays,并且如果共享存储发生故障(因此文档build议在两个群集之间设置镜像),则不提供任何保护。 数据库镜像似乎是更便宜的select(因为它只需要两个数据库服务器和一个简单的见证框) – 但是我听说当你有大量的数据库时,它不能正常工作。 我正在开发的应用程序涉及给每个客户端自己的数据库为他们的应用程序 – 可能有数百个数据库。 由于我们有自动化系统,设置镜像是没有问题的。 我的最后一点是关于客户端连接的故障转移如何工作–SQL Server故障转移群集使用MSCS,这意味着群集对客户端不可见 – 在故障转移过程中连接尝试可能失败,但简单的重新连接将使其再次工作。 不过,据我所知,镜像要求客户端了解镜像的伙伴:如果客户端无法连接到主服务器,则会尝试从服务器。 我想知道如何在ASP.NET应用程序中的连接池工作 – 客户端连接故障切换是否意味着当连接池在每个连接上尝试主服务器时,可能会有2秒的时间(假设2000毫秒的TCP超时策略)暂停尝试? 我在某处读到,镜像可以在MSCS之上使用,这意味着客户端不需要知道镜像(所以在连接过程中不会有任何潜在的延迟,也不需要对客户端,甚至连接string) – 但是我很难得到这种方法的文档或白皮书。 但是,如果这是真的,那么最好的方法就是使用MSCS对客户端进行镜像(对于客户端无知和连接性能)。 …但是,这如何扩展到可能包含数百个镜像数据库的服务器实例呢?

改进SQL Server 2008中的自动故障转移scheme

我们将SQL Server 2008与主体,镜像和监视器服务器一起设置,镜像被同步并设置为自动故障转移。 我们最近发现,在主服务器上空间不足的情况下,尽pipe应用程序运行的每个查询都返回了一个错误,但它使用数据库使应用程序瘫痪,但并未导致故障切换: The transaction log for database 'XXXX' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases 我试图找出为什么故障转移没有发生。 是因为镜像/见证人仍然认为服务器已经启动,因为它正在响应ping和查询(所有这些都是有错误的)? 还是这是我们错误的configuration? 我们是否需要在应用程序层添加代码来检测这样的数据库错误并启动故障转移? 同时,我们正在改进我们的监控,以尽量避免磁盘空间问题,但我们仍然希望提高自动故障切换的可靠性。

不同子网上的IP故障转移

我有两个真正的服务器,在不同的子网上,每个服务器都有一个永久的IP地址,并且有一个故障切换IP,可以被任何一台服务器使用。 主机提供了一个API,可以将故障转移IP分配给任何服务器。 所以我需要在每台服务器上运行一个守护进程,这将监视本地服务器的运行状况,同时与另一台服务器上的对应端进行通信,这样两台服务器(或者只有一台其他失败)决定谁将获得故障转移IP(并运行一个脚本来告诉主机的API来适当地路由它)。 keepalived不能这样做,除非(据称)与威利Tarreau的单播补丁, 我已经尝试失败 。 另外,守护进程最好不要试图从networking接口取得或释放IP; 首选设置是两台机器的接口始终具有故障转移IP地址。 heartbeat可以做吗? 还有其他类似的程序可以吗? 我已经写了自己的守护进程,它确实工作正常,但是如果现有的程序可以做到,我认为没有理由维护它。