Oracle12c多租户如何连接到CDB或PDB、CDB与PDB容器切换

Oracle 数据库 12 c 多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB)。
那么我们如何连接到容器数据库 (CDB) 和可插拔数据库 (PDB)。

1. V$SERVICES视图可以显示数据库中的可用服务。
SQL> col pdb for a40
SQL> col name for a30;
SELECT name, pdb FROM v$services ORDER BY name;SQL> 
NAME       PDB
------------------------------ ----------------------------------------
SYS$BACKGROUND       CDB$ROOT
SYS$USERS       CDB$ROOT
andycdb       CDB$ROOT
andycdbXDB       CDB$ROOT
pdb01       PDB01

-- lsnrctl实用程序显示可用的服务。
[[email protected] ~]$ lsnrctl status
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=12c01)(PORT=1521)))
Services Summary...
Service "4ecf8621e3da38eee0531019640aa598" has 1 instance(s).
  Instance "andycdb", status READY, has 1 handler(s) for this service...
Service "andycdb" has 1 instance(s).
  Instance "andycdb", status READY, has 1 handler(s) for this service...
Service "andycdbXDB" has 1 instance(s).
  Instance "andycdb", status READY, has 1 handler(s) for this service...
Service "pdb01" has 1 instance(s).
  Instance "andycdb", status READY, has 1 handler(s) for this service...
The command completed successfully

2.直接连接到一个容器数据库 (CDB)
连接到数据库的根容器和连接以前版本的单个数据库实例相同。在数据库服务器上,您可以使用操作系统身份验证。

方法一:

[[email protected] ~]$ sqlplus / as sysdba

方法二:

或者 tnsnames.ora 文件配置

ANDYCDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = andycdb)
    )
  )

C:\Users\andy>sqlplus sys/[email protected]:1521/andycdb as sysdba

3.直接连接到一个可插拔的数据库 (PDB)

tnsnames.ora 文件配置:

PDB01 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.25.16)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdb01)
    )
  )

C:\Users\andy>sqlplus sys/[email protected]:1521/pdb01 as sysdba
SQL> show con_name
CON_NAME
------------------------------
PDB01
说明:PDB 具有 SYSDBA、 SYSOPER、 SYSBACKUP 或 SYSDG 特权的用户可以连接到已关闭的 PDB。
PDB 的所有其他用户(CONNECT SESSION权限的用户)仅可以连接已经打开的PDB。

4. 容器之间切换

SQL> ALTER SESSION SET container=pdb01;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
PDB01
SQL> alter session set container=cdb$root;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT

时间: 2024-10-22 13:07:27

Oracle12c多租户如何连接到CDB或PDB、CDB与PDB容器切换的相关文章

Oracle12c多租户CDB 与 PDB 参数文件位置探讨、查询 CDB 与 PDB 不同值的参数

一. Oracle12c多租户CDB 与 PDB 参数文件位置 CDB的参数文件依然使用12c以前的SPIFLE,pdb的参数文件不会出现在SPFILE中,而是直接从CDB中继承,如果PDB中有privete Local parameter 会存在 CDB 的 PDB_SPFILE$字典表 中以con_id区别,当PDB UN-Plug时,PDB参数会写入PDB的XML文件中,当drop pluggable database后,pdb信息和PDB_SPFILE$记录也会被清除.再当PDB重新Pl

Oracle 12c 多租户在 CDB 中 Plug A PDB,Unplugging A PDB

Oracle 数据库 12 c 中介绍了多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB).本文简单的演示了如何在 CDB 中 Plug A PDB,Unplugging A PDB 操作. 一. plugged PDB into Unplugged PDBSQL> show pdbs    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ -------

多租户:在Oracle12.2中 从Non-CDB迁移到PDB,从PDB迁移另一个CDB中

1.从PDB或者Non-CDB迁移到另一个CDB的PDB准备 从PDB或者Non-CDB迁移到CDB容器数据库中PDB,由于PDB和Non-CDB迁移到CDB的步骤几乎相同,PDB和Non-CDB迁移非常相似,共同进行处理.准备:CDB1:目标pdb数据库的容器数据库db12c: 需要迁移的Non-CDBCDB3: 需要迁移pbd的容器数据库 2.在Oracle DB12C克隆远程PDB或者Non-CDB --注:local代表目的或者目标CDB端,remote代表PBD或者Non-CDB 的源

Oracle12C多租户管理用户、角色、权限

在Oracle12C中,用户权限的管理相对传统的 Oracle 单数据库环境稍有不同.在多租户环境中有两种类型的用户. ①:共同用户(Common User): 该用户存在所有容器 (根和所有的 Pdb) 中. ②:本地用户(Local User): 用户只有在特定的 PDB 中存在.同样的用户名中可以存在多个Pdb中创建,但它们之间没有关系. 同样,有两种类型的角色:如 ①:共同角色(Common Role): 该角色在所有容器 (根和所有的 Pdb) 中. ②:本地角色(Local Role

Oracle 12c 多租户家族(12c 18c 19c)如何在 PDB 中添加 HR 模式

Oracle 12c 多租户家族(12c [12.2.0.1].18c [12.2.0.2].19c [12.2.0.3])如何在 PDB 中添加模式:19c (19.3) 手工添加示例 HR 用户 Oracle 12c 如何在 PDB 中添加 SCOTT 模式(手工方式) Oracle 12c 如何在 PDB 中添加 SCOTT 模式(数据泵方式) 目录 1. 配置TNSNAMES.ora 2. 连接PDB 3. 执行脚本 1. 配置TNSNAMES.ora 略,请参考 12c 手工方式和 1

Oracle12c中配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB)

Oracle12c中的多宿主选项允许一个容器数据库(CDB)容纳多个独立的可插拔数据库(PDB).本文将展示如何配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB).1. 配置CDB中的实例参数(ALTER SYSTEM)配置CDB实例参数和配置非CDB实例参数没什么不一样.ALTER SYSTEM命令用来设置初始化参数,而有些数据库配置修改需要用ALTER DATABASE命令.作为一个特权用户登录且连接到根容器时,任何ALTER SYSTEM命令默认都将作用于该根容器.这意味着如下

Oracle12c之 CDB数据库中数据字典架构

数据字典就是元数据的集合,比如创建的表,列,约束,触发器等等这些都是元数据,需要保存到数据库中.除此之外,Oracle自身的一些数据库对象,如目录,PL/SQL代码等等这些都是元数据,都需要存放在数据字典中.随着12c 容器数据的普及,Oracle数据字典发生了哪些变化呢,下文即是具体描述. 一.数据字典及其形成 1.数据字典 数据字典是元数据的集合,从逻辑上和物理上描述了数据库及内容,存储于SYSTEM与SYSAUX表空间内的若干段. SYS用户拥有所有的数据字典表,数据字典基本一般以结尾,如

Oracle 12c 如何连接到 CDB 和 PDB

1  连接到CDB 和普通实例一样的连接. 指定ORACLE_SID 以后可以使用OS认证,也可以使用密码进行连接. [[email protected] /]$ echo $ORACLE_SID cndba [[email protected] /]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production onMon Apr 28 11:33:43 2014 Copyright (c) 1982, 2013, Oracle. 

Oracle12C新特性——cdb与pdb

Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB).CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库.在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载.而实例与数据库不可