【笔试面试题1】在Oracle中,RAC数据库和单实例数据库有什么区别?

为了让RAC中的所有实例能够访问数据库,所有的数据文件(Data Files)、控制文件(Control Files)、参数文件(Spfile)和重做日志文件(Redo Log Files)必须保存在共享磁盘上,并且要能被所有节点同时访问。RAC数据库和单实例数据库具体区别如下所示:

① Redo和Undo,至少为每个实例多配置一个Redo线程(例如:两个实例组成的集群至少要4个Redo Log Group,每个实例两个Redo Group),另外要为每一个实例配置一个Undo表空间。每个实例在做数据库的修改时都使用自己实例的Redo和Undo,各自锁定自己修改的数据,把不同实例的操作相对的独立开就避免了数据不一致。在备份或者恢复时,Redo和Undo也需要按照线程(THREAD)来对待。

② 内存和进程,RAC的各个节点的实例都有自己的内存结构(SGA)和进程结构,各节点之间结构是基本相同的。RAC在各个节点之间通过Cache Fusion(缓存融合)技术同步SGA中的缓存信息达到提高访问速度的效果,同时也保证了数据的一致性。

③ 告警(alert)日志和trace日志都属于每个实例自己,其它实例不可读写。