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';

posted @ 2019-11-02 17:28  Ryan_Wo  阅读(381)  评论(0编辑  收藏  举报