问:请问我能否在单独的Oracle 11g RAC实例中运行多个Oracle数据库?
答:在Oracle中,所谓的“数据库”就是各种数据文件、控制文件和在线redo文件的集合;而实例是各种内存架构和服务器运行的程序集合。
服务器关闭之后,数据库依然存在,但是实例就被删除了。实例为数据库提供了一个入口。在实例关闭之后,你就无法访问数据库了。
通常情况下,实例与数据库的关系是一对一的。如果你可以使用真正应用集群(RAC),那就能启用多个实例来对单独的数据库进行访问。这使你可以在多个服务器上启动Oracle,但是访问的数据是相同的。
让一个Oracle 11g RAC实例访问多个数据库的意义不大。Oracle无法识别被修改过的表究竟属于那个数据库。
而其他的数据库系统,比如MySQL和SQL Server都有多重数据库这一概念。在这些系统中,对于数据库这一概念和Oracle不大一样,SQL Server数据库同Oracle最相近的应该是“schema”。在Oracle中,在同一个数据库中创建多个schema是可以的,都在同一个实例中进行访问。当然,要做到这一点你必须使用RAC。