永发信息网

oracle11grac会用到rexec服务吗

答案:1  悬赏:20  手机版
解决时间 2021-01-03 08:50
oracle11grac会用到rexec服务吗
最佳答案
我们可以为特定的应用或者应用操作集合定义服务,例如为联机事务处理,批处理和报表应用分别定义服务。然后通过这些服务来连接到数据库。使用服务的原因在于可以通过对服务进行配置,获得诸如应用程序性能,负载,以及可用性等各个方面的好处。
  2、Service的几个重要的配置
  2.1 Service Management Policy
  service的startup设置,如果将一个service的management policy配置为AUTOMATIC,则在使用srvctl启动database的时候,服务也自动启动。
  如果将management policy设置为MANUAL,则必须使用srvctl来启动服务。
  使用crsctl重启集群时,如果服务之前是运行的,那么服务也将重新启动。
  2.2 Instance Preference
  一个服务的优选实例是将在其中启动该服务的实例,这些实例将为用户服务。可用实例是备用实例,当优选实例发证故障时,将在这些实例上启动服务。
  假设为一个服务定义了2个优选实例,那么集群会尽量确保服务始终运行在2个实例上。
  当服务运行在可用实例上时,当优选实例恢复完成,服务不会在再次回到优选实例上。
  注意优选实例和可用实例的定义只有在数据库为administrator-managed的方式下才能设置。如果database处于policy-managed的方式下,则应当为服务指定server pool。见下一节。
  2.3 server pool
  When you define services for a policy-managed database, you assign the service to aserver pool where the database is running using SRVCTL with the -g option. You can define the service as either UNIFORM (running on all instances in the server pool) orSINGLETON (running on only one instance in the server pool) using the -c option. For singleton services, Oracle RAC chooses on which instance in the server pool theservice is active. If that instance fails, then the service fails over to another instance in the server pool. A service can only run in one server pool.
  server pool相当于虚拟实例组,它包含一定数量的实例,而不指定具体是哪些实例。可以定义服务在一个server pool中的所有实例上运行或者在server pool中的一个实例中运行。
  3、Oracle中与Service集成的功能
  3.1 Resource Profile for a Service
  resource profile在定义service时自动创建。它描述了集群如何管理service以及当优选实例故障时service将转移到哪个实例。resource profile还定义了服务的依赖关系,保证在数据库 停止时,实例与服务可以自动以正确的顺序停止。
  3.2 Database Resource Manager Consumer Group Mappings for Serviceservice可以和Resource Manager Consumer Group集成,一个service属于一个Resource Manager Consumer Group。通过Resource Manager Consumer Group可以定义服务对资源的使用优先级。例如可以限定三个Group的优先级及CPU使用率,那么CPU资源将按优先级分配给各个组。
  3.3 AWR for Service
  可以通过AWR报告监控service性能。
  4、创建服务
  文档中创建服务的语法和选项如下:
  5、关于服务在实例中切换的实验
  测试环境OGI和RDBMS都是11.2.0.1版本,数据库有两个节点node1,node2,对应实例为orarac1,orarac2该服务使用管理员管理方式,首选实例和可用实例相关配置如下:
  [oracle@node1 ~]$ srvctl config service -d orarac -s test_service服务名: test_service
  服务已启用
  服务器池: orarac_test_service
  基数: 1
  断开连接: 假
  服务角色: PRIMARY
  管理策略: AUTOMATIC
  DTP 事务处理: 假
  AQ HA 通知: 假
  故障转移类型: SELECt
  故障转移方法: BASIC
  TAF 故障转移重试次数: 0
  TAF 故障转移延迟: 0
  连接负载平衡目标: LONG
  运行时负载平衡目标: NONE
  TAF 策略规范: BASIC
  首选实例: orarac2
  可用实例: orarac1
  服务的运行状态服下:
  [[oracle@node1 ~]$ srvctl status instance -d orarac -i orarac1实例 orarac1 正在节点 node1 上运行
  [oracle@node1 ~]$ srvctl status instance -d orarac -i orarac2实例 orarac2 正在节点 node2 上运行
  [oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 正在实例 orarac2 上运行由于首选实例设置为orarac2,所以服务默认随实例orarac2自动启动。
  使用srvctl关闭实例2,在查看服务的情况:
  [oracle@node1 ~]$ srvctl stop instance -d orarac -i orarac2[oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 未运行。
  使用srvctl关闭首选实例,则服务并未转移到可用实例上。
  再看使用sqlplus关闭实例2的情况:
  首先开启实例2,服务又随实例自动启动了
  [oracle@node1 ~]$ srvctl start instance -d orarac -i orarac2[oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 正在实例 orarac2 上运行在节点2上登入sqlplus关闭实例2
  SQL> select instance_name from v$instance;INSTANCE_NAME
  ------------------------------------------------orarac2
  SQL> shutdown immediate;
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  再查看服务状态:
  [oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 正在实例 orarac1 上运行服务已经转移到备选实例上了。
  上面的实验结果表明:
  服务会随srvctl启动实例而启动,服务不会随srvctl关闭实例而转移,服务会随sqlplus关闭实例而转移。
  再看看服务是否会随sqlplus启动实例而启动:
  [oracle@node1 ~]$ srvctl stop service -d orarac -s test_service[oracle@node1 ~]$ srvctl status instance -d orarac -i orarac1实例 orarac1 正在节点 node1 上运行
  [oracle@node1 ~]$ srvctl status instance -d orarac -i orarac2实例 orarac2 没有在 node2 节点上运行
  [oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 未运行。
  node2上通过sqlplus启动实例:
  INSTANCE_NAME
  ------------------------------------------------orarac2
  SQL> shutdown immediate;
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  SQL> startup
  ORACLE instance started.
  Total System Global Area 1603411968 bytesFixed Size 2213776 bytesVariable Size 1207961712 bytesDatabase Buffers 385875968 bytesRedo Buffers 7360512 bytesDatabase mounted.
  Database opened.
  查看服务有没有随SQLPLUS启动实例而启动:
  [oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 未运行。
  结论:
  服务会随srvctl启动实例而启动,服务不会随srvctl关闭实例而转移。
  服务不会随sqlplus中startup启动实例而启动,服务会随sqlplus关闭实例而转移。
  注:测试环境OGI与RDBMS版本都是11.2.0.1。
  6、关于RAC中的故障转移
  6.1 关于RAC中的故障转移
  6.1.1 客户端的故障转移
  在客户端的tns中配置多个VIP连接,客户端连接时依次尝试连接,直至连接成功,如果连接中故障,则需要重新连接。
  tnsnames.ora中有一个参数FAILOVER=ON,这个参数默认为ON所以不需要配置,一个tns条目可能如下:
  ORARAC =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = orarac1-vip)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = orarac2-vip)(PORT = 1521))(LOAD_BALANCE=YES)
  (
  CONNECT_DATA=
  (SERVER=DEDICATED)
  (SERVICE_NAME=orarac)
  )
  )
  6.1.2 TAF
  由于大部分应用使用长连接,即只创建一次到oracle的连接,以后都使用这个连接,如果用客户端故障转移必须要重新建立连接。为解决这个问题,需要新的故障转移方式TAF。
  TAF也是在tnsnames.ora中定义。其包含METHOD及TYPE选项。
  METHOD取值有BASIC和PRECONNECT两种:BASIC为发生故障时立刻切换。PRECONNECT为事先创建冗余连接。
  TYPE取值有SESSION和SELECt两种:对于正在查询的语句,如果实例故障,SESSION模式需要重新查询,SELECT模式可以继续返回结果集,用户感受不到故障转移。
  一个TAF的tnsnames中的配置可能如下:
  ORARAC =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = orarac1-vip)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = orarac2-vip)(PORT = 1521))(LOAD_BALANCE=YES)
  (CONNECT_DATA=
  (SERVER=DEDICATED)
  (SERVICE_NAME=ORARAC)
  (FAILOVER_MODE=
  (TYPE=session)
  (METHOD=basic)
  (RETRIES=180)
  (DELAY=5)
  )
  )
  )
  6.1.3 Service-Side TAF
  TAF需要客户端配置tnsnames,非常麻烦,有一种只需要在服务器端配置故障转移的选项而不需要配置客户端的方法,即Service-Side TAF。
  实现方法为:在实例上创建服务,为服务配置故障转移选项,客户端直接通过服务连接到数据库。
  7、RAC环境中利用服务实现故障转移的实验
  首先查看服务配置:
  [oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 正在实例 orarac2 上运行[oracle@node1 ~]$ srvctl config service -d orarac -s test_service服务名: test_service
  服务已启用
  服务器池: orarac_test_service
  基数: 1
  断开连接: 假
  服务角色: PRIMARY
  管理策略: AUTOMATIC
  DTP 事务处理: 假
  AQ HA 通知: 假
  故障转移类型: SELECT
  故障转移方法: BASIC
  TAF 故障转移重试次数: 0
  TAF 故障转移延迟: 0
  连接负载平衡目标: LONG
  运行时负载平衡目标: NONE
  TAF 策略规范: BASIC
  首选实例: orarac2
  可用实例: orarac1
  可以看出故障转移的方法及类型:
  故障转移类型: SELECT
  故障转移方法: BASIC
  客户端tns的配置如下:
  TEST_SERVICE =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = cluster-scan)(PORT = 1521))(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = test_service)
  )
  )
  客户端连接数据库:
  C:\Documents and Settings\Administrator>sqlplus system/oracle@test_serviceSQL*Plus: Release 10.2.0.1.0 - Production on Tue Dec 2 09:49:16 2014Copyright (c) 1982, 2005, Oracle. All rights reserved.
  Connected to:
  Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management,OLAP,
  Data Mining and Real Application Testing optionsSQL> select instance_name from v$instance;INSTANCE_NAME
  ----------------
  orarac2
  为了创建长时间查询先创建大表:
  SQL> create table testuser.object as select * from dba_objects;Table created.
  SQL> insert into testuser.object select * from dba_objects;72252 rows created.
  insert语句多执行几次
  SQL> select count(*) from testuser.object;COUNT(*)
  ----------
  1156032
  执行长查询:
  SQL> select * from testuser.object;
  中途关闭orarac2(使用sqlplus关闭),客户端显示:
  ERROR:
  ORA-25402: transaction must roll back
  855 rows selected.
  原因是事务未提交,必须回滚。此时客户端再执行任何查询仍然报错:
  SQL> select instance_name from v$instance;select instance_name from v$instance
  *
  ERROR at line 1:
  ORA-25402: transaction must roll back
  回滚事务:
  SQL> rollback;
  Rollback complete.
  客户端在执行查询:
  SQL> select instance_name from v$instance;INSTANCE_NAME
  ----------------
  orarac1
  服务被转移到了orarac1上运行了,并且客户端session并未中断。
  将上述过程重来一遍,但是在长查询之前进行提交:
  先将orarac2启动,然后手动重定位服务
  [oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 正在实例 orarac1 上运行[oracle@node1 ~]$ srvctl relocate service -d orarac -s test_service -h将服务从集群的一个节点临时重新定位到另一个节点(命令忘记了,中途查一下帮助)。
  [oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 正在实例 orarac1 上运行[oracle@node1 ~]$ srvctl relocate service -d orarac -s test_service -h用法: srvctl relocate service -d -s {-i -t | -c -n } [-f]
  为管理员管理的数据库指定实例, 或者为策略管理的数据库指定节点-d 数据库的唯一名称-s 服务名
  -i 旧的实例名
  -t 新的实例名
  -c 要从中重新定位服务的节点名-n 要将服务重新定位到的节点名-f 在停止或重新定位服务操作期间断开所有会话-h 输出用法
  [oracle@node1 ~]$ srvctl relocate service -d orarac -s test_service -i orarac1 -t orarac2[oracle@node1 ~]$ srvctl status service -d orarac -s test_service服务 test_service 正在实例 orarac2 上运行此时验证一下客户端session是否正常:
  SQL> select count(*) from testuser.object;COUNT(*)
  ----------
  72252
  没有问题。
  SQL> select instance_name from v$instance;INSTANCE_NAME
  ----------------
  orarac1
  虽然relocate了服务到orarac2上,但是已经连接的session仍然处于orarac1上。
  重新连接sqlplus确认连接到orarac2上,并确认不存在未提交事务:
  SQL> commit;
  Commit complete.
  这一次只使用72252行,此时没有未提交事务。
  执行长查询之前确认连接实例:
  SQL> select instance_name from v$instance;INSTANCE_NAME
  ----------------
  orarac2
  SQL> select * from testuser.object;
  在服务器上关闭实例2:
  SQL> shutdown immediate;
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  客户端查询仍在进行,等待运行结果:
  ......
  72252 rows selected.
  看到客户端查询正常完成,和定义的TYPE=SELECT结果相一致。
  8、 一些关于服务故障转移的结论
  测试版本为11.2.0.1;节点为node1,node2;数据库名为orarac;实例名为orarac1,orarac2;服务名为test_service;服务配置信息见上面说明。
  通过上述实验可以得出下面结论:
  通过服务可以定义负载均衡及故障转移,而不需要在客户端做任务配置。
  srvctl启动首选实例,服务会自动启动。
  srvctl关闭服务的首选实例,服务不会自动转移到备选实例。
  sqlplus中启动首选实例,服务不会自动启动。
  sqlplus中关闭首选实例,服务会自动转移到备选实例。
  服务转移到备用实例后,此时首选实例恢复正常,服务不会自动回到首选实例。
  客户端session连接到服务后,如果此时通过srvctl relocate将服务转移到其他实例,客户端连接的实例仍然不变。此时故障转移仍然正常。
  如果事务未提交,此时发生故障转移,则必须回滚事务,才能进行其他操作。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
奉贤区泰日医院(包括红十字老年护理院)里面
包头友谊19小区为什么最近那么多人卖房?
花印润白爽肤水铅汞超标吗
夷陵区宜昌土地湾老家菜馆地址在哪里啊
梁朝伟到底还是不是中国人
大家充电没有闪电标识是充不进电吗
《追风筝的人》里的插曲是什么?
买钻戒需要注意什么?2万左右什么牌子的好?
拔金箍棒是什么意思
现在的网络电话显号都不稳定,推荐一款显号稳
单选题高一、九班同学计划设计制作进行爱国主
想知道: 中国 安谷水电站 在哪
闪之轨迹dlc怎么用
下列关于等高线地形图的叙述,不正确的是A.同
我有5万怎么理财
推荐资讯
我性格内向,不爱说话,有时被别人说了怎么的
我的系统装在固态硬盘里
邓紫棋的if i were a boy怎么样
宫斗请安戏长公主和明仪
在下面几个数中,最大的是,最小的是A.0.B.C.
单选题有一种二肽的化学式是C8H14N2O5,发生
下图是以北极为中心的俯视图,图中虚线表示极
安庆市光彩大市场专职消防队地址在什么地方?
家庭厨房实际上就是一个化学世界,“柴米油盐
荣耀7工程模式补电有什么用
如果梯形中位线的长为8cm,下底的长为10cm,
Being aware of theof the disaster, some fa
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?