Oracle 12C 多租户下的一些命令
1,删库,还是熟悉的配方
start mount restrict;
drop database;
2,删除某个PDB
以SYSDBA登录root:
select sys_context('USERENV','CON_NAME') from dual;
确保要删除的PDB是mount状态或者unplugged,注意,mount状态,必须指定including datafiles;
select con_id,name,open_mode from v$containers order by 1;
alter pluggable database SALES close immediate;
drop pluggable database SALES including datafiles;
3,unplug pdb
想关闭PDB:
alter pluggable database hrpdb close immediate;
oracle使用xml文件来记录相关PDB信息,所以unplug的时候,要指定把信息写入到哪个文件,一般和数据文件放在一起:
alter pluggable database hrpdb unplug into '/oradata/datafile/RYAN/963218A3C0920B2DE053649DA8C09483/datafile/hrpdb.xml';
这个时候再来查看v$containers,你会惊讶地发现hrpdb还在:
让我们试着open hrpdb,会发现报ORA-65086,这个时候只能够选择drop:
让我们把hrpdb drop掉看看,默认会keep datafiles:
这个时候再查询就看不到了
4,plug pdb
说是plug,其实是以该xml创建一个pdb,nocopy就相当于重用,注意名字可以改:
create pluggable database SALES as clone using '/oradata/datafile/RYAN/xxxxxxxxxxxxxxx' nocopy;
查看数据文件,你会发现看不到SALES的,这个时候只要打开PDB就能看到了:
关闭了就又看不到了:
alter pluggable database sales close immediate;
5,普通的创建PDB
create pluggable database hrpdb admin user ryan identified by oracle role=(dba) default tablespace hrpdb datafile '/oradata/datafile/RYAN/datafile/hrpdb/hrpdb_data.dbf' size 50m;
注意:admin user以及表空间是你在运行这条命令的时候创建的,而不是提前创建的
select a.con_id,name,tablespace_name,file_name from cdb_data_files a,v$containers b where a.con_id=b.con_id;
连接到PDB,查询默认的用户表空间
select username,default_tablespace from dba_users where username='RYAN';