文章目录
1 查看当前连接的容器
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
- 或者
SELECT SYS_CONTEXT('USERENV','CON_NAME') FROM dual;
此时使用的是CDB容器,需要切换到PDB中进行。
2 查看pdb下库的信息
SQL> select name,open_mode from v$pdbs;
NAME
--------------------------------------------------------------------------------
OPEN_MODE
--------------------
PDB$SEED
READ ONLY
XEPDB1
READ WRITE
有两个容器PDB$SEED
和XEPDB1
,READ WRITE
表示开启。
3 将连接改到XEPDB1下,并查看当前连接
SQL> alter session set container=XEPDB1;
会话已更改。
SQL> show con_name;
CON_NAME
------------------------------
XEPDB1
显示当前连接为XEPDB1
即可。
4 创建表空间
SQL> CREATE tablespace yunfeng datafile 'D:\oracle\tablespace\yunfeng.dbf' SIZE 10m autoextend on next 10m;
表空间已创建。
5 创建用户
SQL> CREATE USER yunfeng IDENTIFIED BY yunfeng DEFAULT tablespace yunfeng;
用户已创建。
6 用户赋权
- dba:所有权限。
- connect:这个权限允许用户连接到 Oracle 数据库实例。
- resource:这个权限允许用户创建表、序列、过程等数据库对象,并使用表空间和存储过程等资源。
SQL> grant dba to yunfeng;
授权成功。
7 删除表空间、用户
7.1 删除表空间
-- 删除空的表空间,但是不包含物理文件
DROP tablespace 表空间名称;
-- 删除空表空间,包含物理文件
DROP tablespace 表空间名称 INCLUDING datafiles;
-- 删除非空表空间,但是不包含物理文件
DROP tablespace 表空间名称 INCLUDING contents;
--删除非空表空间,包含物理文件
DROP tablespace 表空间名称 INCLUDING contents AND datafiles;
--如果其他表空间中的表有外键等约束关联到了本表空间中表的字段,需要加上CASCADE CONSTRAINTS
DROP tablespace 表空间名称 INCLUDING contents AND datafiles CASCADE CONSTRAINTS;
7.2 删除用户
-- 只是删除此用户
DROP USER 用户名;
-- 会删除此用户及此用户关联的所有表和视图
DROP USER 用户名 CASCADE;
8 CDB与PDB的概念
CDB(Container Database)和 PDB(Pluggable Database)是 Oracle 数据库的两个重要概念,它们主要指的是多租户架构中的两个层次。
CDB 是一个特殊的数据库,它能够容纳多个 PDB。CDB 中有一个叫做根容器(Root Container)的容器,它包含了所有 PDB 的元数据。通过连接到根容器,用户可以管理整个 CDB 中的 PDB。在 CDB 中,可以通过创建、删除、打开、关闭、备份和恢复方式来管理 PDB。
PDB 则是位于 CDB 内部的,相互独立的逻辑数据库组件。每个 PDB 包含了自己的数据和数据库对象,就好像是一个传统意义上的独立的数据库一样。PDB 可以看作是一个基于模板的数据库,一个 CDB 可以包含多个不同的 PDB,而每个 PDB 都是相互独立的。每个 PDB 拥有自己独立的命名空间、数据和数据库对象,可根据需要进行管理、备份、恢复和升级,这些操作不会影响到其他 PDB 或 CDB。
CDB 和 PDB 的主要作用在于提高服务器的资源利用率和降低管理成本。在多租户架构中,一个物理的 CDB 能够拥有多个 PDB,每个 PDB 可以由不同的用户、应用程序和团队管理,每个 PDB 可以看作是一个小型的、相对独立的数据库。这种架构方式优点在于降低了架构复杂度和维护成本,实现了更高的资源利用率和更灵活的数据库管理,并且避免了不同用户或应用程序之间的命名空间冲突等问题。
<!--oracle驱动-->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.nls/orai18n -->
<dependency>
<groupId>com.oracle.database.nls</groupId>
<artifactId>orai18n</artifactId>
<version>21.1.0.0</version>
</dependency>