详解oracle 12c数据库新特征CDB与PDB(热插拔数据库)以及表空间管
表空间概念
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。Oracle数据库中至少存在一个表空间,即SYSTEM的表空间 CDB与PDB概念Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系 实验环境系统环境:centos7.4 注意:如果没有搭建oracle 12c的朋友可以查看我之前写的博客,里面有详细的搭建过程http://blog.51cto.com/11905606/2295913 命令步骤一、登录数据库[[email?protected] ~]$ lsnrctl [[email?protected] ~]$ sqlplus / as sysdba #登录数据库 二、表空间管理1、创建表空间1)、创建临时表空间SQL> create temporary tablespace user_temp #指定表空间名称 2 tempfile ‘/opt/app/oracle/oradata/TEMPWORK01.DBF‘ #指定表空间物理路径 3 size 50m #指定表空间大小 4 autoextend on #设置表空间自动扩展 5 next 50m maxsize 20480m #每次扩展50M,最大扩展20480M 6 extent management local; #表空间的区管理为本地管理,为的是减少分配extent的时候产生的内部递归sql,提高数据库分配空间的效率. [[email?protected] ~]# cd /opt/app/oracle/oradata/ 2)、创建数据表空间SQL> create tablespace db_work 2 datafile ‘/opt/app/oracle/oradata/WORKDB01.DBF‘ 3 size 50m 4 autoextend on 5 next 50m maxsize 20480m 6 extent management local; 2、查看表空间SQL> select tablespace_name from dba_tablespaces; TABLESPACE_NAME -------------------------------------------------------------------------------- SYSTEM SYSAUX UNDOTBS1 TEMP USERS USER_TEMP DB_WORK 已选择 7 行。 3、调整表空间大小法一:直接修改大小SQL> alter database datafile 2 ‘/opt/app/oracle/oradata/WORKDB01.DBF‘ 3 resize 80m; #重新设置大小 [[email?protected] ~]# cd /opt/app/oracle/oradata/ 法二:添加文件SQL> alter tablespace db_work 2 add datafile 3 ‘/opt/app/oracle/oradata/WORKDB02.DBF‘ 4 size 50m 5 autoextend on 6 next 50m maxsize 20480m; [[email?protected] ~]# cd /opt/app/oracle/oradata/ 4、更改表空间权限SQL> alter tablespace db_work read only; #更改表空间为只读 SQL> alter tablespace db_work read write; #更改表空间为读写,默认情况下 5、删除表空间SQL> drop tablespace db_work including contents; #删除指定表空间,including contents参数表示删除表空间的所有内容 三、CDB与PDB操作1、查看数据库模式SQL> show con_name #查询当前所在的容器 CON_NAME ------------------------------ CDB$ROOT #默认为CDB模式 SQL> show pdbs #查询数据库的所有容器 CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO #存在容器型数据库,此时默认使用为PDB而非ORCLPDB 2、切换数据库模式为orclpdbSQL> alter pluggable database orclpdb open; #修改可插拔库orclpdb为开启状态 SQL> alter session set container=orclpdb; #CDB下切换会话到PDB中,oracle容器连接到插拔库中 SQL> show con_name CON_NAME ------------------------------ ORCLPDB #数据库模式已切换为容器型数据库 3、切换数据库模式为CDB$ROOTSQL> shutdown immediate #关闭数据库 插接式数据库已关闭。 SQL> startup #打开数据库 插接式数据库已打开。 SQL> alter session set container=cdb$root; #切换会话为CDB SQL> show con_name CON_NAME ------------------------------ CDB$ROOT #切换成功 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |