One Instance One Box

One Instance One Box这句话是tom kyte这个oracle 大牛说的。大牛的意思是不要自己没事在一个物理或者虚拟的机器Box里面折腾出一堆Instance,否则的话,你将面临更多的IO竞争,内存竞争。因为你多开了很多后台进程或者线程,用以维持一个个的Instance。最终,你得到的是永远失去优化的机会。

我前几天就碰到一个事情。我们有个系统下面有很多的分点,每个点都有相对独立的数据。这个系统为了做到所谓数据隔离和事务隔离(美其名曰一个点垮掉,其他点不受影响),结果一口气在一台8g内存的机子上搞了8个instance,结果是隔一阵子只要有一个instance 的内存占用到700M,系统就必须重启。

按Oracle的官方搞法,你要可扩展性可以用RAC,你要HA可以用DATA GUARD,不必要自己在一台机子上山寨一个类似于集群的东西。上面的需求比较合适的搞法,就是建多个schema,走多个table space。

不过stack overflow上还有一种说法,说是你必须在一台机子上跑多版本的Oracle的话,可以这么干,其他时候你还是悠着点。

猜你喜欢

转载自belmount.iteye.com/blog/1451884
one