作者 | JiekeXu

来源 | JiekeXu之路(ID: JiekeXu_IT)

转载请联系授权 | (微信ID:xxq1426321293)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天分享下 Oracle 19c 之多租户 PDB 连接与访问

本文首发于微信公众号【JiekeXu之路】,欢迎点击上方蓝字关注我吧!

前面已经说过创建多租户以及多租户体系架构了,感兴趣的小伙伴可查看历史文章。今天下午微信公众号又有重大的更新了,底部出现了分享、点赞、再看三个按钮,所以发一篇试试新功能。首先看下图,基本上就可以看懂了 CDB、PDB 之间的访问了。

使用 sqlplus / as sysdba 直接连接到根容器,或者通过网络( sqlplus sys/oracle@IP:端口号/服务名)轻松连接方式等均可连接到根容器。

下面看一下如何直接登录到 PDB

为了演示,先使用模板在建立一个 JIEKEPDB1 吧,语法后面再具体介绍。

#使用如下命令创建一个JIEKEPDB1

create pluggable database JIEKEPDB1 admin

user pdbadmin identified by pdbadmin

roles=(DBA) default tablespace users

file_name_convert =

('/u01/app/oracle/oradata/JIEKECDB/pdbseed','/u01/app/oracle/oradata/JIEKECDB/JIEKEPDB1');

–注意,如果 file_name_convert 后边不写全路径,如上图所示创建,默认会在 $ORACLE_HOME/dbs 下创建一个名为 JIEKEPDB1 的目录存放数据文件。

当然也可删除后在使用上面命令重建

alter pluggable database JIEKEPDB1 close immediate;

drop pluggable database JIEKEPDB1 including datafiles;

**使用如下命令打开 JIEKEPDB1 **

SYS@JIEKECDB> alter pluggable database JIEKEPDB1 open;

SYS@JIEKECDB> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED

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

2 PDB$SEED READ ONLY NO

3 JIEKEPDB READ WRITE NO

5 JIEKEPDB1 READ WRITE NO

--注意 CON_ID 没有出现 4 是由于前面创建出现错误导致。

然后具体看一下直接连接到多租户 PDB 的方法:

1)export ORACLE_PDB_SID=JIEKEPDB1

不可以使用 export ORACLE_SID=JIEKEPDB1 的方式连接 PDB,因为实例只有一个,对应的 SID 是 JiekeCDB,不存在 Jiekepdb1 实例。但是 18c 、19c 可以使用  ORACLE_PDB_SID 来连接到 PDB,直接登录到数据库。

export ORACLE_PDB_SID=JIEKEPDB1sqlplus / as sysdbasho pdbs

2)ALTER 命令直接连接到 JIEKEPDB

当然也可以使用 alter session set container=JIEKEPDB,如下图演示。

3)export TWO_TASK=JIEKEPDB1

TWO_TASK 这个变量和前面的 ORACLE_PDB_SID 未在官方文档中有过说明,但很多技术文档中均使用这种方法,前提是 TWO_TASK 需要配置 tnsnames.ora 别名加用户、密码才可以登录。

vim $ORACLE_HOME/network/admin/tnsnames.ora

配置和连接如下图所示:

4)使用 tns 直接连接连接到 PDB

最后就是通过上面配置的 tns 网络别名加用户、密码直接登录到 PDB。

sqlplus sys/oracle@JIEKEPDB1 as sysdba

如上图,当我使用 sqlplus 连接到 PDB 时,每行 SQL 前均会显示所连接到的容器租户以及用户名称,如 SYS@JIEKEPDB1> .这个命令提示符是可以配置的。在 $ORACLE_HOME/sqlplus/admin 目录下有一个 glogin.sql 文件,在最后添加 sqlprompt 相关的提示便可以了。

set linesize 200set pagesize 999define _editor=viset sqlprompt "_user'@'_connect_identifier> "

那么,当连接到 PDB 后怎么回切到 CDB 呢?很简单,直接使用命令:conn /as sysdba即可。注意:show 命令我这里简写成了 sho 是没有任何问题的。

最最后,亲测,export ORACLE_PDB_SID 在12c 中不可用,不过 TWO_TASK=JIEKEXUPDB1 到时可以使用。如上结果均为新装单机 RPM 包的 19.3 环境,无任何补丁包具体安装可查看微信文章[Oracle 19c 之 RPM 包安装初体验(一)]

[oracle@JiekeXu admin]$ export ORACLE_PDB_SID=JIEKEXUPDB

[oracle@JiekeXu admin]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on 星期二 6月 23 09:15:52 2020

Copyright (c) 1982, 2016, Oracle. All rights reserved.

连接到:

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SYS@JiekeXu> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED

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

2 PDB$SEED READ ONLY NO

3 JIEKEXUPDB READ WRITE NO

4 JIEKEXUPDB1 READ WRITE NO

SYS@JiekeXu> show con_name

CON_NAME

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

CDB$ROOT

总结:有时候,通过根容器然后在切换到某个 PDB,是比较麻烦的,那么如果想直接连接到 PDB ,便可以配置环境变量 ORACLE_PDB_SID 它无疑是最方便的了,不过官方没有直接说明可以这么用,但从各种技术论坛文章中看到还是没有任何问题的。TWO_TASK 和直接通过 tns 别名登录到 PDB 的,需要多租户容器 SYS 密码,当不知道密码时比较麻烦;那么只有通过 sqlplus 先登录到根容器然后再使用 alter session set container 命令切换到某个具体的 PDB。

好了,今天就到先这里了,那么,对于容器数据库的切换,连接就说这么多了,小伙伴们再见了。写作不易,此文如果对你有帮助,请支持“在看”与转发,您的支持便是我不断写作的最大的动力,实在吝啬点个赞也行,微信公众号以前的点赞又回来了,加油,让我们一起努力做更好的自己!

点亮在看,你最好看!

pdb连接数_Oracle 19c 之多租户 PDB 连接与访问(三)相关推荐

  1. 12c集群日志位置_Oracle 19C RAC 集群日志位置变化

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了 ...

  2. oracle 连接数_Oracle多租户数据库资源管理,就这么简单

    我们知道,Oracle多租户选件是数据库原生支持的云管理能力,而不是像其它厂商采用云管理平台来实现多租户的功能,使得Oracle多租户选件可实现更高的资源利用率,更好的性能,更强的稳定性,和更简便的运 ...

  3. 12cR1通过unplug与plug方式升级PDB数据库到19c

    实验目标: 12cR1通过unplug与plug方式升级PDB数据库到19c 实验环境: 数据库:升级前版本Oracle 12c R1  ,升级前版本Oracle 19c,同一台服务器 操作系统:AI ...

  4. pdb连接数_CDB与PDB的连接-阿里云开发者社区

    1.连接 sqlplus system/xxxxx@10.8.5.206:1521/pdbtest ALTER SESSION SET CONTAINER = PDB$SEED; 2.再CDB中切换连 ...

  5. oracle19c查看pdb表空间,19c pdb如何保存启动状态

    我们要保存pdb状态,首先要了解视图DBA_PDB_SAVED_STATES显示了当前CDB中保存的pdb状态信息. This view is a data link, so the data is ...

  6. oracle19c只使用pdb模式,oracle 19c CDB vs pdb 创建

    概念理解 CDB就是一个容器(或者说实例instance),PDB就是传统的database概念, CDB可以包含多个pdb 来自官方文档:Administrator's Guide--> Mu ...

  7. 12c/19c unplug/plug迁移PDB

    参考链接: https://www.cndba.cn/dave/article/223 https://blog.csdn.net/ogdkevin/article/details/83106794 ...

  8. pdb连接数_PDB接口说明

    PDB-IO 使用说明 PKPM 自 V3.2 版正式发布了结构软件数据接口,即 PDB-IO ,所有 PKPM 正版用户均 可免费采用该接口对 PKPM 数据 (目前主要为 SATWE 和 PMSA ...

  9. linuxoracle静默安装应答文件修改_Oracle 19c的examples静默安装

    Oracle 11g的examples示例schema安装,在这篇文章<Oracle 11g的examples静默安装>介绍过了,Oracle 19c的examples示例schema安装 ...

最新文章

  1. [解析]多线程加锁Lock调用python2
  2. decide how to invest 15 million pound in the development cost?
  3. 网易加速5G下视频技术应用,携手南京银行数字化转型
  4. 【Android QR Code】开源项目:ZXing(一)导入项目
  5. java 绑定微信号开发_Java开发中的常见危险信号
  6. android unbound prefix
  7. tensorflow神奇问题
  8. DAG镶嵌模型+原始路径打印
  9. sklearn学习笔记之metrics
  10. 海量监控视频如何存储?
  11. 软件测试-黑盒测试方法(一)---等价类划分、边界值、因果图、判定表
  12. 计算机文化以计算机为核心,计算机文化础知识点总结(经典版) 考试专用.doc
  13. 树莓派3B+ WiFi 无线连接及配置
  14. Listener method could not be invoked with the incoming messageEndpoint handler details:Method
  15. 条码支付互联互通介绍
  16. 一行代码实现蒲公英市场APP检查更新
  17. 电影推广思路详解,最权威的电影推广方案
  18. win7打开任务管理器的快捷键
  19. linux返回上次所在的目录
  20. 中文科技论文写作技巧总结

热门文章

  1. tensorflow加载模型
  2. Tableau实战系列浏览 Tableau 环境(三) -在“数据”窗格的数据源中导航
  3. ubuntu查看内存或cpu使用情况
  4. 【数值分析】迭代法解方程:牛顿迭代法、Jacobi迭代法
  5. 串口上升时间标准_JESD204B串行接口时钟需要及其实现
  6. sp.coo_matrix() 详解
  7. Jupyterlab 插件安装后侧边栏找不到的解决
  8. QT 使用全局变量的方法
  9. GPU高效通信算法-Ring Allreduce
  10. 【分布式计算】DFS BigTable