有套POS系统 如今应用量大了,数据量大了! 统计分析历史交易一定程度上影响了另外个应用. 这两个应用分别是OLTP和OLAP.
其实很多项目都有这样的两方的应用需求. 最近另外个系统的大量读取,统计下载数据,导致CPU飙高,后IO飙高.LINUX下的负载达到104.
所以对新上线的RAC 要求做应用切割. 平时两个应用分别在两个不同的实例上. 如果一个实例挂了就自动切到另外个实例上.
新搭好了两个节点的RAC 然后添加服务进去
srvctl add service -d POSDB -s posc -r 'posdb1' -a 'posdb2' -P basic -e session
srvctl add service -d POSDB -s posweb -r 'posdb2' -a 'posdb1' -P basic -e session
grid 下 CRS_STAT -T 发现 两个服务都在一个节点上. 同时两个实例的SERVICE_NAMES都是POSC,POSWEB
只有实例重启后,服务才跑到另外一台上去.
当这并不是我们所希望的效果. 使用重新挂接
[oracle@posdb04 ~] srvctl relocate service -d posdb -s posweb -i posdb2 -t posdb1
PRCR-1091 : Failed to relocate resource ora.posdb.posweb.svc. It is not running on node posdb04.
最后采取的是固定SERVICE_NAMES ,然后无效和关闭再有效和启动服务的过程,该服务就跑到它所该呆的地方了.
经过测试,切换是可以的. 唯独当实例恢复后,上面的服务不回自动跑回原来的地方.