因为服务器重启时,pdb默认不启动

PLSQL Developer选择ORCL. system登录(或使用sqlplus)执行

alter pluggable database PDBORCL open; 启动pdb

创建用户

创建新用户,注意CDB容器中创建一个通用用户,用户名必须以C##或者c##开头,因为CDB中默认创建的是common user
如果想要创建本地用户,则要在PDB容器中创建,下面会说如何切换到PDB容器
create user C##test identified by 123456;    //其中C##test为用户名,123456为密码

给新用户授权
grant create session to C##test;  
           grant create table to   C##test;  
           grant create tablespace to   C##test;  
           grant create view to   C##test;

 

切换至查到的某个PDB容器(上面查到的是PDBORCL)
注意使用这个命令需要的sysdba级别的权限,否则无法执行,切换后才可使用当前pdb的私有用户进行操作,12c数据库创建完成后,默认情况下使用sqlplus / as sysdba  登录连接的是CDB。
alter session set container=PDBORCL

切换到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,指定的名称为一个以逗号分隔的列表

启动或者关闭 all pdbs
           ALTER PLUGGABLE DATABASE ALL OPEN;
           ALTER PLUGGABLE DATABASE ALL 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;
/