正文
1、登录oracle所在服务器
2、su - oracle(linux),打开cmd(windows)
3、执行如下命令
sqlplus /nolog
conn /as sysdba;
show pdbs;
可以先查看下当前CDB下面有哪些已存在的PDB,防止名称重复
执行创建数据库命令
create pluggable database [pdb_name] admin user [username] identified by [password] default tablespace [tablespace_name];
如果提示ORA-65090: operation only allowed in a container database,则需要确认是否CDB模式。
SQL> select name ,cdb,open_mode from v$database;
NAME CDB OPEN_MODE
--------- --- --------------------
TRSEN YES READ WRITE
如果CDB列为NO,则说明不是CDB结构
还有其他选项和方式
--创建一个默认表空间USERS,roles默认为pdb_dba,与dbca方式类似,dbca方式会自动open 该pdb。
create pluggable database pdb3 admin user pdbadmin identified by pdbadmin roles=(dba) default tablespace users datafile '+data' size 250M autoextend on;
--没有默认表空间 USERS,此时数据库分配SYSTEM表空间为pdb默认表空间
create pluggable database pdb1 admin user pdbadmin identified by pdbadmin;
--指定pdb文件位置
create pluggable database pdb4 admin user pdbadmin identified by pdbadmin roles=(dba) default tablespace users datafile '/disk1/oracle/dbs/pdb4/users01.dbf' size 250M autoextend on
FILE_NAME_CONVERT = ('/disk1/oracle/dbs/pdbseed/', '/disk1/oracle/dbs/pdb4/')
PATH_PREFIX = '/disk1/oracle/dbs/pdb4/';
--从已存在的pdb克隆
CREATE PLUGGABLE DATABASE newpdb FROM pdb4
FILE_NAME_CONVERT = ('/disk1/oracle/dbs/pdb4/','/disk1/oracle/dbs/newpdb/')
PATH_PREFIX = '/disk1/oracle/dbs/newpdb';
--远程克隆
create pluggable database pdb8 from
mypdb@clonePdb FILE_NAME_CONVERT=('/u01/app/oracle/oradata/mypdb','/u01/app/oracle/oradata/TESTCDB/pdb8');
注意
如果密码带特殊字符,会提示ora-00922选项缺失或错误,应该用引号
开启数据库
alter pluggable database pdb_name open;
此时数据库就可以配置tns登录了,service_name就是pdb_name,username,password是你创建命令里的。
其他命令
--查看 pdb_dba权限,也就是pdbadmin具有创建pdb的权限
col granted_role for a20
select granted_role,ADMIN_OPTION from dba_role_privs where grantee='PDBADMIN';
select * from DBA_SYS_PRIVS where grantee='PDB_DBA';
--删除PDB
drop pluggable database pdb1 including datafiles;