Oracle Service 的管理及应用

Oracle service 的管理及应用

一、    Service介绍

本文主要介绍oracle service的基础知识及几个service使用场景。

Service 是从Oracle 8i 引入的一个新功能,它可以为客户端提供一种新的连接方式。Service 是字面翻译是服务, 在oracle数据库当中,service可以当做是一组客户端或者应用的逻辑组合。每个单独的service 可以设定其自己的属性,以满足不同的需要。

官方介绍如下:

Database services (services) are logical abstractions for managing workloads in Oracle Database. Services divide workloads into mutually disjoint groupings. Each service represents a workload with common attributes, service-level thresholds, and priorities.

参数:service_names,可以指定一个或多个名称用于客户端连接数据库实例。实例通过监听程序对service进行注册,客户端请求一个服务时,监听程序决定哪个实例响应,并为客户端分配相应的实例。

默认的两个service:SYS$BACKGROUND仅由后台进程使用,SYS$USERS没有分配到service的连接使用,如通过配置 SID 进行的连接。这两个服务在监听中是不注册的。

如:客户端配置

RACDB_SID =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.53)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (ORACLE_SID =racdb1)

    )

  )

SELECT USERNAME,SERVICE_NAME FROM GV$SESSION WHERE USERNAME='TEST';

二、    Service创建管理

可以使用srvctl工具、OEM、dbms_service包来创建或管理service。

dbms_service主要用于单机环境管理service,基本使用如下:

DBMS_SERVICE.CREATE_SERVICE        创建 service

DBMS_SERVICE.DELETE_SERVICE        删除 service

DBMS_SERVICE.DISCONNECT_SESSION    断开 service

DBMS_SERVICE.MODIFY_SERVICE        修改 service

DBMS_SERVICE.START_SERVICE         启动 service

DBMS_SERVICE.STOP_SERVICE          停止 service

以下是srvctl管理service的演示。

添加service的参数

srvctl add service -d db_unique_name -s service_name {-r "preferred_list"

   [-a "available_list"] [-P {BASIC | NONE | PRECONNECT}] | -g server_pool

   [-c {UNIFORM | SINGLETON]} [-k network_number]

   [-l [PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY]

   [-y {AUTOMATIC | MANUAL}] [-q {TRUE | FALSE}] [-x {TRUE | FALSE}]

   [-j {SHORT | LONG}][-B {NONE | SERVICE_TIME | THROUGHPUT}]

   [-e {NONE | SESSION | SELECT}] [-m {NONE | BASIC}] [-z failover_retries]

   [-w failover_delay]

其他参数使用可以参照:

http://docs.oracle.com/cd/E11882_01/rac.112/e41960/srvctladmin.htm#RACAD7405

基本操作如下:

Oracle owner用户下执行

srvctl add service:


srvctl add service -d racdb -s service_test -r racdb1 -a racdb2 -P NONE -j LONG -e SELECT -m BASIC -z 10 -w 180 -B SERVICE_TIME


srvctl config service:

srvctl config service -d racdb -s service_test

srvctl status service

srvctl status service -d racdb -s service_test -f -v


srvctl start service:

srvctl start service -d racdb -s service_test -i racdb1

srvctl stop service:

srvctl stop service -d racdb -s service_test -f -i racdb1

srvctl enable service:

srvctl enable service -d racdb  -s service_test -i racdb1

srvctl disable service:

srvctl disable service -d racdb  -s service_test -i racdb1

srvctl modify service:

srvctl modify service -d racdb -s service_test -i racdb1 -t racdb2 -f

srvctl relocate service:

srvctl relocate service -d racdb -s service_test -i racdb1 -t racdb2 –f

srvctl remove service:

srvctl remove service -d racdb -s service_test

 


srvctl remove service -d racdb -s service_test -f

三、    Service应用

  Service有哪些实用的场景呢? 我们一起来探讨下。

1. 业务分类

使用service可以将不同的应用进行分类,使不同的应用或者客户端连接到不同的服务,这样就可以在数据库级别按照service分析各应用模块的性能。

比如一个系统分交易类业务和结算类业务。我们可以创建2个服务: TRAN、SETTLE

相应的可以通过AWR等途径进行各个模块性能分析

一些实用的分析视图:

DBA_SERVICES

ALL_SERVICES or V$SERVICES

V$ACTIVE_SERVICES

V$SERVICE_STATS

V$SERVICE_EVENT

V$SERVICE_WAIT_CLASSES

V$SERV_MOD_ACT_STATS

V$SERVICE_METRICS

V$SERVICE_METRICS_HISTORY

V$SESSION

V$ACTIVE_SESSION_HISTORY

DBA_RSRC_GROUP_MAPPINGS

DBA_SCHEDULER_JOB_CLASSES

DBA_THRESHOLDS

AWR中报告的统计:


2. 实例高可用

当前实例宕机,service failover方式切换到其他可用实例。

这里列举一种常用的读写分离ADG(Active Data Guard)架构。当读库不可用时,通过在读写库配置统一的服务名(service),实现应用的自动切换,对业务无影响。

数据库连接串配置说明:

读库的IP放在首位,优先访问读库。

关闭负载均衡,设置LOAD_BALANCE=off,避免session随机访问写库,只有当读库出现故障,session才会自动连接到写库。

这样就可以实现当读库故障时,及时切换到主库查询。

配置如下:

TEST =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 读库IP)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = 写库IP)(PORT = 1521))

    (LOAD_BALANCE = OFF)

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = TEST)

      (FAILOVER_MODE =

        (TYPE = SELECT)

        (METHOD = BASIC)

        (RETRIES = 180)

        (DELAY = 5)

      )

    )

  )


Service
的应用场景只举例了以上两点,其他一些应用场景,欢迎大家参与探讨。

--BY JWL

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30109892/viewspace-1984770/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30109892/viewspace-1984770/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值