Oracle RAC 跨节点并行运算

简介:

Oracle RAC 跨节点并行运算

      RAC的一大优点就是可以跨节点进行并行计算,那么如何控制并行运算?

      合理设置跨节点并行,需要先设置一些参数:

instance_groups:这个参数主要是设置该节点实例是否属于某一个实例组。每个节点可以设置多个不同的实例组名,实例组名用逗号隔开。

parallel_instance_group设置的值为instance_groups里面设置的值,表明这个节点上面进行的并行操作可以跨越哪些实例组。

   

案例: 验证rac 并行计算


1、配置实例并行计算

SQL> alter system set instance_groups ='dw','dw1','dw123' scope=spfile sid='prod1';


System altered.


SQL> alter system set instance_groups ='dw','dw2','dw123' scope=spfile sid='prod2';


System altered.


SQL> alter system set instance_groups ='dw','dw2','dw234' scope=spfile sid='prod3';


System altered.

instance_groups :设置instance 组,如上所示:dw 组包含所有实例,dw1,dw2,dw3 只包含单个实例,dw123 包含两个实例,dw234 包含一个实例

parallel_instance_group: 如果不设置,默认在任何实例上的并行操作都会分布到所有实例上,设置parallel_instance_group后,指定只在那个实例组指定的实例上做并行操作

如:parallel_instance_group = dw ,则所有的实例都会做并行(dw 包含所有实例)

        parallel_instance_group = dw1 ,则并行操作只在实例1上进行


设置如下:


在实例 1上:

1、配置参数

SQL> show parameter instance_group


NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

instance_groups                      string      dw,dw1,dw123

parallel_instance_group              string               ;参数为空,则会在所有实例上运行并行操作


2、scott 用户做并行操作

SQL> conn scott/tiger

Connected.

SQL> alter session enable parallel dml;


Session altered.


SQL> alter table emp1 parallel;


SQL> insert /*+ parallel(emp1 4) */ into emp1 select * from emp;


14 rows created.


SQL> rollback;


Rollback complete.


SQL> insert /*+ parallel(emp1 4) */ into emp1 select * from emp;


14 rows created.



3、查看并行结果

SQL> select inst_id ,sid from gv$session where username='SCOTT';


INST_ID        SID

---------- ----------

        1        126

        1        134

        1        152

        3        124

        3        125

        3        141

        3        145

        2        126

        2        147


9 rows selected.

配置如下:


SQL> alter system set parallel_instance_group ='dw123';


System altered.


SQL> show parameter instance_group


NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

instance_groups                      string      dw,dw1, dw123

parallel_instance_group              string      dw123

SQL>

SQL> select inst_id ,sid from gv$session where username='SCOTT';

INST_ID        SID

---------- ----------

        1        116

        1        120

        1        121

        1        122

        1        129

        2        122

        2        123

        2        134

        2        135


9 rows selected.


parallel_instance_group= dw123,  dw123 组包含实例1和2 ,所以并行操作选择实例1和2 。











本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1368008,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
SQL 监控 Oracle
关系型数据库Oracle并行执行
【7月更文挑战第12天】
76 14
|
1月前
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
53 2
|
2月前
|
SQL Oracle 关系型数据库
关系型数据库Oracle并行查询
【7月更文挑战第12天】
72 15
|
2月前
|
Oracle 关系型数据库 数据处理
|
2月前
|
SQL 监控 Oracle
|
1月前
|
Oracle 关系型数据库
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
|
2月前
|
SQL 监控 Oracle
|
2月前
|
存储 负载均衡 Oracle
|
SQL Oracle 关系型数据库
一天内碰到的3个rac节点问题
说到问题,真是层出不穷,自己搭建了也不少的rac的环境的,但是在本地试验的时候总是会碰到一些问题,昨晚铲掉旧环境,搭建了两遍rac环境,终于在凌晨搭建好了环境,配置好EM,看了下效果,还不错,然后就把虚拟机设为suspend状态,早上打开虚拟机发现两个节点都自动停掉了,再次重启就启动不了了。
1036 0