ArcGISer理解RAC、ASM、磁盘阵列、双机热备等

来源:互联网 时间:1970-01-01

对于经常与服务器、数据库打交道的DBA来说,RAC、ASM等标题中列举的名词都非常熟悉,但是对刚刚接触人来说,这些概念可能会比较迷茫,今天我就以我自己的理解给大家探讨一下。首先说明一下,我不是专业的DBA,也不是专业的硬件工程师,我也不会在原理上说些什么(其实也不会),只是想通过这篇文章让大家对这些名词有一个认识,知道是做什么的就可以了。

磁盘阵列

  1. 磁盘阵列(Redundant Arrays of Inexpensive Disks,RAID),有“价格便宜具有冗余能力的磁盘阵列”之意。原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。  

其实很好理解,我们平常使用的台式计算机或者笔记本都有一个硬盘,其实可以理解为一块磁盘,我们的数据都存储在该硬盘上,每当我们打开一个东西,或者编辑一个东西,就需要进行相关的IO读写,我们的磁头就在不停工作,我们可以看到硬盘灯不停的闪烁。那么RAID,就是有N个磁盘,叠加到一块儿,但是这些叠加不是简单的1+1=2,而是在技术上有相关的配置,RAID技术主要包含RAID 0~RAID 50等数个规范,它们的侧重点各不相同。

那么对我们GIS来说或者ArcGIS应用来说这个磁盘阵列有什么用呢?

我们以前在博客中都讲过一个性能优化的问题,也就是将数据与索引分开存储,因为我们在读取数据的同时,要读取相关索引对象,然后通过索引来得到数据,那么如果在普通的计算机中,数据对象和索引对象都在一个磁盘上存储,那么只能是串联的读取,one by one,如果我们使用磁盘阵列,我们可以将数据和索引分别存储在不同磁盘上,我们就可以进行并发的读取,这样效率就会有所提高。


ASM

  1. Automatic Storage Management  
  2. 自动存储管理(ASM)  
  3. ASM 是 Oracle 数据库 10g 中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID 等服务。ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除“热点”。它还支持直接和异步的 I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。  
  4. ASM 不是一个通用的文件系统,并只能用于 Oracle 数据文件、重做日志以及控制文件。ASM 中的文件既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。由于操作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复操作的唯一途径就是通过恢复管理器 (RMAN)。  
  5. ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。在 Linux 上,只有运行 OCSSD 服务(由 Oracle 通用安装程序默认安装)才能使用 ASM。ASM 需要的内存不多:对大多数系统,只需 64 MB。  

其实我对ASM理解也不深,我感觉,如果说磁盘阵列是需要DBA手动管理的话,ASM是设置好之后,不用DBA再花时间来管理了。

而且使用ASM对数据库的性能提高肯定是显而易见的,我们可以看一下ASM的优点:

1、 将I/O平均分部到所有可用磁盘驱动器上以防止产生热点,并且最大化性能。
2、 配置更简单,并且最大化推动数据库合并的存储资源利用。
3、 内在的支持大文件
4、 在增量增加或删除存储容量后执行自动联系重分配
5、 维护数据的冗余副本以提高可用性。
6、 支持10g,11g的数据存储及RAC的共享存储管理
7、 支持第三方的多路径软件
8、 使用OMF方式来管理文件



双机热备

  1. 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。而双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态)。  


双机热备从字面上就很好理解,两个机器,其中一个机器工作,我们称之为主机,另一个机器准备(备机),如果主机出现了问题,可以自动切换到备机,然后备机工作,但是不管是主机工作还是备机工作,他们的数据都是共享存储,这样就不会存在数据不一致的情况了。那么切换的时间越少,资金投入就越多。


RAC


  1. Oracle RAC是Oracle Real Application Cluster的简写,官方中文文档一般翻译为“真正应用集群”,是Oracle9i新版数据库中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术。它的出现解决了传统数据库应用中面临的一个重要问题:高性能、高可伸缩性与低价格之间的矛盾!  
  2. 它一般有两台或者两台以上同构计算机及共享存储设备构成,可提供强大的数据库处理能力,现在是Oracle 10g Grid应用的重要组成部分。  

RAC也成为集群,如果说刚才提到的双机热备是一个工作另外一个备选的话,那么RAC是集群的机器都工作,RAC最多可以支持64台机器,一般情况下RAC是两台机器组成,所以说好多人把RAC和双机热备都混为一个东西,其实RAC要比双机热备在机器使用率上要高,毕竟双机热备的另一台机器没有工作。所以说现在一般情况下都用RAC了。

对RAC来说,以两台机器Oracle为例,如果说机器的实例为orcl,那么针对不同节点(机器)的机器就是orcl1-orcl(n),而且每台机器都有自己的物理IP,这些机器通过心跳线相关联,对外有一个虚拟IP,那么如果用户通过这个虚拟IP连上服务器的话,RAC会自动来选择负载压力小的机器来处理请求,那么这些都是由集群软件,RAC组件来处理的。

还有一点RAC与双机热备类似的就是,不管几台机器,他们都是用了共享存储。

那么我们看看RAC的优点:

       (1)多节点负载均衡;
(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;
(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;
(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;
(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;
(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。
缺点
(1)相对单机,管理更复杂,要求更高;
(2)在系统规划设计较差时性能甚至不如单节点;
(3)可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)。


一般情况下,RAC与ASM进行完美的结合。



那么说了那么多,这些东西跟ArcGIS联系的就是怎么在RAC或者双击热备上安装ArcSDE了。


如果你在单机(不管是Windows还是linux)安装过ArcSDE,而且对ArcSDE相关配置文件已经命令比较了解的话,在这个环境下安装ArcSDE都不是什么问题,只是需要注意一点就是我们刚才反腐强调的,不管是双机热备还是RAC,我们需要知道他们是共享存储,也就是说我们创建ArcSDE表空间时,需要将数据文件创建到共享磁盘上。

问题又来了,怎么才能知道创建到共享磁盘上呢?

1:询问DBA或者负责人

2:如果还不放心,不妨自己查看一下

因为我们安装ArcSDE之前,数据库肯定是安装好了,那么数据库默认的数据文件比如系统表空间、undo表空间的数据文件也在共享磁盘上,那么我们就可以使用SQL语句来查询即可。

  1. SQL> select name from v$datafile;  
  2.   
  3. NAME  
  4. --------------------------------------------------------------------------------  
  5. +DATA/oradata/orcl/system01.dbf  
  6. +DATA/oradata/orcl/sysaux01.dbf  
  7. +DATA/oradata/orcl/undotbs01.dbf  
  8. +DATA/oradata/orcl/users01.dbf  
  9. +DATA/oradata/orcl/sde.dbf  
  10. +DATA/oradata/orcl/spatial.dbf  
  11.   
  12. 6 rows selected.  
那么为什么出现+DATA而不是我们常见的C:/data/sde.dbf或者/opt/oradata/sde.dbf呢?

这里面就接着我们刚才说道的ASM或者磁盘阵列存储的话,写法都是+DATA标识,我们常见的是属于文件存储,有具体的物理路径。

有了上面,我们可以将SDE的数据文件建立在正确的路径下,那么如果是服务连接的话,大家需要注意,RAC环境下,因为每台机器都要工作,所以,所有机器的ArcSDE服务都需要启动,那么双机热备呢,一个机器启动服务,另外一个机器不启动服务,但是如果要切换机器的话就需要启动服务,我们只需要将启动ArcSDE服务的命令添加到切换机器配置文件里面即可。

  1. 数据库启动命令……  
  2. sleep(180)  
  3. su – arcsde –c "sdemon –o start –p sde”  

Data Guard

  1. DataGuard是甲骨文推出的一种高可用性数据库方案,在Oracle 8i之前被称为Standby Database。从Oracle 9i开始,正式更名为Data Guard。它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。Data Guard只是在软件上对数据库进行设置,并不需要额外购买任何组件。用户能够在对主数据库影响很小的情况下,实现主备数据库的同步。而主备机之间的数据差异只限于在线日志部分,因此被不少企业用作数据容灾解决方案。  

如果说上面的RAC是对数据库实例的一种灾备的话,那么Data Guard就是对真正的数据文件进行灾备,这样我们可以保护数据库最核心的数据文件的备份,这样不至于出现灭顶之灾。


相关阅读:
Top