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

19C 学习笔记之多租户下直接连接到 PDB

原创 JiekeXu 2020-06-23
2178

首先看这张图,直接连接到 PDB 便可以懂得一大半了。

image.png

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

#使用如下命令创建一个 PDB1
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');

复制

image.png

–注意,如果 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 由于前面创建出现错误导致。

复制

在具体查看连接多租户的方法:

1)export ORACLE_PDB_SID=JIEKEPDB1

不可以使用 export ORACLE_SID=pdb1 的方式连接 pdb,实例只有一个,对应 SID 是 cdb1,不存在 pdb1 实例。但是 18c 以上可以使用 export ORACLE_PDB_SID=JIEKEPDB1 来连接到 PDB。

2)SQL 命令行直接到 JIEKEPDB

当然也可以使用 alter session set container=JIEKEPDB;

image.png

3)export TWO_TASK=JIEKEPDB1

使用 TWO_TASK 需要配置 tnsnames.ora 别名加用户密码才可以。配置如下图:

image.png

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

image.png

亲测,12c 不能用,如上结果为新装单机 RPM 包的 19.3 环境,无任何补丁包具体安装可查看微信文章[(Oracle 19c 之 RPM 包安装初体验(一))]
https://mp.weixin.qq.com/s/v9MmLbrnMA5Zi3EXwzdWgw 。

[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 ,那么配置环境变量 ORACLE_PDB_SID 无疑是最方便的了,但官方好像没有直接说明可以这么用,不过从各种论坛文章中看到还是没有任何问题的。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论