Oracle中有一个表空间的概念,一个数据库可以有好几个表空间,表放在表空间下。

1. 创建表空间

创建表空间使用create tablespace命令:

CREATE TABLESPACE foo_tablespace
DATAFILE 'E:/oracle/data/foo_tablespace.dbf'
SIZE 20M
AUTOEXTEND ON NEXT 5M
MAXSIZE 500M;

DATAFILE 'E:/oracle/data/foo_tablespace.dbf'  指定逻辑上的表空间在磁盘上的物理存储文件。

SIZE 20M 指定表空间的初始大小,创建完成后到磁盘上查看:

不管里面有多少数据,初始化的时候会先分配20M。

AUTOEXTEND ON NEXT 5M 当之前分配的那20M空间用完了之后怎么办,这个时候就需要能够动态扩展,这里指定每次扩展的时候扩展5M的空间。

MAXSIZE 500M 动态扩展也总会有有一个上限的吧,这里指定动态扩展最大扩展到多少就不再继续扩展了。

创建完成后查看其相关信息:

SQL> SELECT * FROM dba_data_files;
FILE_NAME                                                                           FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS    RELATIVE_FNO AUTOEXTENSIBLE   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_STATUS
-------------------------------------------------------------------------------- ---------- ------------------------------ ---------- ---------- --------- ------------ -------------- ---------- ---------- ------------ ---------- ----------- -------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF                                         4 USERS                             5242880        640 AVAILABLE            4 YES            3435972198    4194302          160    5177344         632 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF                                        3 SYSAUX                          262144000      32000 AVAILABLE            3 YES            3435972198    4194302         1280  262078464       31992 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF                                       2 UNDOTBS1                         26214400       3200 AVAILABLE            2 YES            3435972198    4194302          640   26148864        3192 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF                                        1 SYSTEM                          503316480      61440 AVAILABLE            1 YES            3435972198    4194302         1280  503250944       61432 SYSTEM
E:\ORACLE\DATA\FOO_TABLESPACE.DBF                                                         5 FOO_TABLESPACE                   20971520       2560 AVAILABLE            5 YES             524288000      64000          640   20905984        2552 ONLINE

2. 使用表空间

查看用户的默认表空间:

SQL> SELECT username, default_tablespace FROM dba_users;
USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
MGMT_VIEW                      SYSTEM
SYS                            SYSTEM
SYSTEM                         SYSTEM
DBSNMP                         SYSAUX
SYSMAN                         SYSAUX
FOO                            USERS
SCOTT                          USERS
SAM                            USERS
TOM                            USERS
OUTLN                          SYSTEM
MDSYS                          SYSAUX
ORDSYS                         SYSAUX
CTXSYS                         SYSAUX
ANONYMOUS                      SYSAUX
EXFSYS                         SYSAUX
DMSYS                          SYSAUX
WMSYS                          SYSAUX
XDB                            SYSAUX
ORDPLUGINS                     SYSAUX
SI_INFORMTN_SCHEMA             SYSAUX
USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
OLAPSYS                        SYSAUX
MDDATA                         USERS
DIP                            USERS
TSMSYS                         USERS
24 rows selected

一些特殊用户的默认表空间是SYSTEM,普通用户的默认表空间是USERS。

修改用户的默认表空间(只对一个用户生效):

ALTER USER SCOTT DEFAULT TABLESPACE foo_tablespace;

修改数据库级别的默认表空间(对整个数据库都生效):

ALTER DATABASE DEFAULT TABLESPACE foo_tablespace;

关于表空间:

在Oracle9i中,如果没有用DEFAULT TABLESPACE子句指定用户默认表空间的话其默认表空间就是SYSTEM,而且也不能为数据库指定默认表空间。

在Oracle10g中定义数据库级别的默认表空间是USERS,在创建用户时如果没有指定默认表空间就会使用数据库级别默认表空间。

在创建表的时候指定使用哪一个表空间:

CREATE TABLE t_user(id INT NOT NULL ,username VARCHAR2(20) NOT NULL ,passwd CHAR(32) NOT NULL ,CONSTRAINT PK_T_USER PRIMARY KEY (id)
) TABLESPACE foo_tablespace;

查看t_user表所属的表空间:

SQL> SELECT TABLE_NAME, TABLESPACE_NAME  FROM user_tables WHERE table_name='T_USER';
TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
T_USER                         FOO_TABLESPACE

对于已经创建了的表可以将其从一个表空间下移动到另一个表空间下:

ALTER TABLE t_user MOVE TABLESPACE users;

再查看,会发现之前的t_user已经到了默认的users表空间下:

SQL> SELECT TABLE_NAME, TABLESPACE_NAME  FROM user_tables WHERE table_name='T_USER';
TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
T_USER                         USERS

3. 重命名表空间

重命名表空间,修改表名类似:

ALTER TABLESPACE foo_tablespace RENAME TO foobar_tablespace;

4. 删除表空间

删掉表空间,连同其内已有的数据对象和磁盘上之前指定的数据文件都一并删掉:

DROP TABLESPACE foo_tablespace INCLUDING CONTENTS AND DATAFILES;

需要注意删除表空间的时候表空间必须不在使用状态。即没有哪个数据库用其作为默认表空间。

.

转载于:https://www.cnblogs.com/cc11001100/p/6988156.html

Oracle笔记之表空间相关推荐

  1. oracle 给表空间改名,Oracle重命名表空间和删除表空间

    在需要的情况下,可以对表空间的名称进行修改.修改表空间的名称,不会影响到表空间中的数据.但不能修改系统表空间system与sysa Oracle重命名表空间和删除表空间 [日期:2015-03-10] ...

  2. rac建oracle表空间,Oracle Rac创建表空间及用户

    1. 创建表空间: BEGIN DECLARE cnt integer := 0; BEGIN SELECT 1 INTO cnt FROM dual WHERE exists(SELECT * FR ...

  3. oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决

    在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...

  4. Oracle 基础篇 --- 表空间的操作

    2019独角兽企业重金招聘Python工程师标准>>> ###更改表空间 ####1 重命名表空间 将表空间 /home/oracle/app/oracle/product/11.2 ...

  5. Oracle的逻辑结构(表空间、段、区间、块)——Oracle数据块(一)

    Oracle 的逻辑结构 ( 表空间.段.区间.块 ) --块 Oracle 存储数据的最小单位是数据块.Oracle 管理 数据库 数据文件的存储空间被称为数据块,一个数据块是数据库使用的最小数据单 ...

  6. oracle中表空间创建,Oracle 如何创建表空间

    在Oracle中如何创建表空间呢?主要有两种方式:一种是用sql命令的方式,另外一种是通过Oracle客户端Enterprise Manager Console来创建.下面分别介绍一下: 1 通过sq ...

  7. [Oracle]理解undo表空间

    [Oracle]理解undo表空间 一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中, ...

  8. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  9. Linux下和Windows下创建Oracle数据库,表空间,Oracle用户

    通过SSH工具或是XShell工具进入远程Linux下. 其中,通过SSH工具登录的界面如下: 其中Host Name是远程服务器的ip地址.User Name是服务器的一个用户名,端口号默认22,C ...

最新文章

  1. 居住7年未交一分钱天然气使用费 女房主替租户偿还近4万元欠款
  2. 谈谈js初级封装代码
  3. Python知识点笔记-条件选择、循环和函数
  4. 【转】上篇:陈皓谈程序员升级:职业规划就像软件工程
  5. 没有一部是烂片 香港最强水准的10部影片
  6. HDU2602Bone Collector 简单0-1背包
  7. designer pyqt5 界面切换_PyQt5快速上手基础篇3-设置窗口标题和图标
  8. 2018年全国《程序员高考》真题试卷
  9. python 添加绝对路径时用反斜杠和正斜杠的区别
  10. 赛尔笔记 | 通用领域条件性知识图谱数据集
  11. 计算机超级终端 串口设置,win10系统超级终端软件连接串口设备的处理技巧
  12. 东芝2303am维护清零_东芝复印机维修代码大全
  13. postgresql数据库进行等保测评(审计) 需要修改的参数
  14. word文档中怎么输入公式符号
  15. python累乘怎么写_Python3 实现列表元素求累和,求累乘
  16. 每一个小孩都是种子,请允许Ta在成长的路上跌跌撞撞。耐心的等待,种子一定能长成参天大树!
  17. 学校计算机教室学生使用记录表,学校学生信息技术教学计划
  18. 修改RAC中的私网地址导致CRS启动失败
  19. 抗击奥密克戎回忆录:“旌旗十万斩阎罗”,我再一次杨康了
  20. 给小朋友讲故事——食盐的重要性实验

热门文章

  1. 1.数据库和表的创建
  2. css动画之旅--弹性菜单效果
  3. Linux-/proc目录简介
  4. 设计模式理解(二)创建型——单例、原型
  5. 解决EditText在ListView Item中,第一次点击无法获取焦点问题
  6. 金融业(互联网金融)创新---我的实地考察和见解
  7. Miner3D 数据分析软件
  8. qt 手动设置控件的位置
  9. 36 | 套路篇:怎么评估系统的网络性能?
  10. linux下weblogic版本,Linux下weblogic10.3.6(jar)版本安装详解