Oracle 12C以及更高版本中引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。
在oracle使用中,我们可能面临需要自己创建一个pdb实例,比如:
(1)来区分不同的项目工程
(2)创建用户时报错ORA-65096: invalid common user or role name,也就是处于cdb状态而不是pdb状态,需要切换到pdb状态,此时没有pdb或者pdb名称与自己需要的不符
创建pdb方法有很多,比如复制现有PDB,复制模板等;
这里介绍一种方案,复制模板创建:
1、安装oracle,已安装可以略过,没有安装的可以参考文章:
linux下离线安装oracle数据库_linux离线安装oracle_林间6的博客-CSDN博客linux下安装oracle,预安装文件,compat-libstdc++-33,oracle-database-preinstall-19c-1.0-1,必安装前置依赖包,rpm文件,一键安装,带有oracle个人安装笔记,按照笔记安装基本可以顺利安装,内附常见问题_linux离线安装oraclehttps://blog.csdn.net/weixin_47315082/article/details/131330882 2、找到自己的安装目录,比如我的是:/opt/oracle/oradata/,在这个目录下,可以看到数据库的SID名称的文件夹
3、进入主文件夹,可以看到自己创建的pdb文件,我们可以通过sqlplus命令show pdbs来查看现有的pdb,其中pdbseed就是模本的模板
4、创建命令:sqlplus下执行
create pluggable database pdb名称 admin user 管理员名称 identified by 管理员密码 roles=(dba) default tablespace users datafile '+data' size 250M autoextend on
FILE_NAME_CONVERT = ('/opt/oracle/oradata/BSOFT/pdbseed/', '/opt/oracle/oradata/BSOFT/pdb名称/')
PATH_PREFIX = '/opt/oracle/oradata/BSOFT/pdb名称/';
5、创建成功之后,启动pdb
alter pluggable database pdb名称 open;
6、配置监听,找到监听文件listener.ora:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = *.*.*.*)(PORT = 1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC =
(GLOBAL_DBNAME = pdb名称)
(SID_NAME = SID名称)
)
(SID_DESC =
(GLOBAL_DBNAME = pdb名称)
(SID_NAME = SID名称)
)
)
7、重启监听。
lsnrctl start #启动监听
lsnrctl stop #关闭监听
lsnrctl status #查看监听