Oracle数据库管理之管理表空间和数据文件.docx

上传人:b****4 文档编号:3001610 上传时间:2022-11-17 格式:DOCX 页数:16 大小:136.07KB
下载 相关 举报
Oracle数据库管理之管理表空间和数据文件.docx_第1页
第1页 / 共16页
Oracle数据库管理之管理表空间和数据文件.docx_第2页
第2页 / 共16页
Oracle数据库管理之管理表空间和数据文件.docx_第3页
第3页 / 共16页
Oracle数据库管理之管理表空间和数据文件.docx_第4页
第4页 / 共16页
Oracle数据库管理之管理表空间和数据文件.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Oracle数据库管理之管理表空间和数据文件.docx

《Oracle数据库管理之管理表空间和数据文件.docx》由会员分享,可在线阅读,更多相关《Oracle数据库管理之管理表空间和数据文件.docx(16页珍藏版)》请在冰豆网上搜索。

Oracle数据库管理之管理表空间和数据文件.docx

Oracle数据库管理之管理表空间和数据文件

Oracle数据库管理之管理表空间和数据文件

一、Oracle引入逻辑结构

Oracle数据库管理系统没有直接地操作数据文件,而是引入了一组逻辑结构。

如图

1所示。

图1

图1的虚线左边为逻辑结构,右边为物理结构,在Oracle数据库中,逻辑结构为Oracle引入的结构,而物理结构为操作系统所拥有的结构,这样做增加了Oracle的可移植性。

在该图中,圆角形方框为实体,实线表示关系,单线表示一的关系,三条线(鹰爪)表示多的关系,于是可以得到:

1、每个数据库是由一个或多个表空间所组成(至少一个)。

2、每个表空间中可以存放有零个或多个段。

3、每个段是由一个或多个区段所组成。

4、每个区段是由一个或多个连续的Oracle数据块所组成。

5、每个Oracle数据块是由一个或多个连续的操作系统数据块所组成。

6、每个操作系统数据文件是由一个或多个区段所组成。

7、每个操作系统数据文件是由一个或多个操作系统数据块所组成。

二、表空间和数据文件之间的关系及表空间的分类

Oracle将数据逻辑地存放在表空间,而物理地存放在数据文件里。

表空间可以被进一步划分成一些更小的逻辑储存单位。

在一个Oracle数据库中,每个数据文件只属于一个表空间和一个数据库。

在一个Oracle数据库中一般有两类表空间,分别是系统表空间和非系统表空间。

系统表空间是与数据库一起建立的,在系统表空间中存有数据字典、系统还原(回滚)段。

非系统表空间可以由数据库管理员创建,储存一些单独的段,包括用户的数据段、索引段、还原段和临时段等。

三、创建表空间语法

CREATE[TEMPORARY|UNDO]TABLESPACE表空间名

[DATAFILE子句]

[MINIMUMEXTENT正整数[K|M]]

[BLOCKSIZE正整数K]

[ONLINE|OFFLINE]

[LOGGING|NOLOGGING]

[DEFAULTSTORAGE存储子句]

[EXTENTMANAGEMENTDICTIONARY|LOCAL

[AUTOALLOCATE|UNIFORMSIZE正整数K|M]]

[SEGMENTSPACEMANAGEMENTAUTO|MANUAL] ;

TEMPORARY|UNDO

TEMPORARY表示创建临时表空间,UNDO表示创建回滚表空间,如未使用表示创建永久表空间。

DATAFILE子句

指定与表空间相关联的数据文件的位置、名称和大小。

语法如下:

DATAFILE|TEMPFILE‘文件名’SIZEK|MREUSE

[AUTOEXTENTOFF|ON[NEXT正整数K|M

MAXSIZEUNLIMITED|正整数K|M]]

SQL>createtablespacemytbs01

datafile'D:

\app\Student\oradata\mytbs01.dbf'size5m

SQL>createtablespacemytbs02

datafile'D:

\app\Student\oradata\mytbs02_1.dbf'size5m,

'D:

\app\Student\oradata\mytbs02_2.dbf'size5m

autoallocate;

临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。

当临时表空间不足时,表现为运算速度异常的慢。

最好为每个数据库用户都指定一个公用的临时表空间,如果不指定,这些临时数据就都会放在SYSTEM表空间中,从而产生大量的碎片。

创建临时表空间,不能使用非标准数据块,另临时表空间不能存放永久对象。

临时表空间具有以下特征:

临时数据文件不能置为只读

临时数据文件不能重命名

监时数据文件的日志方式总是NOLOGGING

 

创建一个本地管理的临时表空间TEMPTBS

createtemporarytablespacetemptbs

tempfile'E:

\app\ZY\product\10.2.0\orcl\temp01.ora'

size50Mautoextendonnext5Mmaxsizeunlimited

extentmanagementlocal;

把临时数据放在TEMP临时表空间

alterdatabasedefaulttemporarytablespacetemptbs;

查看临时文件信息

selectfile#,status,bytes,namefromv$tempfile;

创建回滚表空间UNDOTBS

createundotablespaceundotbs

datafile'E:

\app\ZY\product\10.2.0\orcl\undo01.ora'

size40M;

创建undo表空间时不能指定统一区大小的选项(uniform),否则出错。

把回滚数据放在undotbs1回滚表空间

altersystemsetundo_management=autoscope=spfile;

altersystemsetundo_tablespace=undotbsscope=spfile;

创建表空间的条件

1.具有createtablespace的权限,DBA角色具有该权限,sysdba,sysoper

2.创建的是bigfiel,还是smallifle超过T级别应考虑bigfile

3.新建的表空间的I/O,是否会导致磁盘I/O不够用

4.datafile后跟的路径应该具备写的权限

临时表空间扩容:

--

(1)重置临时文件大小

alterdatabasetempfile'/opt/oracle/oradata/orcl/t2.dbf'resize150m;

--

(2)让临时文件能自动扩展

alterdatabasetempfile'/opt/oracle/oradata/orcl/t2.dbf'

autoextendonnext10mmaxsize50m;

--(3)增加临时文件

altertablespacet2addtempfile'/disk8/oracle/t2b.dbf'size50m;

--查看临时文件

selectTABLESPACE_NAME,FILE_NAME,BYTES/1024/1024"SIZE(MB)"

fromdba_temp_files;

--默认临时表空间:

select*fromdatabase_properties;

--修改默认临时表空间:

ALTERDATABASEDEFAULTTEMPORARYTABLESPACET2;

默认临时表空间最好要指定一下,如果没有指定默认的临时表空间,那么将使用system表空间作为排

序区

默认临时表空间有一定的限制:

默认临时表空间不能删除

默认临时表空间不能脱机

获得创建表空间的语句:

SELECTdbms_metadata.get_ddl('TABLESPACE','SYSTEM')FROMdual;

--查看缺省是BIGFILE还是SMALLFILE,当缺省为SMALLFILE,创建表空间不指定表空间类型则为SMALLFILE

建议创建表空间时最好带上[BIGFILE|SMALLFILE]参数,以免参数设置导致创建了不合理的表空间

注意:

大表文件(bigfile)最大可以存放个T的容量。

头文件的大小达到了G-->block,普通的头文件大小为M---->block。

createbigfiletablespace<>datafile<>........;

好处:

减少了数据文件的个数,管理方便,大的对象的存放得到了优化。

减少了control文件的信息,控制文件定义了datafile的个数。

bigfile只能存在一个数据文件,所以要保证分配的的磁盘具有足够的空间。

四、表空间的状态属性

离线(Offline)状态

表空间不可用。

任何保存在该表空间中的数据库对象将不可存取。

具有Normal、Temporary、Immediate和ForRecovery四种模式。

在线(Online)状态

用户可以访问其中的数据。

只读(Read-Only)状态

表空间中的表只能读,不能更新。

读写(Read-Write)状态

表空间能正常使用的状态。

五、表空间状态设置

把表空间users以Temporary方式置于离线状态

altertablespaceusersofflinetemporary ;

把表空间users置于在线状态

altertablespaceusersonline ;

把表空间users置于只读状态

altertablespaceusersreadonly;

把表空间users置于读写状态

altertablespaceusersreadwrite;

六、表空间的管理方式

字典管理:

oracle8i(不包括i),只存在一种表空间的管理模式,即字典管理表空间(DMT)

DMT是指oracle的空间分配或回收是通过数据库中的数据字典表来记录和管理的

用于管理的两个数据字典表分别是:

UET$(usedextents)和FET$(freeextents)

其工作方式是:

当建立一个新的段或者段在表空间时,oracle通过一系列的SQL语句来完成这个工作

且和前面的两个字典表有关,在繁忙的系统中会造成竞争和等待(另一个DMT会带来的问题是空间碎片)

本地管理(LMT):

在i的R2版本后成了默认的选项

LMT在表空间的数据文件头部加入了一个位图区域,在其中记录每个extent的使用状况

当extent被使用或者被释放,oracle会更新头部的记录来反映这个变化,不产生回滚信息

因为仅仅操作数据文件头部的几个数据块,不用操作数据字典,LMT比DMT要快,尤其是在繁忙的时候更明显

七、查询表空间信息

查询表空间的基本信息

SQL>selecttablespace_name,contents,status

fromdba_tablespaces;

查询表空间的默认存储参数

SQL>selecttablespace_name,initial_extent,

next_extent,extent_management

fromdba_tablespaces;

查询表空间中数据文件的信息

SQL>selecttablespace_name,file_name,

bytes/(1024*1024)MB

fromdba_data_files;

查询表空间中空闲空间大小

SQL>selecttablespace_name,

sum(bytes/(1024*1024))free_MB

fro

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1