show pdbs --查看所有pdb select name,open_mode from v$pdbs为PDB信息视图 select con_id, dbid, guid, name , open_mode from v$pdbs;
切换容器
1 2
alter session set container=orcl1 --切换到PDBorcl1容器 alter session set container=CDB$ROOT --切换到CDB容器
查看当前属于哪个容器
1 2
select sys_context('USERENV','CON_NAME') from dual; --使用sys_context查看属于哪个容器 show con_name --用show查看当前属于哪个容器
启动PDB
1 2 3 4
alter pluggable database orcl1 open; --开启指定PDB alter pluggable database all open; --开启所有PDB alter session set container=orcl1; --切换到PDB进去开启数据库 startup
关闭PDB
1 2 3 4
alter pluggable database orcl1 close; --关闭指定的PDB alter pluggable database all close; --关闭所有PDB alter session set container=orcl1; --切换到PDB进去关闭数据库 shutdown immediate
创建或克隆前要指定文件映射的位置(需要CBD下sysdba权限)
1
alter system set db_create_file_dest='/u01/app/oracle/oradata/orcl/orcl2';
创建一个新的PDB:(需要CBD下sysdba权限)
1 2
create pluggable database test admin user admin identified by admin; alter pluggable database test_pdb open; --将test_pdb 打开
克隆PDB(需要CBD下sysdba权限)
1 2
create pluggable database orcl2 from orcl1; --test_pdb必须是打开的,才可以被打开 alter pluggable database orcl2 open; --然后打开这个pdb
删除PDB(需要CBD下sysdba权限)
1 2
alter pluggable database orcl2 close; --关闭之后才能删除 drop pluggable database orcl2 including datafiles; --删除PDB orcl2
设置CDB启动PDB自动启动(在这里使用的是触发器)
1 2 3 4 5 6
CREATE OR REPLACE TRIGGER open_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; END open_pdbs; /
create pluggable database ora_pdb3 admin user hu identified by hu roles=(connect) default tablespace users datafile '/u01/app/oracle/oradata/ora12cdb/ora_pdb3/users01.dbf' size 20M autoextend on file_name_convert=('/u01/app/oracle/oradata/ora12cdb/pdbseed/','/u01/app/oracle/oradata/ora12cdb/ora_pdb3/');
查看PDB
1
show pdbs;
打开PDB
1
alter pluggable database ora_pdb3 open;
关闭PDB
1 2
alter pluggable database ora_pdb3 colse immediate; show pdbs;
通过已有PDB在本地克隆出新的PDB
实验步骤:
查看PDB
1
show pdbs
关闭需要被克隆的PDB,并打开为只读状态
1 2
alter pluggable database ora_pdb1 close immediate; alter pluggable database ora_pdb1 open read only;
create pluggable database ora_pdb4 from ora_pdb1 file_name_convert=('/u01/app/oracle/oradata/ora12cdb/ora_pdb1/','/u01/app/oracle/oradata/ora12cdb/ora_pdb4/'); show pdbs
打开PDB
1 2
alter pluggable database ora_pdb4 open; show pdbs
Oracle 12c 使用Non-CDB来创建PDB
现有一个非CDB的数据库ora12cdb,计划将其作为PDB,装入CDB中。
进入ORCL,将其设置为只读模式
1 2 3
startup mount alter database open read only; select OPEN_MODE from v$database;