Oracle数据库的表空间基本管理

一、概述

Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。

有了数据库,就可以创建表空间。

表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。

Oracle数据库的表空间基本管理

表空间是数据库中最大的逻辑单位, SYSTEM和SYSAUX表空间是在创建数据库时创建的必须存在的表空间,还会有TEMP, USERS等
每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联
表空间的大小等于构成该表空间的所有数据文件大小之和

-

安装完 Oracle后自动创建的表空间主要包括

  • SYSTEM系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,它属于sys、 system模式。不能删除或重命名。
  • SYSAUX辅助系统表空间,用于减少系统表空间的负荷,提高效率
  • TEMP临时表空间,存放临时表和临时数据,用于排序
  • USERS用户表空间,存放永久性用户对象及私有信息,也称数据表空间。注意:每一个数据库都应该有一个用户表空间,以便在创建用户时分配给用户,否则用户的数据将会使用SYSTEM表空间。
  • UNDO重做表空间,用来帮助回退未提交的事物数据

二、实验环境

主机 操作系统 IP地址 数据库版本
Oracle CentOS 7 192.168.100.135 oracle 12c

三、表空间管理

首先切换为Oracle用户

[root@HOSTNAMEoracle ~]# su - oracle

进入数据库,并启动Oracle

[oracle@HOSTNAMEoracle ~]$ sqlplus / as sysdba
SQL> startup

开启三阶段

启动实例--》数据库装载完毕--》数据库开启
Oracle数据库的表空间基本管理
SQL> quit #退出

开启监听

[oracle@HOSTNAMEoracle ~]$ lsnrctl 

LSNRCTL> start

Oracle数据库的表空间基本管理

Oracle数据库的表空间基本管理

LSNRCTL> quit


进入Oracle

[oracle@HOSTNAMEoracle ~]$ sqlplus / as sysdba

Oracle数据库的表空间基本管理

--------------------创建表空间-----------------------

创建表空间school(大小10M 自动扩展)

SQL> create tablespace school
  2  datafile '/orc/app/oracle/oradata/school01.dbf'
  3  size 10m autoextend on;

表空间已创建。

Oracle数据库的表空间基本管理

查看下是否有创建成功

[oracle@HOSTNAMEoracle ~]$ cd /orc/app/oracle/oradata
[oracle@HOSTNAMEoracle oradata]$ ls
orcl  school01.dbf

Oracle数据库的表空间基本管理

--------------------调整表空间大小------------------

修改大小

SQL> alter database datafile
  2  '/orc/app/oracle/oradata/school01.dbf'
  3  resize 80M;

数据库已更改。

Oracle数据库的表空间基本管理

查看下

Oracle数据库的表空间基本管理

添加文件

SQL> alter tablespace school
  2  add datafile
  3  '/orc/app/oracle/oradata/school02.dbf'
  4  size 50M autoextend on;

表空间已更改。

Oracle数据库的表空间基本管理

查看下

Oracle数据库的表空间基本管理

---------------------表空间权限----------------------------

#更改表空间school权限只能可读

SQL> alter tablespace school read only;

表空间已更改。
#更改表空间权限为可读可写

SQL> alter tablespace school read write;                

表空间已更改。

------------------删除表空间----------------

SQL> drop tablespace school including contents;

表空间已删除。(including contents 可选删除有内容的表空间)

Oracle数据库的表空间基本管理

查看下

SQL> select tablespace_name from dba_tablespaces;

Oracle数据库的表空间基本管理

猜你喜欢

转载自blog.51cto.com/13767783/2296510