Oracle PDB(Pluggable Database,可插拔数据库)是Oracle多租户架构的核心组件,允许在容器数据库(CDB)中独立管理逻辑数据库单元,实现资源高效共享与灵活部署,以下常见PDB数据操作:
CDBSQL> SELECT name, cdb, open_mode FROM v$database;
NAME CDB OPEN_MODE
--------- --- --------------------
ORCL YES READ WRITE
CDB查询结果如果为
NO,则表示该数据库是传统非容器数据库(Non-CDB),不能创建 PDB 数据库)
SQL> SELECT pdb_name, status, creation_scn FROM dba_pdbs;
PDB_NAME STATUS CREATION_SCN
-------- ---------- ------------
ORCLPDB NORMAL 1438806
PDB$SEED NORMAL 1410268
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---- ---------- ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB MOUNTED
SQL> select sys_context('USERENV', 'CON_NAME') container_name, sys_context('USERENV', 'CON_ID') container_id FROM dual;
SQL> create pluggable database PDB01 admin user user01 identified by 12345678 roles=(dba) file_name_convert=('/u01/app/oracle/oradata/orcl/pdbseed','/u01/app/oracle/oradata/orcl/pdb01');
SQL> select name,restricted from v$pdbs;
NAME RES
------------- ---
PDB$SEED NO
ORCLPDB
PDB01
SQL> alter pluggable database PDB01 open;
SQL> startup pluggable database PDB01;
或者
SQL> alter session set container=PDB01;
SQL> alter database PDB01 open;
SQL> alter session set container=cdb$root;
SQL> alter session set container=PDB01;
SQL> alter pluggable database rename global_name to PDB01_NEW;
SQL> alter pluggable database PDB01 open read only;
SQL> create pluggable database PDB02 from PDB01 file_name_convert=('/u01/app/oracle/oradata/orcl/pdb01', '/u01/app/oracle/oradata/orcl/pdb02/');
SQL> select sys_context('USERENV','CON_NAME') from dual;
SQL> show con_name
SQL> alter pluggable database PDB01 close immediate;
注意:PDB数据库
close与close immediate和数据库的shutdown normal与shutdown immediate行为一致。
SQL> alter pluggable database all close;
-- 关闭当前实例上的PDB
SQL> alter pluggable database all close immediate;
-- 关闭所有实例上的PDB
SQL> alter pluggable database all close immediate instances=all;
SQL> drop pluggable database PDB01 keep datafiles;
SQL> drop pluggable database PDB01 including datafiles;

· · · · · END · · · · ·