352262 发表于 2018-9-12 12:56:16

Oracle RAC 跨节点并行运算

  Oracle RAC 跨节点并行运算
  
  RAC的一大优点就是可以跨节点进行并行计算,那么如何控制并行运算?
  合理设置跨节点并行,需要先设置一些参数:
  instance_groups:这个参数主要是设置该节点实例是否属于某一个实例组。每个节点可以设置多个不同的实例组名,实例组名用逗号隔开。
  parallel_instance_group设置的值为instance_groups里面设置的值,表明这个节点上面进行的并行操作可以跨越哪些实例组。
  案例: 验证rac 并行计算
  1、配置实例并行计算

  SQL>>
  System>
  SQL>>
  System>
  SQL>>
  System>  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>>
  Session>
  SQL>>  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>>
  System>  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 。
  

页: [1]
查看完整版本: Oracle RAC 跨节点并行运算