- 论坛徽章:
- 0
|
小弟菜鸟,想请高手看看这样简单的方案是否可行:
1.大表数据分别存储在3个实例(分布在3台主机上),各节点设为S1,S2,S3
2.小表以及一些编码表存储在第四个数据库实例(设为MAIN)上
3.客户端只访问MAIN实例,而MAIN实例通过DBLINK访问另外3个数据库(将一个表的数据(分布在3个数据库中)封装成一个视图供客户端访问)
4.客户端的应用(如联合查询)基本上是一个实例之间的关联查询,或者是将一个节点数据运算结果存储在MAIN数据库中的一张表中。
(各节点之间很少有数据联合查询,但节点与MAIN主机的小表或编码表与关联查询)
如:
create view bigtab as
select * from bigtab@s1
union all
select * from bigtab@s2
union all
select * from bigtab@s3;
insert into m.t1(c1, c2)
select b.name cname, count(1)
from bigtab a, m.stab b where a.c1=b.c1 --m.stab 为MAIN数据库上一张小编码表
group by b.name
高手说说这样可行吗?
如果场景不变(后端各节点之间数据交互没有或较少),有必要用RAC吗 |
|