暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle service 的管理及应用

bestpaydata 2021-04-18
3812

一.Service介绍

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

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

官方介绍如下:

Database services (services) are logical abstractions for managingworkloads in Oracle Database. Services divide workloads into mutually disjointgroupings. 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]} [-knetwork_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

基本操作如下:

Oracleowner用户下执行

srvctl addservice


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 -tracdb2 -f

srvctl relocate service

srvctl relocate service -d racdb -s service_test -i racdb1 -tracdb2 –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_SERVICESor 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的应用场景只举例了以上两点,其他一些应用场景,欢迎大家参与探讨。



文章转载自bestpaydata,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论