首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >登录连接 CDB 和 PDB

登录连接 CDB 和 PDB

原创
作者头像
用户8006012
修改2022-07-05 17:17:09
修改2022-07-05 17:17:09
1.5K0
举报
文章被收录于专栏:DATABASEDATABASE
代码语言:javascript
复制
SYS@orcl> select name from v$datafile;

NAME
------------------------------------------------------------------------------------------------------------------------
/oradata/ORCL/system01.dbf
/oradata/ORCL/sysaux01.dbf
/oradata/ORCL/undotbs01.dbf
/oradata/ORCL/pdbseed/system01.dbf
/oradata/ORCL/pdbseed/sysaux01.dbf
/oradata/ORCL/users01.dbf
/oradata/ORCL/pdbseed/undotbs01.dbf

7 rows selected.

SYS@orcl> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
SYS@orcl>

1 连接 CDB 和 PDB

代码语言:javascript
复制
1.1 设置 ORACLE_SID
配置 ORACLE_SID,使用 OS 验证连接 cdb1
[oracle@orcl19c:/home/oracle]$ export ORACLE_SID=cdb1
[oracle@orcl19c:/home/oracle]$ echo $ORACLE_SID

1.2 连接多租户数据库 cdb1

设置了 ORACLE_SID 环境变量后,直接使用 sqlplus 本地操作系统认证登录

代码语言:javascript
复制
[oracle@orcl19c:/home/oracle]$ sqlplus / as sysdba
代码语言:javascript
复制
dbca 建库后, tnsnames.ora 中已经增加了 ORCL
[oracle@orcl19c:/home/oracle]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = orcl19C)(PORT = 1521))


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = orcl19C)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

使用 tnsnames 服务名登录

代码语言:javascript
复制
[oracle@orcl19c:/home/oracle]$ sqlplus sys/oracle@ORCL as sysdba

1.3 查看数据库是否是多租户数据库

代码语言:javascript
复制
SYS@ORCL> select name,cdb from v$database;

NAME      CDB
--------- ---
ORCL      YES

1.4 查看当前连接的容器

代码语言:javascript
复制
SYS@ORCL>  show con_name

CON_NAME
------------------------------
CDB$ROOT
SYS@ORCL> show con_id

CON_ID
------------------------------
1

1.5 查看可插拔数据库 pdb 状态

代码语言:javascript
复制
SYS@ORCL> select name,con_id,open_mode from v$pdbs;

NAME                               CON_ID OPEN_MODE
------------------------------ ---------- ----------
PDB$SEED                                2 READ ONLY

SYS@ORCL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO

1.6 连接到可插拔数据库 pdb

代码语言:javascript
复制
方法一:alter session set container
SYS@cdb1> alter session set container=pdb1;
SYS@cdb1> show con_name

方法二:使用服务名连接
查看 pdb1 服务名
SYS@cdb1> select name,con_id from v$services;
ezconnect 方式
使用 ezconnect 的方式,明确指定主机名(ip 地址)、端口号、服务名
[oracle@orcl19c ~]$ sqlplus sys/oracle@192.168.30.81:1521/pdb1 as sysdba

配置 tnsnames.ora 增加 pdb1
编写客户端网络配置文件 tnsnames.ora,增加 pdb1 的配置
[oracle@orcl19c ~]$ cd $ORACLE_HOME/network/admin
[oracle@orcl19c admin]$ vi tnsnames.ora
pdb1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = orcl19C)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
  
sqlplus 通过服务名连接 pdb1
[oracle@orcl19c ~]$ sqlplus sys/oracle@pdb1 as sysdba
SYS@pdb1> show con_name
SYS@pdb1> show pdbs

cdb 使用 connect 命令切换到 pdb
查看当前容器
SYS@cdb1> show pdbs
sqlplus 中使用 connect 命令直接切换到 pdb1
SYS@cdb1> conn sys/oracle@pdb1 as sysdba
SYS@pdb1> show pdbs

1.7 pdb 切换回 cdb

代码语言:javascript
复制
1.7.1 方法一:alter session set container
SYS@pdb1> alter session set container=cdb$root;
SYS@pdb1> show pdbs

建议通过服务名的方式切换或连接
SYS@pdb1> conn sys/oracle@cdb1 as sysdba

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档