Oracle 12c 之后的版本都是容器数据库CDB,业务跑在可插拔数据库PDB中。对于从 11g 转 12c 的业务,如果不想使用 CDB、PDB,还能使用 11g 类似的传统架构吗?
答案是可以,12c 在数据库创建时可以选择 Non-CDB 模式,也就是弃用容器数据库,把 12c 当 11g 用。

在创建 12c 数据库时,有一个选项 【】创建为容器数据库,如果不选,数据库使用的就是传统架构。
数据库创建完后,也可以通过动态性能视图查看当前数据是否为CDB模式。
SQL> select name , cdb from v$database;NAME CDB--------------- ---WALLASON NO
在Non-CDB模式,一切都和11g时一样。只有一个实例,使用 ORACLE_SID指定数据库实例,使用操作系统认证登陆即可。虽然版本是 12c 但架构上还是和11g一样,不需要考虑 CDB 、PDB 切换的事,没有容器数据库,一切都简单很多。
附:12c CDB 、PDB 上下文切换
查看 cdb 、pdb 信息
SQL> select name , cdb from v$database;SQL> show con_nameSQL> show con_idSQL> show pdbsSQL> select name,con_id from v$services;SQL> select name,con_id,open_mode from v$pdbs;
由 CDB 切换到 PDB
SQL> alter session set container=pdb1;
由 PDB 切换到 CDB
SQL> alter session set container=cdb$root;-- 或者直接使用操作系统认证登陆到CDBSQL> conn / as sysdba
PDB 关库例子
alter pluggable database pdb1 close immediate;alter pluggable database all except pdb1 close;alter pluggable database all close;connect sys@pdb1 as sysdbaalter pluggable database close;sutdown immediate;
PDB 打开数据库
alter pluggable database pdb1 open;alter pluggable database pdb1 close immediate;alter pluggable database all open;
查看、保存 PDB 在 CDB 关库时的状态
alter pluggable database pdb1 save state;select con_name,instance_name,state from cdb_pdb_saved_states;alter pluggable database pdb1 discard state;
文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




