oracle 12c cdb pdb

2024年 4月 13日 103.2k 0

Oracle 12c CDB PDB,指的是Oracle 12c中的Container Database和Pluggable Database,它们的出现在数据库管理中是一次重要的革命。CDB是一个容器,PDB是在CDB内部的一个虚拟的数据库,每个PDB拥有独立的数据文件、用户和权限管理体系,且能够单独备份和恢复。这种多租户架构的出现,使得数据库管理员能够更加灵活的管理数据库,同时提高了数据库的安全性和资源的利用效率。

以往,在传统模式的数据库中,如果需要创建一个新的实例,需要通过安装新的数据库软件来实现;而在CDB中,可以很轻松的创建一个新的PDB,只需要几条简单的命令就可以实现。例如,我们现在创建一个名叫mypdb的PDB:

create pluggable database mypdb admin user pdbadmin identified by oracle
file_name_convert = ('/u01/app/oracle/oradata/cdb1/pdbseed', '/u02/app/oracle/oradata/cdb1/mypdb');

以上代码表明了创建一个名为mypdb的PDB,其中指定了admin user的密码,同时给出了文件名转换的规则,将PDB的数据文件存放在了 '/u02/app/oracle/oradata/cdb1/mypdb' 目录下,同时可以看出,PDB实际上是在CDB的基础上进行创建的。

除了创建PDB,对于PDB的管理也更加简单,管理员可以直接登陆到CDB中的任一PDB内,即可操作对应的PDB,就像操作一个本地的数据库实例一样。例如:

alter session set container=mypdb;

以上命令就是将管理员的会话切换到了名为mypdb的PDB中,之后的操作都是针对该PDB实例的。在CDB中,管理员可以方便的进行PDB的备份、恢复和升级,而且可以更好的优化硬件资源使用,提高了数据库的效率。

需要注意的是,在使用多租户的模式时,每个PDB拥有独立的用户和权限管理体系,因此扮演着安全隔离的角色。对于PDB内部的用户、角色和权限的管理,可以通过SQL进行操作,例如:

create user scott identified by tiger container=all;
grant create session,create table to scott container=all;
alter user scott account unlock container=all;

以上代码就是创建了一个名为scott的用户,并授予了该用户创建会话和创建表的权限,并解锁了该用户。需要注意的是,在多租户模式下,权限必须指明是在CDB中授予,还是在PDB中授予,container=all表示在所有的PDB和CDB中都进行授权,这是一个非常重要的概念。

综上所述,Oracle 12C CDB PDB是Oracle数据库的重要特性之一,它为数据库管理员带来了更加灵活和高效的数据库管理模式,使得数据库的使用更加方便和安全。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论