ITPUB论坛-中国最专业的IT技术社区

 
 注册
热搜:
查看: 400|回复: 0

[笔记] Oracle 12C Service 特性

[复制链接]
论坛徽章:
10
娜美
日期:2017-06-26 15:18:15目光如炬
日期:2018-01-14 22:00:00目光如炬
日期:2017-12-17 22:00:00目光如炬
日期:2017-11-26 22:00:00火眼金睛
日期:2017-09-30 22:00:01目光如炬
日期:2017-09-03 22:00:01火眼金睛
日期:2017-09-01 17:00:07目光如炬
日期:2017-08-27 22:00:01目光如炬
日期:2017-08-20 22:00:00火眼金睛
日期:2018-02-28 22:00:00
跳转到指定楼层
1#
发表于 2017-12-13 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

目前就职海天起点,服务于电力行业,致力于帮助客户解决生产过程中出现的问题,提高生产效率, 爱好书法,周易!愿结交志同道合之士!共同进步! 微信号:sunyunyi_sun

Oracle 12C Service
Oracle Service 向客户端提供一个统一的服务名,Service位置透明,一个Service能定义多个数据库实例,一个数据库实例可以属于多个Service。
Oracle Service 服务分为默认服务和自定义的集群管理服务
默认服务定义为 DB_UNIQUE_NAME or DB_NAME or PDB_NAME,SYS$BACKGROUND(后台进程使用)和 SYS$USERS (默认用户session),Oracle
默认服务oracle内部管理,不能被禁用,不能被计划停止服务,不能故障转移到ORACLE DATA GUARD。Oracle强烈建议不要使用默认Service给
client提供服务,但是我遇到的几乎所有在运数据库使用默认Service向外提供服务,这样配置使用好像也没存在性能问题,故障转移负载均衡一切运作正常。
那为什么Oracle强力建议使用自定义Service向客户提供服务
1:默认Service存在许多限制,不能管理,缺少灵活性
2:可依据用户应用类型建立不同Service分类管理应用
3:可动态灵活分配主要实例和可用实例给每个Service,以及动态迁移Service到其他实例
4:可以计划禁用Service满足计划停机事件
5:可依据应用定义链接时负载均衡和运行时负载均衡
基于以上好处强烈建议使用自定义Service提供服务
下面我们看看自定义服务的建立和相关重要属性:
用户可使用EM和srvctl建立、修改、禁用、启动、停止、查询这里我们只讨论srvctl的使用方法,下面是12C的使用方法,注意12C和11G以及
10G的使用方法差异巨大,10G的Service特性较少,11G的Service功能强大但是参数使用方法和12C完全不同,12C在11G基础增加功能,
下面我们列出12C的参数:

Usage: srvctl add service -db <db_unique_name> -service <service_name>
       [-role [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]] [-policy {AUTOMATIC | MANUAL}]
       [-notification {TRUE | FALSE}] [-clbgoal {SHORT | LONG}] [-rlbgoal {NONE | SERVICE_TIME | THROUGHPUT}]
       [-failovertype {NONE | SESSION | SELECT | TRANSACTION}] [-failovermethod {NONE | BASIC}][-failoverretry <failover_retries>] [-failoverdelay <failover_delay>]   

    [-failover_restore {NONE | LEVEL1}]
       [-edition <edition>] [-pdb <pluggable_database>] [-global <TRUE | FALSE>] [-maxlag <max_lag_time>] [-sql_translation_profile <sql_translation_profile>]
       [-commit_outcome {TRUE | FALSE}] [-retention <retention>] [replay_init_time <replay_initiation_time>] [-drain_timeout <timeout>]
       [-stopoption <stop_option>] [-session_state {STATIC | DYNAMIC}] [-force]
    -db <db_unique_name>           Unique name for the database
    -service <service>             Service name
    -role <role>                   Role of the service (primary, physical_standby, logical_standby, snapshot_standby)
    -policy <policy>               Management policy for the service (AUTOMATIC or MANUAL)
    -failovertype                  (NONE | SESSION | SELECT | TRANSACTION)      Failover type
    -failovermethod                (NONE | BASIC)     Failover method
    -failoverdelay <failover_delay> Failover delay (in seconds)
    -failoverretry <failover_retries> Number of attempts to retry connection
    -failover_restore <failover_restore>  Option to restore initial environment for Application Continuity and TAF (NONE or LEVEL1)
    -edition <edition>             Edition (or "" for empty edition value)
    -pdb <pluggable_database>      Pluggable database name
    -maxlag <maximum replication lag> Maximum replication lag time in seconds (Non-negative integer, default value is 'ANY')
    -clbgoal                       (SHORT | LONG)                   Connection Load Balancing Goal. Default is LONG.
    -rlbgoal                       (SERVICE_TIME | THROUGHPUT | NONE)     Runtime Load Balancing Goal
    -notification                  (TRUE | FALSE)  Enable Fast Application Notification (FAN) for OCI connections
    -global <global>               Global attribute (TRUE or FALSE)
    -sql_translation_profile <sql_translation_profile> Specify a database object for SQL translation profile
    -commit_outcome                (TRUE | FALSE)          Commit outcome
    -retention <retention>         Specifies the number of seconds the commit outcome is retained
    -replay_init_time <replay_init_time> Seconds after which replay will not be initiated
    -session_state <session_state> Session state consistency (STATIC or DYNAMIC)
    -drain_timeout <drain_timeout> Service drain timeout specified in seconds
    -stopoption <stop_options>     Options to stop service (e.g. TRANSACTIONAL or IMMEDIATE)
    -force                         Force the add operation even though a listener is not configured for a network
    -verbose                       Verbose output
    -help                          Print usage

这里我们看看主要的几个参数:

-policy : Service Management Policy 默认为AUTOMATIC,srvctl start database 自动启动service,建议默认。

-preferred :定义优先的实例列表。

-available :定义可用的实例列表,当优先的实例不可用时使用。

-cardinality:Server Pool Assignment(资源池分配) You can define the service as either UNIFORM (running on all instances in the serverpool) or SINGLETON (running on

only one instance in the server pool) using the -cardinality parameter

-rlbgoal:定义Run-time Connection Load Balancing,默认为NONE,SERVICE_TIME:基于单个事务处理效率向客户提供最好的服务质量,OLTP使用。THROUGHPUT:基于长时间查询和单个完整

工作完成效率向客户提供最大吞吐量,OLAP使用。

-clbgoal:定义Connection Load Balancing Goal,默认值为LONG:如果 -rlbgoal 参数不为NONE,Service定义为SINGLETON也就是只在一个服务器上运行则使用session count进行负载评判.

如果Service定义为uniform在所以服务器上运行则使用run queue length进行评判。
另外一个值为short: 如果 -rlbgoal 参数不为NONE,则使用GOODNESS进行判断提供负载均衡。

12C新增功能:
Creating Services for Application Continuity and Transaction Guard

1:Creating Services for Application Continuity
-replay_init_time: 单位秒,默认值300s,定义replay初始化时间
-retention:单位秒,默认值86400(1 day),commit outcome信息保存时间。
-failoverretry:链接重试次数,建议30
-failoverdelay:每次重试延迟,建议10s
-notification: FAN is highly recommended—set this value to TRUE to enable FAN for OCI and ODP.Net clients.

对数据库 racdb 新增service app2 资源池 Srvpool1 的示例:

srvctl add service -db racdb -service app2 -serverpool Srvpool1
-failovertype TRANSACTION -commit_outcome TRUE -replay_init_time 1800
-retention 86400 -notification TRUE -rlbgoal SERVICE_TIME -clbgoal SHORT
-failoverretry 30 -failoverdelay 10

Creating Services for Transaction Guard,启动事务保护

To enable Transaction Guard, but not Application Continuity, create the service using
SRVCTL and set only -commit_outcome TRUE.

修改示例:

$ srvctl modify service -db racdb -service app2 -commit_outcome TRUE -retention 86400 -notification TRUE

另外必须 GRANT EXECUTE ON DBMS_APP_CONT;

其他操作:
Starting and Stopping Services with SRVCTL:
$ srvctl start service -db db_unique_name [-service service_name_list][-instance inst_name] [-startoption start_options]
$ srvctl stop service -db db_unique_name -service service_name_list [-instance inst_name] [-startoption start_options]

Enabling and Disabling Services with SRVCTL:

$ srvctl enable service -db db_unique_name -service service_name_list [-instance inst_name]
$ srvctl disable service -db db_unique_name -service service_name_list [-instance inst_name]

Relocating Services with SRVCTL:

The following command relocates the crm service from instance apps1 to instance apps3:
$ srvctl relocate service -db apps -service crm -oldinst apps1 -newinst apps3

The following command relocates the crm service from node1 to node3 using node
$ srvctl relocate service -db apps -service crm -currentnode node1 -targetnode node3

Obtaining the Status of Services with SRVCTL:
$ srvctl status service -db dbname

Obtaining the Configuration of Services with SRVCTL:
$ srvctl config service -db dbname -service service_name













您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 |
  | | |
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表