暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 12c Non-CDB 模式

生有可恋 2022-02-11
2619

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_name
SQL> show con_id
SQL> show pdbs
SQL> 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;
-- 或者直接使用操作系统认证登陆到CDB
SQL> 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 sysdba
alter 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论