创建表空间

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. Bellman-ford 算法详解

    昨天说的dijkstra固然很好用,但是却解决不了负权边,想要解决这个问题,就要用到Bellman-ford. 我个人认为Bellman-Ford比dijkstra要好理解一些,还是先上数据(有向图) ...

  2. 将mnist数据集存储到本地文件

    参考文章: http://www.csuldw.com/2016/02/25/2016-02-25-machine-learning-MNIST-dataset/ import numpy as np ...

  3. Redis-环境搭建、创建服务、搭建主从复制-Windows版本

    一.搭建Redis环境 1.链接:http://pan.baidu.com/s/1boKAzzL 密码:sh2r 2.不赘述:执行redis-server.再执行redis-cli即可.redis环境 ...

  4. 解决因为google cdn无法访问导致无法打开stackoverflow等网站的方法

    许多网站使用了Google的CDN来加速Jquery之类的库来加速网站访问,但由于方校长发福利的原因,导致这些网站很容易出现无法加载"ajax.googleapis.com"而出现 ...

  5. 支持Tasker控制的app合集

    跟各种Tasker插件打交道,原因有两点: 1.站在开发者的角度:Tasker虽为神器,也不能面面俱到,一个原因就是Android自身过于分裂化造成的,不可能兼顾全平台和机型:个人开发者精力有限,也满 ...

  6. Programmer in Google Code

    https://code.google.com/p/vsprog/ CLI program support USB_TO_XXX of Versaloon. Support AVR_ISP/JTAG, ...

  7. Spring使用@Required注解依赖检查

    Spring依赖检查 bean 配置文件用于确定的特定类型(基本,集合或对象)的所有属性被设置.在大多数情况下,你只需要确保特定属性已经设置但不是所有属性.. 对于这种情况,你需要 @Required ...

  8. NUMA架构

    参考: http://www.ibm.com/developerworks/cn/linux/l-numa/ http://blog.sina.com.cn/s/blog_3f5c2f8c01000b ...

  9. 每天进步一点点——关于SSD写入放大问题

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/29812433 1. 关于SSD的写入放大     之前在SSD(Solid State Dr ...

  10. java集合(ArrayList,Vector,LinkedList,HashSet,TreeSet的功能详解)

    说起集合,我们会潜意识里想到另外一个与之相近的名词——数组,OK!两者确实有相似之处,但也正是这点才是我们应该注意的地方,下面简单列出了两者的区别(具体功能的不同学习这篇文章后就会明白了): 数组 长 ...