一、问题发现
在Oracle 19c多租户环境中,默认情况下,使用startup命令启动数据库实例后,你会发现PDB数据库的状态为MOUNT状态,PDB不会随着CDB启动而启动。
二、查看当前使用的数据库类型
使用sqlplus以管理员身份登录数据库
sqlplus / as sysdba
如果数据库在oracle账号下,则切换到oracle账号
su - oracle
使用如下命令查看数据库类型
select sys_context('USERENV','CON_NAME') from dual;
若是CDB,则需要切换,先查看当前PDB数据库名称
show pdbs;
如果PDB数据库的状态时MOUNTED,是不能进行读写操作的,需要置为OPEN;
三、开启PDB数据库
注意名称大小写,复制,使用语句进行启动,开启PDB数据库,ORCLPDB 是我自己的PDB数据库名,自行替换哈
alter pluggable database ORCLPDB open;
再切换到PDB数据库
alter session set container=ORCLPDB;
再查看当前使用容器
select sys_context('USERENV','CON_NAME') from dual;
四、扩展
# 启动数据库
startup;
# 关闭数据库
shutdown immediate;
# 开启全部pdb
alter pluggable database all open;
# 关闭所有dpb
alter pluggable database all close;