Oracle CDB管理实现多租户管理功能

目录
  • CDB的管理
    • 1.当前容器
    • 2.修改CDB的参数
    • 3.修改PDB的参数
      • 1.使用ALTER DATABASE 命令修改CDB的参数
      • 2.使用ALTER DATABASE命令修改CDB的UNDO模式
    • 4.CDB和PDB参数保存位置说明
  • CDB Fleet特性
  • 配置CDB FLEET环境
  • 管理PDB

CDB的管理

1.当前容器

通过SYS_CONTEXT命令来查看,

col con_id format a10

col con_name format a20

select sys_context('userenv','con_id') as con_id,sys_context('userenv','con_name') as

con_name from dual;

通过show 命令

[oracle@oracle-db-19c ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 30 11:07:06 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> col con_id format a10
SQL> col con_name format a20
SQL> select sys_context('userenv','con_id') as con_id,sys_context('userenv','con_name') as con_name from dual;
CON_ID     CON_NAME
---------- --------------------
1          CDB$ROOT
SQL>
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           MOUNTED
         5 CNDBAPDB                       MOUNTED
         6 CNDBAPDB3                      MOUNTED
         7 CNDBAPDB2                      MOUNTED
         8 CNDBAPDB4_FRESH                READ ONLY  NO
SQL> alter session set container=PDB1;
Session altered.
SQL> show user;
USER is "SYS"
SQL> show con_name;
CON_NAME
------------------------------
PDB1
SQL> 

2.修改CDB的参数

[oracle@oracle-db-19c ~]$
[oracle@oracle-db-19c ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 30 11:26:54 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> col name for a20
SQL> select con_id,name,ispdb_modifiable from v$system_parameter where name='open_cursors';
    CON_ID NAME                 ISPDB
---------- -------------------- -----
         0 open_cursors         TRUE
SQL> set linesize 200
SQL> show parameter open_cursors;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     300
SQL> alter system set open_cursors = 301;
System altered.
SQL> show parameter open_cursors;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     301
SQL> alter session set container=PDB1;
Session altered.
SQL> show parameter open_cursors;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     301
SQL> 

3.修改PDB的参数

1.使用ALTER DATABASE 命令修改CDB的参数

  • 以公共用户身份连接到CDB root,可以通过ALTER PLUGGABLE DATABASE 语句来修改PDB的相关配置
  • 也可以直接连接到PDB中,通过ALTER DATABASE 语句来修改相关配置。

(1) 修改CDB。当公共用户连接的是CDB root时,通过ALTER DATABASE 命令执行如下语句会修改整个CDB.

startup/recovery/logfile/controlfile/standbydatabase/instance/security/RENAME/GLOBAL_NAME/ENABLE LOCK CHANGE TRACKING/DISABLE LOCK CHANGE TRACKING

(2) 只修改CDB root 。当公共用户连接的是CDB root时,通过ALTER DATABASE 命令执行如下语句只修改CDB root

datafile/DEFAULT EDITION/DEFAULT TABLESPACE/ DEFAULT TEMPORARY TABLESPACE

(3) 修改一个或多个PDB。公共用户连接到CDB root时,可以通过ALTER PLUGGABLE DATABASE 语句修改PDB的打开状态(MOUNT/READ ONLY/READ WRITE),以及保存/忽略PDB的打开状态。

2.使用ALTER DATABASE命令修改CDB的UNDO模式

[oracle@oracle-db-19c ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 30 13:39:46 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> show user;
USER is "SYS"
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> col property_name for a30;
SQL> col property_value for a20;
SQL> select property_name,property_value from database_properties where property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
LOCAL_UNDO_ENABLED             TRUE
SQL> 

TRUE代表本地UNDO模式,FLASE代表共享UNDO模式。

(2)共享UNDO模式转换为本地UNDO模式的步骤如下:

关闭CDB,代码如下

shutdown immediate;

以UPGRADE方式启动CDB,代码如下:

STARTUP UPGRADE;

确认当前容器是CDB root,代码如下:

show con_name;

启动本地UNDO,代码

ALTER DATABASE LOCAL UNDO ON;

重启 CDB,正常打开,

SHUTDOWN IMMEDIATE;STARTUP;

(3) 本地UNDO模式转换为共享UNDO模式的步骤如下:

关闭CDB

shutdown immediate

以UPGRADE方式启动CDB,

STARTUP UPGRADE;

确认当前容器是CDB root,

SHOW CON_NAME

禁用本地UNDO

ALTER DATABASE LOCAL UNDO OFF

重启CDB,正常打开,

SHUTDOWN IMMEDIATE;STARTUP;

4.CDB和PDB参数保存位置说明

# CDB
SQL>
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> show parameter spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/19.3.0
                                                 /dbhome_1/dbs/spfilecdb1.ora
SQL>
SQL> alter session set container=PDB1;
Session altered.
SQL> show parameter spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/19.3.0
                                                 /dbhome_1/dbs/spfilecdb1.ora
SQL> alter session set container=cdb$root;
Session altered.
SQL>

CDB Fleet特性

Fleet就是一个逻辑的CDB集合。其中,Lead CDB 是CDB Fleet中用于监控和管理其它CDB的。

在CDB Fleet中,可以通过以下方式来访问CDB和PDB中的数据:

  • CDB视图
  • GV$视图
  • CONTAINERS子句
  • 容器映射

配置CDB FLEET环境

1.设置Lead CDB ,通过以下命令启动该特性:

# 启动 LEAD CDB
SQL>
SQL> alter database set lead_cdb = true;
Database altered.
SQL> select property_value from database_properties where property_name='LEAD_CDB';
PROPERTY_VALUE
--------------------
TRUE
SQL> 

管理PDB

管理PDB和管理普通的Non-CDB一样,可以管理表空间、数据文件、临时文件和用户对象等。

  • 启动和关闭CDB
  • 修改CDB
  • 管理以下组件:进程、内存、错误和告警信息、诊断数据、控制文件、在线redo日志、归档日志、UNDO模式。
  • 创建、插入、拔出和删除PDB。

在系统级别修改PDB

到此这篇关于Oracle CDB管理实现多租户管理功能的文章就介绍到这了,更多相关Oracle CDB管理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Oracle 12c实现手工建库而非CDB及CDB创建的方法

    前言 相信大家应该都知道,对于Oracle数据库的创建,Oracle除了支持dbca(GUI界面),同时也支持手工方式创建数据库,即使用CREATE DATABASE语句创建数据库.使用此语句对使用DBCA的一个优点是可以从脚本内创建数据库. 在Oracle 12c版本中支持12c之前的非CDB数据库以及CDB容器数据库.因此创建方式略有不同.本文同时描述2种不同数据库的手工创建方法.下面话不多说了,来一起看看详细的介绍吧. 一.12c手工创建非CDB数据库 步骤1:指定实例标识符(SID) O

  • Oracle CDB管理实现多租户管理功能

    目录 CDB的管理 1.当前容器 2.修改CDB的参数 3.修改PDB的参数 1.使用ALTER DATABASE 命令修改CDB的参数 2.使用ALTER DATABASE命令修改CDB的UNDO模式 4.CDB和PDB参数保存位置说明 CDB Fleet特性 配置CDB FLEET环境 管理PDB CDB的管理 1.当前容器 通过SYS_CONTEXT命令来查看, col con_id format a10 col con_name format a20 select sys_context

  • 详解vue身份认证管理和租户管理

    概述 功能模块的开发往往是最容易的,但是要处理好每个细节就不容易了.就拿这里的身份认证管理模块来说,看似很简单,因为后端接口都是ABP模板里现成的,前端部分无非就是写界面,调接口,绑数据:但是看一下ABP Angular版本的代码,就会发现他其实是有很多细节方面的处理的. 回到vue,因为前端部分的代码文件太多,下面只列出一些需要注意的细节,其他的像vue组件.表格.表单.数据绑定.接口请求之类的其实都差不多就不说了. 按钮级权限 前面章节中实现了菜单权限的控制,按钮权限的道理也是一样的.判断a

  • servlet实现简单的权限管理和敏感词过滤功能

    前言 JavaEE课要求用servlet和过滤器实现权限管理和敏感词过滤功能,故有此文. 虽然早已知道了原理和用法,但是实际操作起来还是遇到了各种奇葩的情况. 一.如何实现权限管理 1.思路 当用户访问某个资源时,我们必须对其权限控制,所以得用到servlet中过滤器来对请求做一次预处理,判断该用户是否有权限访问该资源,如果有则放行;如果没有则返回拒绝访问的通知. 那么我们如何判断该用户是否有权限访问呢? 这就要求我们在用户登录的时候保存其登录状态. 可我们知道http请求是无状态的,即这次请求

  • oracle通过存储过程上传list保存功能

    一.创建oracle 需要保存的数据类型type和存储过程produce create TYPE "AL01TYPE" as object ( -- 描述 : 档案批量转出 -- 作者 : dt -- 时间 : 2021-05-10 -- 版本 :dev-1.0.1 aac003 NVARCHAR2(100), aac002 NVARCHAR2(50), aat001 NVARCHAR2(50), aat002 NVARCHAR2(50), aat013 NVARCHAR2(20),

  • Oracle数据库中表空间的基本管理操作小结

    DB存储层次结构 (画了个草图,将就看一下...XD) 管理表空间 -system 存放数据字典信息,必须的,创建数据库时第一个创建 -sysaux 10g新,必须的,辅助分担system的负荷,系统管理如oem等三方工具等 -undo 存储回滚段信息,提供事务回滚功能 -temp 存放用户排序的临时数据 -index 存放用户表上的索引信息 -other 不同用户表数据 获取表空间和数据文件信息 表空间信息:DBA_TABLESPACES        V$TABLESPACE        

  • Spring boot security权限管理集成cas单点登录功能的实现

    目录 1.Springboot集成Springsecurity 2.部署CASserver 3.配置CASclient 挣扎了两周,Spring security的cas终于搞出来了,废话不多说,开篇! 1.Spring boot集成Spring security 本篇是使用spring security集成cas,因此,先得集成spring security新建一个Spring boot项目,加入maven依赖,我这里是用的架构是Spring boot2.0.4+Spring mvc+Spri

  • oracle区管理和段空间管理详细介绍

    作为一名DBA,常见的一个场景之一: 创建表空间: 复制代码 代码如下: createtablespaceThink datafile'/u01/app/oracle/oradata/orcl/think.dbf'size100M autoextendonnext10Mmaxsize4096M extentmanagementlocaluniformsize256K segmentspacemanagementauto; 创建用户: 复制代码 代码如下: createuserbin defaul

  • Jquery与Bootstrap实现后台管理页面增删改查功能示例

    使用jquery与bootstrap实现了一个比较简单但功能齐全的增删改查功能的后台管理页面,虽然只是一个CRUD页面,但麻雀虽小五脏俱全,JS常用的功能都用到了,本例用原生的jquery与bootstrap配合使用,不考虑JS的重构性及打包,该例子零耦合,开箱即用. 先看Demo: 一.用到的Jquery功能 1.获取/赋值input输入值 $("#my_id").val();// 获取 $("#my_id").val("user_id");/

  • Asp.net管理信息系统中数据统计功能的实现方法

    数据统计是每个系统中必备的功能,在给领导汇报统计数据,工作中需要的进展数据时非常有用. 在我看来,一个统计的模块应该实现以下功能: 能够将常用的查询的统计结果显示出来: 显示的结果可以是表格形式,也可以是图形形式,如果是图形的话能够以多种形式显示(柱状图.折线图.饼图.雷达图.堆叠柱状图等): 统计查询的结果,点击数字或者百分比能够显示详细的数据: 能够自由组合查询条件.筛选条件.分组条件.排序等: 统计结果最好有个实时预览: 查询统计能够保存,以便下次能直接调用并显示统计查询的结果: 对于保存

  • Vue用户管理的增删改查功能详解

    目录 1.向api请求发出查询用户列表数据,渲染表单数据 2.通过v-model绑定查询数据,进行表单信息查询 3.通过改变布尔值,来控制打开取消添加用户对话框 4.通过动态绑定current-page和page-size,再绑定触发事件,查询指定多少条数据,进行数据分页 总结 1.向api请求发出查询用户列表数据,渲染表单数据 1.定义查询参数列表对象queryInfo:{} queryInfo: { query: '', // 查询 pagenum: 1, // 当前页数 pagesize:

随机推荐