最新PDB数据库简介
- 格式:ppt
- 大小:1.72 MB
- 文档页数:22


oracle12c的CDB与PDBoracle12c的CDB与PDBoracle12c的新特性Oracle 12C引⼊了CDB与PDB的新特性,在ORACLE 12C数据库引⼊的多租⽤户环境(Multitenant Environment)中,允许⼀个数据库容器(CDB)承载多个可插拔数据库(PDB)。
CDB全称为Container Database,中⽂翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。
在ORACLE 12C之前,实例与数据库是⼀对⼀或多对⼀关系(RAC):即⼀个实例只能与⼀个数据库相关联,数据库可以被多个实例所加载。
⽽实例与数据库不可能是⼀对多的关系。
当进⼊ORACLE 12C后,实例与数据库可以是⼀对多的关系。
下⾯是官⽅⽂档关于CDB与PDB的关系图。
cdb相当于操作系统,调⽤并管理各个pdb。
pdb相当于真正提供业务需求的数据库实例。
oracle 12c安装后只创建了cdb,需要⾃⼰⽣成相应的pdb。
oracle 12c使⽤了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db.安装成功后修改tnsnames.ora我的在D:\app\oracle\product\12.1.0\dbhome_1\NETWORK\ADMIN⽂件夹下############################tnsnames.ora#######################cdborcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = orcl) #cdb的db_name))#pdbpdborcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = pdborcl) #pdb的db_name))##########################tnsnames.ora######################数据库下拉框会出现pdborcl选项遇到的坑使⽤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容器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。
oracle12c创建可插拔数据库(PDB)与⽤户详解前⾔由于oracle 12c使⽤了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使⽤。
⼀、修改listener.ora , tnsnames.ora###listener.ora###LISTENER =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = orcl)))#sid list列举cdb和所有pdb的数据库名,所有sid与oracle环境变量保持⼀致#SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = orcl) #cdb db_name(SID_NAME = orcl))(SID_DESC =(GLOBAL_DBNAME = pdborcl) #pdb db_name(SID_NAME = orcl)))###listener.ora#####tnsnames.ora####cdborcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = orcl) #cdb的db_name))#pdbpdborcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = pdborcl) #pdb的db_name))##tnsnames.ora###在客户端连接时使⽤“service_name+domain_name”连接。