单实例和RAC数据库
RAC和单实例数据库在很多重要方面都有所不同。
在RAC中,一个数据库在共享存储中为多个服务器上的实例所访问。数据库文件、在线redo文件、控制文件和服务器参数文件(spfile)都必须共享。此外,闪回日志、已归档的redo日志、数据泵转储文件、和dataguard broker配置文件也可以共享,根据你的配置来决定(这是可选的,但还是强烈建议这么做)。在使用ASM的时候,你同样可以在每个RAC的节点中找到一个本地的pfile文件,这个文件指向对应磁盘组中的spfile。另一个存储在本地的文件是Oracle密码文件。集群文件系统中的用户常常把这些文件放在一个共享的位置,通过符号链接指向$ORACLE_HOME/dbs
数据库文件
数据库文件包含数据库中的所有数据,包括表、索引、数据字典和经过编译的PL/SQL代码,不胜枚举。在RAC中,每个数据文件都只有一个拷贝,位于共享存储中,并为所有实例所访问。Oracle默认不为数据文件提供镜像,大部分用户选择在存储层面来做冗余,避免介质故障导致的数据丢失。在存储阵列没有这个功能时,可以使用Oracle ASM来提供冗余。
控制文件
控制文件储存数据库的物理结构的相关信息,包括它们的状态。如果你使用RMAN且没有专门的RMAN catalog数据库,控制文件中也可以储存RMAN备份的信息。在单实例数据库和RAC中,控制文件应该做镜像以防止损坏或存储故障。当同时使用ASM和闪回恢复区时,会自动做多路复用。默认情况下,Oracle在db_create_file_dest和db_recovery_file_dest指定的磁盘组中对控制文件做多路复用。这种情况下,若你使用spfile,control_files参数将自动更新。要知道控制文件会成为RAC中的一个争用点,因为它们会被频繁更新。因此不要对控制文件做过多的镜像拷贝,而且应该把它们放置在高速存储上。
REDO和归档