楼上的斑竹说的全面啊,我也来凑凑热闹:数据库作为信息系统ha规划的一个非常重要的一个节点,在整个系统遇到问题时,第一想到的必然是dba[经常是数据库连接失败等错误原因],在整个基础架构产品层,dba不得不花大量的时间和精力去理清应用服务器,缓存服务器,中间件服务器,文件服务器,存...
显示全部楼上的斑竹说的全面啊,我也来凑凑热闹:
数据库作为信息系统ha规划的一个非常重要的一个节点,在整个系统遇到问题时,第一想到的必然是dba[经常是数据库连接失败等错误原因],在整个基础架构产品层,dba不得不花大量的时间和精力去理清应用服务器,缓存服务器,中间件服务器,文件服务器,存储,网络等节点,整个系统的可用性可以说是各个节点的可用性的乘积。数据库服务器承载着IT系统的数据,并提供数据访问服务,数据库HA的重要性不言而喻。
还是老几样,首先考虑数据库的备份恢复机制,确保这套策略有效并得到经常性的演练,dba甚至被需要闭着眼睛就能做无误的备份恢复操作,有些可能要求在任何时间段。根据应用系统的特点和数据库的大小,及考虑其他综合因素【如备份时间窗口,网络存储资源等】,选择不同的备份策略,当然这个备份策略主要还是要根据恢复策略来制定的。超过10T的数据仓库系统建议开启归档日志,各表空间根据数据特性和刷新频率制定不同的备份策略,根据需要做好数据库备份,dba守则第一条就是要有备份。目的还是简单一个:万一出事时尽快恢复,提升数据库的可用性。
第二,根据企业it预算,可以选择服务器ha,即操作系统级别的ha,在机器硬件和系统运维期间继续提供系统服务,这个的重要性可就不用说了。虽然存储存在一定的数据孤岛。前不久我们的一台595更换换内存,oltp系统做了ha在计划内直接就切换出去了,否则又得是好几个小时停止提供服务。当然更能起作用的是通过心跳机制【磁盘、串口、网络,不建议第三者单独使用,否则ip协议失效就无法监测了】进行自动切换,ha到备机也是件容易的事情。
第三,上面一条提到了数据孤岛,为了解决这个问题,我们还可以推荐db级别的ha,比较成熟的产品有ibm的hadr[特别是v9.7以后备机可读特性在一定方面提升了系统的利用率,可以承载一定的数据读负载]。另外oracle的Standby/Data Guard方案也是值得考虑的,如果你用的oracle数据库产品。
第四,数据级别的ha。其实目前很多系统采用的都是这种方式的ha,通过数据复制的方式来提供数据库的可用性。适用于db2的产品就有如sql复制,Q复制,CDC复制等,oracle 的GoldenGate,sysbase和sql server等数据库也有相应的功能,这里就不一一介绍了。运用的比较好的当然还是各类灾备数据中心,实现了单活/双活。当然除了产品,更常见的是采用etl工具/人工开发的etl程序来实现,通过作业调度来进行数据的复制。
思路有点跟着macrozeng斑竹跑了,呵呵。
数据库这个节点做了ha,其他节点的ha也是蛮重要的,如应用服务器,缓存服务器,中间件服务器,文件服务器,存储,网络等节点。除了存储由于成本原因,可能只能有部分系统能做之外,其他都应该好好下考虑ha。
另外说到ha,除了像楼上说的oracle的rac和ibm的purescale,另外不得不提到syabase的ha方案:1.双机standby,主备。2.双机HA,双活互备,数据不共享。3、多机Cluster,最多64个节点的集群,共享数据,负载均衡,节点之间通过逻辑Cluster的方式设置备份以及应用级别。说道这里,其实人家sybase的东西做的不差的,可惜被sap收购了。
收起