删除表空间
INCLUDING CONTENTS:指删除表空间中的segments;
INCLUDING CONTENTS AND DATAFILES:指删除segments和datafiles;
CASCADE CONSTRAINTS:删除所有与该空间相关的完整性约束条件。
#将表空间和物理文件一起删除
drop tablespace SHOPMARKET including contents and datafiles CASCADE CONSTRAINTS;
查看容器
select con_id,dbid,NAME,OPEN_MODE from v$pdbs;
切换容器到pdb
alter session set container=PDBORCL;
查看当前使用容器
select sys_context ('USERENV', 'CON_NAME') from dual;
查看表空间
select tablespace_name from dba_tablespaces;
通过alter database命令修改数据库文件(database file)的大小
alter database datafile 'D:\app\oradata\orcl\abcd.DBF'resize 10240M
修改完成后可修改后的数据文件大小已经改变
select * from dba_data_files;
CDB,PDB
select pdb_id,pdb_name,dbid,status,creation_scn from dba_pdbs;
使用system登录,PLSQL Developer选择ORCL,执行
select name,open_mode from v$pdbs; 用来查看当前CDB容器中包含的PDB容器
pdborcl的open_mide的状态是READ WRITE,使用pdborcl也能登录,但是你重启服务器这个状态会变为
这时候PLSQL Developer选择pdborcl就不能登录了,出现错误
因为服务器重启时,pdb默认不启动
PLSQL Developer选择ORCL. system登录(或使用sqlplus)执行
alter pluggable database PDBORCL open; 启动pdb
创建用户
创建新用户,注意CDB容器中创建一个通用用户,用户名必须以C##或者c##开头,因为CDB中默认创建的是common user
如果想要创建本地用户,则要在PDB容器中创建,下面会说如何切换到PDB容器
切换至查到的某个PDB容器(上面查到的是PDBORCL)
注意使用这个命令需要的sysdba级别的权限,否则无法执行,切换后才可使用当前pdb的私有用户进行操作,12c数据库创建完成后,默认情况下使用sqlplus / as sysdba 登录连接的是CDB。
切换到PDB容器就可以创建本地用户了
create user test identified by 123456;
如果要切换回CDB容器只需将容器名换为CDB容器的名字即可,一个CDB只有一个根
alter session set container=CDB$ROOT;
常用命令
切换当前会话到某个pdb中。
alter session set container=PDBNAME
关闭当前会话所在的cdb/pdb
startup/shutdown immediate
打开指定pdb
alter pluggable database PDBNAME open ;
关闭指定pdb
alter pluggable database PDBNAME close immediate ;
可插接式数据库(PDB) 自动启动
默认情况下,在CDB 启动的时候,all 的PDB 都是mount状态。我们可以通过触发器来实现pdbs随cdb自动启动,但这里可以通过触发器来实现PDB的自动open:
sqlplus / as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/