创建表空间

1.语法

CREATE [SMALLFILE/BIGFILE] TABLESPACE tablespace_name
DATAFILE '/path/filename' SIZE num[k/m] REUSE
[,'/path/filename' SIZE num[k/m] REUSE]
[...]
[AUTOEXTEND [ON|OFF] NEXT num[k/m]]
[MAXSIZE EXTEND [UNLIMITED | num[k/m]]]
[MINIMUN EXTEND num[k/m]]
[DEFAULT STORAGE storage]
[ONLINE|OFFLINE]
[LOGGING|NOLOGGING]
[PERMANENT|TEMPORARY]
[EXTENT MANAGEMENT DIRECTORY|LOCAL [AUTOALLOCATE|UNIFORM SIZE num[k/m]]]]

语法中的关键字

  • SMALLFILE/BIGFILE:表示创建的是小文件表空间还是大文件表空间
  • AUTOEXTEND [ON|OFF] NEXT :表示数据文件为自动扩展(ON)或非自动扩展(OFF),如果是自动扩展,则需要设置NEXT的值。
  • MAXSIZE :表示当前数据文件扩展时,允许数据文件扩展的最大长度字节数,如果指定UNLIMITED关键字,则不需要指定字节长度。
  • MINIMUN EXTEND:指定最小的长度,由操作系统和数据库的块决定。
  • ONLINE|OFFLINE:创建表空间时可以指定为在线或离线
  • PERMANENT|TEMPORARY:指定创建的表空间时永久表空间或临时表空间,默认是永久表空间。
  • LOGGING|NOLOGGING指定该表空间内的表在加载数据时是否产生日志,默认产生日志。即使设置为NOLOGGING,但在进行INSERT、UPDATE、DELETE操作时,Oracle仍将操作记录到Redo Log Buffer中。
  • EXTENT MANAGEMENT DIRECTORY|LOCAL指定表空间的扩展方式是使用数据字典管理还是本地化管理,默认本地化管理。Oracle不推荐使用数据字典表管理表空间。、
  • AUTOALLOCATE|UNIFORM :如果采用本地化管理表空间,在表空间扩展时,指定每次盘区扩展的大小是由系统自动指定还是按照同等大小进行。若按照同等大小进行,则默认每次扩展为1MB

语法中的参数说明

  • tablespace_name:该参数表示要创建的表空间名称
  • '/path/filename' :该参数表示数据文件的名字与存储路径,REUSE表示该表空间存在,则清除该文件后重新创建,不存在,则直接创建。
  • DEFAULT STORAGE storage:指定以后要创建的表、索引及簇的存储参数值,这些参数将影响以后表等的存储参数。
  • num[K/M]指文件的大小,例如10k 或者10M

2.创建表空间实例

案例一:创建一个扩展大小为5M的表空间

create tablespace tbs_test_1 datafile 'D:\app\OLIVER\oradata\tbs_file1.dbf'
size 20m
extent management local uniform size 5M;

注意:此种方法建立的表空间存储上限值为20M.

当表空间容量快要超过20M时,则会报错如下:

案例二:创建一个扩展大小为自动管理的表空间

create tablespace tbs_test_2 datafile 'D:\app\OLIVER\oradata\tbs_file2.dbf'
size 20m
extent management local autoallocate;

同理,当表空间大小快要达到20M时候报错如上图。

注意:此种方法建立的表空间存储上限值为20M.

案例三:创建自动扩容的表空间

create tablespace tbs_test_3 datafile 'D:\app\OLIVER\oradata\tbs_file3.dbf'
size 20m
autoextend on next 2M maxsize unlimited
extent management local autoallocate;

当向数据表插入数据是,表空间会一直往数据表插入数据,并且表空间每增加一次为2M

案例四:通过段空间管理方式建立表空间

段空间管理方式是建立在本地化空间管理方式的基础之上

段空间管理的2种方式:(推荐使用自动段管理表空间

  • 手工段空间管理方式
  • 自动段空间管理方式

1.手工段空间管理方式

手工段空间管理方式是为了往后兼容而保留的。它使用自由块列表和PCT_FREE与PCT_USED参数来标识可供插入操作的数据块。

在每个INSERT或UPDATE操作后,数据库都会比较该数据块中的剩余自由空间与该段的PCT_FREE设置。如果数据块的自由空间少于PCT_FREE自由空间(也就是说剩余空间已经进入系统的下限设置),则数据库就会从自由块列表上将其取下,不在对其进行插入操作。剩余的表空间保留给可能会增大数据库块中行大小的UPDATE操作。

而在每个UPDATE或者DELETE操作之后,数据库会比较该数据块中的已用空间与PCT_USED设置,如果已用空间少于PCT_USED已用空间(也就是已用空间未达到系统的上限设置),则该数据块会被加入到自由列表中,供INSERT操作使用。

1.1创建例子:

CREATE TABLESPACE tb_test_t3 datafile 'D:\APP\OLIVER\ORADATA\tb_test_t3.DBF'
size 20M
extent management local autoallocate
segment space management manual;

2.自动段空间管理方式

如果采取自动段管理方式,那么数据库会使用位图而不是自由列表来标识哪些数据块可以用于插入操作,哪些数据块需要从自由块列表上将其取下。此时,表空间段的PCT_FREE和PCT_USED参数会被自动忽略。

Tips:

1.自动段空间管理方式不能用于创建临时表空间与系统表空间

2.Oracle本身推荐的是自动段管理方式,但是在其默认的情况下是手工管理方式,所以在创建表空间的时候需要制定为AUTO

2.1 创建例子

CREATE TABLESPACE tb_test_t4 datafile 'D:\APP\OLIVER\ORADATA\tb_test_t4.DBF'
size 20M
extent management local autoallocate
segment space management auto;

案例五:创建一个数据文件大小为2GB的大文件表空间

大文件表空间主要被用于存储区域网络上(SNA),磁盘阵列上、自动存储管理(ASM)上和类似的提供禁止数据访问多设备的存储解决方案上。

create bigfile tablespace tbs_test_big datafile 'D:\APP\OLIVER\ORADATA\TB_TEST_BIG.DBF'
size 2G

创建大文件表空间可能比较慢,耐心等待即可。

如果创建完毕后觉得给的存储空间太大,想修改为1G也是可以的,使用如下命令即可修改

alter tablespace tbs_test_big resize 1G

使用OEM创建表空间

登录到https://IP:1158/em  IP为Oracle所在服务器IP地址

输入用户名 密码登录

点击该页面的【创建】,其他默认值即可

在上图对应页面的右下角点击【添加】,然后填写文件名、文件目录、文件大小、扩展方式等信息后【继续】

此时返回到创建表空间页面

此时点击上图中的【存储】后如下图,在此图中可以设置表空间的区管理方式,段空间管理方式、是否压缩、以及是否启用事件记录等选项。如果需要查看SQL,直接点击右上角的【显示SQL】即可查看

显示SQL

确认无误后,返回点击【确定】即可完成表空间的创建。

删除表空间

1.语法

DROP TABLESPACE tbs_name[INCLUDING CONTENTS][CASCADE CONSTRAINTS]

  • tbs_name要删除的表空间名称

  • INCLUDING CONTENTS:删除表空间的时候删除数据,如果不指定该参数,则删除时候会报错
  • CASCADE CONSTRAINTS表示当删除表空间时也删除相关的完整性限制,完整性限制包括主键及唯一索引等。如果完整性存在,而没有该参数,则表空间删除报错,并且表空间无法删除。

2.删除实例

drop tablespace TBS_TEST_3 including contents cascade constraints

查询表空间

1.查询表空间使用情况

查询表空间使用情况https://www.cnblogs.com/OliverQin/p/5217481.html


2.查询表空间的管理类型

select tablespace_name,extent_management,allocation_type from dba_tablespaces

表空间的管理模式:

  • 本地化管理的表空间(Local Managed Tablespace)

  • 数据字典管理的表空间(Directory Managed Tablesapce)

数据字典管理的表空间,存储效率低,存储参数难以管理以及磁盘碎片等问题,所以被淘汰。

3.查询表空间对应数据文件的名称、大小和路径信息

select * from dba_data_files where TABLESPACE_NAME='TEST_DM'

4.查询表空间的状态

select tablespace_name,status from dba_tablespaces where tablespace_name=’TEST_DM’

修改表空间

表空间修改包括以下几点:

  • 为表空间增加新的数据文件

  • 修改数据文件的大小
  • 修改数据文件的自动扩展性
  • 移动数据文件

1.为表空间增加新的数据文件

创建表空间时,需要创建指定的数据文件。在Oracle中,数据文件的大小决定表空间的大小,在表空间使用过程中如果出现表空间不足的情况,可以采用增加一个数据文件的方式增大表空间

(构成表空间的数据文件可以有很多个目录下的,表空间的大小为这些数据文件大小的合计)

alter tablespace TEST_DM
add datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST_DM01.DBF'
size 10M

2.修改数据文件的大小

另一个增大表空间的方法,增加数据文件的大小

alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST_DM01.DBF' resize 500M

3.修改数据文件的自动扩展属性

alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST_DM01.DBF' autoextend on next 5m

此时继续查询表:

【Oracle】表空间相关集合的更多相关文章

  1. oracle表空间相关

    数据库被划分为若干个表空间,每个表空间内保存一组相关的逻辑对象.每个表空间由一个或者多个数据文件组成.oracle中的数据逻辑上存储在表空间里,物理上存储在属于该表空间的数据文件里.表空间是用户和物理 ...

  2. oracle表空间相关SQL语句

    Oracle 数据库查看表空间的使用情况 SELECT d.tablespace_name, space "SUM_SPACE(MB)", ) "USED_SPACE(M ...

  3. oracle表空间相关统计查询

    部分转自 https://www.cnblogs.com/xwdreamer/p/3511047.html--查询表空间使用情况SELECT UPPER(F.TABLESPACE_NAME) &quo ...

  4. Oracle表空间管理

    oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;              //修改表空间数据文件类型 2.ALT ...

  5. oracle表空间不足相关问题解决办法

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  6. oracle 表空间管理相关(原创)

    通过以下几步基本可以查看表空间情况以及处理表空间不足问题. ASM相关 查看asm空间 select group_number,name,total_mb,free_mb from v$asm_dis ...

  7. 【转】Oracle 表空间与数据文件

    --============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或 ...

  8. Oracle 表空间与数据文件

    -============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或多 ...

  9. ORACLE表空间管理维护

    1:表空间概念 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成. 如下图所示, ...

随机推荐

  1. 树形DP+(分组背包||二叉树,一般树,森林之间的转换)codevs 1378 选课

    codevs 1378 选课 时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond  题目描述 Description 学校实行学分制.每门的必修课都有固定的学分 ...

  2. 线段树 求区间连乘——hdu 3074 Multiply game

    Multiply game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  3. 内功心法 -- java.util.LinkedList<E> (6)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  4. ACM -- 算法小结(五)字符串算法之Sunday算法

    1. Sunday算法是Daniel M.Sunday于1990年提出的一种比BM算法搜索速度更快的算法. 2. Sunday算法其实思想跟BM算法很相似,只不过Sunday算法是从前往后匹配, 在匹 ...

  5. jquery datatables使用

    引入相应css 和js <link href="http://cdn.datatables.net/1.10.5/css/jquery.dataTables.css" rel ...

  6. SSM+Maven(教程一):学习SSM框架的前提条件。

    准备工作 环境准备 1.配置jdk:http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html Intelij中配置JDK:File- ...

  7. linux下使用free命令查看实际内存占用(可用内存)

    转:http://blog.is36.com/linux_free_command_for_memory/ linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free -m ...

  8. KindEditor编辑器常用操作

    创建编辑器: ar editor=KindEditor.create('#nr'); 设置编辑器内容: editor.html('编辑器内容'); 移除编辑器: editor.remove();

  9. .NET:负载平衡的主意事项

    允许局域网发现和共享. 设置固定IP. 网站的IP设置为“全部未分配”. 注意:如果停止IIS的话,不会对负载平衡有影响,负载还是会分配停止了的IIS所在在的电脑,只有停止服务器了,负载不会再分配给停 ...

  10. HDU 5288 OO&#39;s sequence (2015多校第一场 二分查找)

    OO's Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...