创建与维护表空间(一)
一、数据库容器(CDB)与可插拔数据库(PDB)
在Oracle12c之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。。而实例与数据库不可能是一对多的关系。
当进入Oracle12c之后,实例与数据库可以是一对多的关系
二、表空间的概念及其主要作用
- 表空间是用于存储数据库对象的存储空间,是Oracle中组织不同数据文件的逻辑数据库对象。表空间是一个逻辑容器,一个表空间至少有一个数据文件与之关联。
- 表空间是Oracle数据库恢复的最小单位,容纳着许多数据库实体。
- 如果用户不创建表空间,那么,系统会给新创建的用户分配系统默认表空间(SYSTEM)。
三、表空间、数据库与数据文件
表空间是数据库对象的容器,容纳着许多数据库对象,一个数据库对象只能对应一个表空间(分区表和分区索引除外),但可以存储在该表空间所对应的一个或多个数据文件中。
1.表空间与数据库
一个数据库可以包含多个表空间,但是一个表空间一般只能属于一个数据库。
2.表空间与数据文件
一个表空间可以对应一个或多个数据文件,但一个数据文件只能属于一个表空间
四、方案、用户与表空间
1.方案
方案(schema)又叫用户模式,是比表空间小一级的逻辑概念,它也是一个逻辑容器。
方案是指一个用户下所有数据库对象的集合。
2.方案与用户
从用户方面来看,Oracle的一个用户就是一个方案。所有的表都属于不同的用户,一个用户要访问访问另一个用户的表,需要有授权。
scott.emp,可以称之为scott方案中的emp表,也可以称之为scott用户所拥有的emp表。以上两种说法是等价的。
3.方案(用户)与表空间
在一个数据库实例(instance)下可以有多个用户,每个用户只能有一个方案。方案是实际对象的集合,对象包括数据表,索引,视图等等。
表空间是逻辑上存放对象的地方,同一个表空间可以存储多个不同的方案的对象。
4.方案中对象的引用方法
五、认识Oracle系统的表空间
可以使用下面的命令查看表空间
代码如下(示例):
Select Username From dba_users;
表空间名称 | 功能 |
---|---|
SYSTEM | 创建数据库时自动创建的表空间 |
SYSAUX | 是SYSTEM表空间的一个辅助表空间 |
USERS | 是用户的默认永久性表空间,用于存储永久用户对象和私有信息 |
UNDOTBS1 | 为数据库的撤销表空间 |
TEMP | 为临时表空间 |
用户SYS、SYSTEM的默认表空间是SYSTEM,并且用户SYSTEM的名称与其表空间名称相同。
六、查看Oracle数据库默认的表空间
1.在SQL Plus环境查看系统默认创建的表空间
(1)以SYSTEM用户身份登录数据库服务器
以SYSTEM用户身份登录数据库服务器
输入以下命令查看数据字典dba_tablespaces的结构信息:
Desc dba_tablespaces
(2)查看Oracle数据库默认创建的表空间
select tablespace_name,status,contents from dba_tablespaces;
"ONLINE"表示表空间的状态为在线,即表空间可以使用
"PERMANENT"表示永久性表空间
"TEMPORARY"表示临时表空间
"UNDO"表示撤销表空间
(3)通过v$datafile数据字典查看Oracle数据库默认创建表空间对应的数据文件
select name from v$datafile;
(4)通过dba_data_files数据字典查看Oracle数据库默认创建表空间对应的数据文件及相关信息
select file_name,tablespace_name,online_status from dba_data_files;
2.在SQL Plus环境查看Oracle的默认表空间及其使用情况
(1)通过数据字典database_properties查看用户使用的永久性表空间和临时表空间
select property_name,property_value from database_properties where property_name in
(‘DEFAULT_PERMANENT_TABLESPACE’,‘DEFAULT_TEMP_TSBLESPACE’);
(2)通过数据字典dba_users查看指定用户使用的默认表空间
select default_tablespace,username from dba_users where username like ‘SYS%’;
(3)查看SYSTEM默认表空间的使用情况
select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space
where tablespace_name=‘SYSTEM’;
七、查看Oracle用户及其相关数据表信息
1.查看当前数据库中所有表空间的主要信息
select tablespace_name,block_size,status,contents segment_space_management
from dba_tablespaces;
2.查看OUTLN用户的所有表的信息
select owner,table_name,tablespace_name,status from dba_tables
where owner=‘OUTLN’;
3.查看SYSTEM用户的help数据表的信息
select owner,table_name,tablespace_name,status from dba_tables
where owner=‘SYSTEM’ and table_name=‘HELP’;
4.查看数据表“help”的结构数据和记录数据
desc system.help