oracle多租户运维,Part I CDB中服务的概述04-Oracle多租户管理员指南

Oracle® Multitenant

Administrator’s Guide

Part I Multitenant Architecture

2 Overview of the Multitenant Architecture

2.1 Overview of Containers in a CDB

2.2 Overview of Commonality in the CDB

2.3 Overview of Applications in an Application Container

2.4 Overview of Services in a CDB

2.5 Overview of Tablespaces and Database Files in a CDB

2.6 Overview of Availability in a CDB

2.7 Overview of Oracle Resource Manager in a CDB

Part I

多租户体系结构概述

本章描述了多租户体系结构中最重要的组件。

2.4

CDB

中服务的概述

客户端必须使用services

连接到PDBs

或application roots

使用service name

的连接在PDB

或应用程序root

中启动新会话。前台进程和会话在其生命周期的每个时刻都有一个惟一定义的当前容器。

下面的图形显示了使用两个不同的侦听器连接到PDBs

的两个客户机。

9cc942fbee114731625b5c0237737744.png

2.4.1 CDB

中的

Service

创建

当您执行CREATE PLUGGABLE DATABASE

语句来创建PDB

时,数据库会自动在CDB

内创建并启动一个service

默认service

具有一个属性,该属性将PDB

标识为service

的初始当前容器。该属性显示在DBA_SERVICES.PDB

列中。

2.4.1.1 CDB

的默认

Services

默认service

与PDB

同名。PDB

名称必须是有效的服务名称,在CDB

中必须是唯一的。

创建应用程序容器(需要指定AS application container

子句)时,Oracle

数据库会自动为应用程序root

创建新的默认服务。服务与应用程序容器同名。必须正确配置Oracle Net

服务,客户端才能访问此服务。类似地,每个应用程序PDB

都有自己的默认服务名,应用程序种子PDB

也有自己的默认服务名。

示例2-17

使用默认服务切换到PDB

此示例使用与PDB

同名的默认服务切换到PDB

名称salespdb

ALTER

SESSION

SET

CONTAINER

=

salespdb

;

2.4.1.2 CDB

的非默认服务

您可以为每个PDB

创建附加服务,每个CDB

最多10000

个。每个附加服务都将其PDB

表示为初始的当前容器。

在图2-9

中,存在用于erppdb

和hrpdb

的非默认服务。例如,在图2-9

中,名为hrpdb

的PDB

有一个名为hrpdb

的默认服务。无法删除默认服务。

当您使用ALTER SESSION SET container

切换到容器时,会话将使用容器的默认服务。或者,可以通过指定service=service_name

为容器使用其他服务,其中service_name

是服务的名称。您可能希望使用特定的服务,以便会话可以利用其服务属性和功能,例如服务度量、负载平衡、资源管理器设置等。

例2-18

使用非默认服务切换到PDB

在本例中,hrpdb

的缺省服务不支持所有服务属性和特性,如服务指标、FAN

、负载平衡、Oracle

数据库资源管理器、事务保护、应用程序连续性等。你切换到一个非默认的服务如下:

ALTER

SESSION

SET

CONTAINER

=

hrpdb SERVICE

=

hrpdb_full

;

2.4.2

连接

CDB

中的容器

通常,CDB

管理员必须具有提供pdb

和连接各种容器的适当权限。CDB

管理员是公共用户。

CDB

管理员可以使用以下任何一种技术:

•直接连接到PDB

或应用程序root

用户需要容器中的CREATE SESSION

特权。

•使用ALTER SESSION SET CONTAINER

语句在容器之间切换,这对于连接池和高级CDB

管理都很有用。语法是ALTER SESSION SET CONTAINER = container_name [SERVICE = service_name]

例如,CDB

管理员可以在一个会话中连接到root

,然后在同一个会话中切换到PDB

。在这种情况下,用户需要容器中的SET

容器系统特权。

下表描述了图2-9

中涉及CDB

的场景。每行描述在前一行的操作之后发生的操作。公共用户系统查询当前容器的名称和CDB

中PDBs

的名称。

Table 2-8               Services in a CDB

操作:

SQL

>

CONNECT

SYSTEM

@

prod

Enter

password

:

********

Connected.

描述:

CDB

中所有容器都使用的SYSTEM

用户使用名为prod

的服务连接到root

操作:

SQL

>

SHOW

CON_NAME

CON_NAME

--------

CDB$ROOT

描述:

系统使用SQL*Plus

命令SHOW CON_NAME

列出用户当前连接到的容器的名称。

CDB$ROOT

是根容器的名称。

操作:

SQL

>

SELECT

NAME

,

PDB

FROM

V$SERVICES

ORDER

BY

PDB

,

NAME

;

NAME

PDB

---------------------- --------

SYS$BACKGROUND CDB$ROOT

SYS$USERS CDB$ROOT

prod.example.com CDB$ROOT

erppdb.example.com ERPPDB

erp.example.com ERPPDB

hr.example.com HRPDB

hrpdb.example.com HRPDB

salespdb.example.com SALESPDB

8

rows

selected.

描述:

对V$SERVICES

的查询显示,存在三个PDB

,其服务名称与PDB

名称匹配。hrpdb

和erppdb

都有附加服务。

操作:

SQL

>

ALTER

SESSION

SET

CONTAINER

=

hrpdb

;

Session

altered.

描述:

系统使用ALTER SESSION

连接到hrpdb

操作:

SQL

>

SELECT

SYS_CONTEXT

(

'USERENV'

,

'CON_NAME'

)

AS

CUR_CONTAINER

FROM

DUAL

;

CUR_CONTAINER

-------------

HRPDB

描述:

查询确认当前容器现在是hrpdb

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值