--查询是否为cdb用户
select name,cdb from v$database;
--查询是否启用cdb
SELECT name,
DECODE(cdb,
'YES',
'Multitenant Option enabled',
'Regular 12c Database: ') "Multitenant Option",
open_mode,
con_id
FROM v$database;
--查看PDB信息(在CDB模式下)
--查看所有pdb
show pdbs
--查询所有cdb及pdb
select con_id,name from v$containers;
--v$pdbs为PDB信息视图
select name,open_mode from v$pdbs;
select con_id, dbid, guid, name, open_mode from v$pdbs;
--切换容器
--切换到PDBorcl1容器
alter session set container=pdbhk;
--切换到CDB容器
alter session set container=CDB$ROOT;
--查看当前属于哪个容器
--使用sys_context查看属于哪个容器
select sys_context('userenv', 'con_name') "Container DB" from dual;
--or
select sys_context('USERENV','CON_ID') as con_id,
sys_context('USERENV','CON_NAME') as cur_container,
sys_context('USERENV','SESSION_USER') as cur_user from dual;
--查看当前容器*(Container)
show con_name
show pdbs
--启动PDB
--开启指定PDB
alter pluggable database pdbhk open;
--开启所有PDB
alter pluggable database all open;
--切换到PDB进去开启数据库
alter session set container=pdbhk;
startup;
--关闭PDB
--关闭指定的PDB
alter pluggable database pdbhk close;
--关闭所有PDB
alter pluggable database all close;
--切换到PDB进去关闭数据库
alter session set container=pdbhk;
shutdown immediate;
--创建或克隆前要指定文件映射的位置(需要CBD下sysdba权限)
alter system set db_create_file_dest='/u01/app/oracle/oradata/orcl/pdbtest';
--创建一个新的PDB(需要CBD下sysdba权限)
create pluggable database pdbtest admin user admin identified by admin;
--将test_pdb 打开
alter pluggable database pdbtest open;
--克隆PDB(需要CBD下sysdba权限)
--pdbhk必须是打开的,才可以被打开
create pluggable database pdbtest from pdbhk;
--然后打开这个pdb
alter pluggable database pdbtest open;
--删除PDB(需要CBD下sysdba权限)
--关闭之后才能删除
alter pluggable database pdbtest close;
--删除PDB pdbtest
drop pluggable database pdbtest including datafiles;
--设置CDB启动PDB自动启动(在这里使用的是触发器)
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/