初识Oracle表空间与数据文件,描述oracle数据库的逻辑结构,创建表空间,改变表空间大小,为临时段分配空间,改变表空间状态,改

学习目标

1.描述Oracle数据库的逻辑结构

2.创建表空间

3.改变表空间大小

4.为临时段分配空间

5.改变表空间状态

6.改变表空间的存储设置

首先看一下oracle存储结构:

1.oracle数据库逻辑结构包含哪些东西?

1)表空间

a.一个Oracle数据库逻辑上分为更小的逻辑区域叫做表空间

b.一个表空间同时只属于一个数据库

c.每个表空间由一个或多个系统文件组成,叫做数据文件datafile

d.一个表空间可以有1个或多个段组成

e.当数据库运行时表空间可以是online状态

f.除了SYSTEM表空间或者带有活动回滚段的表空间,其他表空间可以设置为offline状态

g.表空间可以再读写(read-write)和只读(read-only)状态间切换

2)段

a.一个段是在一个表空间中为指定的逻辑存数结构分配的空间。例如,分配给一个表的所有存储就是一个段。

b.一个段只能属于一个表空间,可以跨越多个数据文件

c.一个段由一个或多个区组成

3)区

a.随着段的增长,额外的区将分配给段

b.DBA可以为段手动增加区

c.一个区是连续的oracle块集合

d.一个区只能在一个数据文件中存在

4)块

a.块作为oracle数据库最小的存储单位,数据全部存储在数据块中。

b.一个oracle数据块相当于一个或多个从已存在的数据文件中分配的操作系统块

c.一个标准数据块的大小由数据库创建时的初始化参数DB_BLOCK_SIZE指定

d.为避免不必要的I/O,数据块的大小应该是操作系统块大小的几倍

e.最大的数据块大小取决于操作系统

2.系统表空间与非系统表空间的区别?

1)系统表空间 system tablespaces:

a.随着数据库的创建而创建

b.在所有数据库中必须存在

c.系统表空间包含数据字典,存储程序单元

e.包含系统回滚段

f.最好不要包含用户数据

2)非系统表空间 non-system tablespaces:

a.分离回滚段、临时段、应用数据段和应用索引段

b.通过备份需求分离数据

c.分离动态和静态数据

e.控制用户对象空间分配的数量

f.方便数据库管理

3.如何创建表空间?

使用create tablespace语句,一下是官方示例:

CREATE TABLESPACE userdata

DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M

AUTOEXTEND ON NEXT 5M MAXSIZE 200M;

CREATE TABLESPACE tablespace

[DATAFILE clause]

[MINIMUM EXTENT integer[K|M]]

[BLOCKSIZE integer [K]]

[LOGGING|NOLOGGING]

[DEFAULT storage_clause ]

[ONLINE|OFFLINE]

[PERMANENT|TEMPORARY]

MINIMUM EXTENT 指定最小区大小,,使用K(千兆)或M(兆)

LOGGING 默认值,指定表空间中对所有表,索引和分区修改写入到redo中

NOLOGGING 与LOGGING相反

ONLINE与OFFLINE 创建完表空间后是否立即可用

PERMANENT 指定表空间可用来保留永久对象

TEMPORARY 指定表空间只能来保留临时对象

AUTOEXTEND 启用数据文件自动扩展

4.管理表空间的方式?

1)本地管理表空间

a.用位图bitmap(在每个数据文件中维护)记录空闲区

b.每个bit对应一个数据块

c.bit值指示空闲和已使用

好处:减少数据字典表的争用;空间分配和回收不发生undo;没有合并需求(减少碎片);

用法举例:

CREATE TABLESPACE userdata

DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;

[ EXTENT MANAGEMENT

[ DICTIONARY | LOCAL

[ AUTOALLOCATE | UNIFORM [SIZE integer[K|M]] ] ] ]

LOCAL和DICTIONARY 就不解释了。

AUTOALLOCATE 指定表空间由系统管理,用户不能指定区大小

UNIFORM 指定表空间由同一的区大小管理。使用K或M指定大小。

2)数据字典管理表空间

a.默认管理方法

b.空闲区被记录在数据字典表中

CREATE TABLESPACE userdata

DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M

EXTENT MANAGEMENT DICTIONARY

DEFAULT STORAGE ( initial 1M NEXT 1M );

5.undo表空间

1)undo表空间只能用来存储回滚段

2)创建undo表空间只能使用DATAFILE和EXTENT MANAGEMENT语句

CREATE UNDO TABLESPACE undo1

DATAFILE '/u01/oradata/undo101.dbf' SIZE 40M;

6.temporary表空间

1)用来进行排序操作 SORT_AREA_SIZE(用来设置排序区的大小)

2)不能包含任何永久对象

3)推荐使用本地管理

CREATE TEMPORARY TABLESPACE temp

TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M;

4)本地管理临时表空间有临时数据文件tempfiles:

a.临时文件一直是NOLOGGING模式

b.不能设置临时文件为只读read-only

c.不能重命名一个临时文件

d.不能使用ALTER DATABASE命令增加临时文件

e.临时文件对于只读数据库是需要的

f.介质恢复不恢复临时文件

g.备份控制文件时不生成任何临时文件的信息

h.创建控制文件时不能指定任何关于临时文件的信息

7.默认default临时表空间

1)避免使用SYSTEM表空间存储临时数据

2)可以使用CREATE DATABASE和ALTER DATABASE语句创建

3)当使用CREATE DATABSE命令创建,默认临时表空间为本地管理

默认临时表空间的限制:

a.没有指定新的默认临时表空间之前不能删除现有默认临时表空间

b.不能更改默认临时表空间为永久类型

c.不能修改默认临时表空间为offline状态

注:SYSTEM表空间、带有活动回滚段和默认临时表空间不能设置为离线状态

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

oracle表空间于表数据啥意思,初识Oracle表空间与数据文件相关推荐

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

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

  2. oracle有几种类型表空间,oracle 数据创建时如何指定表空间类型

    oracle建表时指定了表空间为何没起作用? oracle 12c /windows ,实验过程如下: 1.建第一个表空间data_tbs_01,数可以直接在创建语句后面追加"tablesp ...

  3. oracle将表导入到表空间,关于ORALCE一个表空间的数据导入到另一个表空间的方法(原创)...

    用户:   whnaproject     所属表空间: whnaproject 新用户   : wniec            所属新表空间: wniec 要求:将用户whnaproject中的数 ...

  4. navcat设置oracle表主键自增_初识 Oracle 表空间设置与管理

    本文出自头条号老王谈运维,转载请说明出处. 前言 表空间是 Oracle 特有的一种逻辑结构,是管理和组织 Oracle 数据文件一种方式,一个Oracle 数据库能够有一个或多个表空间,而一个表空间 ...

  5. oracle用户怎么更改空间,ORACLE创建表空间、创建用户、更改用户默认表空间以及授权、查看权限...

    Oracle创建用户.表空间.导入导出....命令 //创建临时表空间 create temporary tablespace ext_temp tempfile 'D:\oracle\product ...

  6. oracle建表后添加数据报错:ORA-01658:无法为表空间中的段创建INITIAL区

    看到这个,是表空间不足咧. 首先呢,我看了下建表时的表空间分配大小,分的挺多了64M,不行,改掉改成64k,ok啦. 别的表也报错.纠结了,决定给表空间大小改了. 1.先看下我的表空的位置 selec ...

  7. 如何把数据在A表空间里面,把它IMP进B表空间

    经常有人会问:原来的数据在A表空间里面,我想把它IMP进B表空间,我已经修改了目的用户的默认表空间,为什么结果还是IMP到USERS表空间中了呢. 关于此问题,作如下解释: Oracle并没有提供什么 ...

  8. oracle表空间状态如何离线,六步了解Oracle表空间状态

    六步了解Oracle表空间状态 本人很喜欢Oracle表空间,在工作中也很喜欢总结关于Oracle表空间状态的经验教训,下面就这个问题来详细说说吧. 1.查询Oracle表空间状态 select ta ...

  9. oracle表空间查询维护命令大全之二(undo表空间)

    --undo表空间汇总 --查看全部的表空间名字 select name from v$tablespace; --创建新的UNDO表空间,并设置自己主动扩展參数; create undo table ...

最新文章

  1. labview波形图两个游标,LabVIEW数据可视化:使用波形图表控件逐点显示曲线的方法...
  2. android悬浮按钮弹出与隐藏,Android悬浮窗按钮实现点击并显示/隐藏多功能列表
  3. 測试人员的核心能力与素养
  4. cocos2dx3.0五种屏幕适配模式,及FIXED_WIDTH、FIXED_HEIGHT使用
  5. 计算机所涉及的英语,计算机算法相关术语的英语词汇
  6. python做视频特效_python实现超简单的视频对象提取功能
  7. hello March
  8. webview session不失效_不懂HttpSession对象看这里--乐字节
  9. 非华为电脑安装华为电脑管家,实现与手机平板的多屏协同
  10. #开源的ZYNQ+AD936X SDR软件无线电
  11. CAD快捷键命令------画矩形
  12. linux编译n2n v2,在centos下安装n2n服务器
  13. Directx11教程四十六之FBX SDK
  14. 「亚马逊先生」的出世与入世
  15. comsol如何定义狄利克雷边界_COMSOL中周期性边界条件的应用
  16. BTC合约手续费计算
  17. 现代化交通难题处理,智慧停车系统建设刻不容缓
  18. 服务器系统u盘制作工具哪个好,服务器专用U盘装系统制作工具(PC也行)
  19. 全面的学习资料(收藏)
  20. 计算机辅助诊断(Computer-aided diagnosis)小总结

热门文章

  1. 函数的递推matlab,关于递推最小二乘法辨识参数的matlab编程(含注释)
  2. 在c语言中怎么修改信息,车管所信息变更
  3. OpenLayers中地图缩放级别的设置方法
  4. sitecore系统教程之架构概述
  5. 当我们在谈论multidex65535时,我们在谈论什么
  6. js window.open()打开的页面关闭后刷新父页面
  7. 【ASP】Menu菜单导航
  8. Torque2D MIT 实战记录: 塔防进度(3)
  9. 带排序动画的横向条形图
  10. [NOIP 2010普及组 No.3] 导弹拦截