创建表空间Word格式.docx

上传人:b****5 文档编号:17545582 上传时间:2022-12-07 格式:DOCX 页数:17 大小:22.21KB
下载 相关 举报
创建表空间Word格式.docx_第1页
第1页 / 共17页
创建表空间Word格式.docx_第2页
第2页 / 共17页
创建表空间Word格式.docx_第3页
第3页 / 共17页
创建表空间Word格式.docx_第4页
第4页 / 共17页
创建表空间Word格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

创建表空间Word格式.docx

《创建表空间Word格式.docx》由会员分享,可在线阅读,更多相关《创建表空间Word格式.docx(17页珍藏版)》请在冰豆网上搜索。

创建表空间Word格式.docx

说明在该表空间中所有数据的变化不都写入重做日志文件中,nologging只影响一些DML和DDL命令.

Default存储子句:

说明所有在该表空间中所创建的对象的默认存储参数.

Offline:

说明该表空间在创建后立即被置为脱机,即不能使用.

 

在数据字典管理的表空间中所有的EXTENTS的管理都是在数据字典中进行的,而且每一个存储在同一个表空间中的段可以具有不同的存储子句。

在这种表空间的管理方法中可以按您的需要修改存储参数,所以存储管理比较灵活但系统的效率较低。

如果使用这种表空间的管理方法,有时需要合并碎片。

本地管理的表空间其空闲EXTENTS是在表空间中管理的,它是使用位图来记录空闲EXTENTS,位图中的每一位对应于一块或一组块,而每位的值批示空闲或分配。

当一个EXTENT被分配或释放时,ORACLE服务器就会修改位图中相应位的值以反映该EXTENT的新的状态。

位图存放在表空间所对应的数据文件的文件头中。

使用本地管理的表空间减少了数据字典表的竞争,而且当磁盘空间分配或收回时也不会产生回滚(还原),它也不需要合并碎片。

在本地管理的表空间中无法按实际需要来随意修改存储参数,所以存储管理不像数据字典(系统)管理的表空间那样灵活,但系统的效率很高。

在这里为了给大家演示表空间的创建及其管理,我们假设我们在做一个探月工程的项目需要为这个项目创建自己的表空间和其他相应的辅助表空间,以及模拟如何管理我们这个项目这涉及到的表空间和它的相关结构。

好,让我们开始吧,大家跟着我,我带你们去探月。

一.创建数据字典管理的表空间:

SQL>

connect/assysdba

已连接。

createtablespacemoon

2datafile'

e:

\disk2\moon\moon01.dbf'

size50m,

3'

\disk4\moon\moon02.dbf'

size50m

4minimumextent50kextentmanagementdictionary

5defaultstorage(initial50knext50kmaxextents100pctincrease0);

createtablespacemoon

*

第1行出现错误:

ORA-12913:

无法创建字典管理的表空间

二.创建本地管理的表空间

让我们为探月工程创建一个存储工程所需要数据的表空间MOON。

4extentmanagementlocal

5uniformsize1m;

表空间已创建。

接下来还要为这个项目创建一个名为MOON_INDEX的索引表空间。

该表空间只基于一个数据文件,其文件名为e:

\disk6\moon\moon_index.dbf,其大小为50M(在实际当中可能是几百M)。

为了方便磁盘存储的管理,我们研究决定使用本地管理的表空间(EXTENTMANAGEMENTLOCAL)。

让我们来创建这个表空间

createtablespacemoon_index

\disk6\moon\moon_index.dbf'

3size50M

5uniformsize1M;

我们在创建完表空间后要养成良好习惯利用dba_tablespaces视图去查看一下自己创建的表空间是否满足要求:

selecttablespace_name,block_size,extent_management,segment_space_management

2fromdba_tablespaces

3wheretablespace_namelike'

moon%'

;

未选定行//这里没有信息并非是我们的表空间没创建成功而是表空间名以大写存储

MOON%'

TABLESPACE_NAMEBLOCK_SIZEEXTENT_MANSEGMEN

--------------------------------------------------------

MOON8192LOCALMANUAL

MOON_INDEX8192LOCALMANUAL

接着,再让我们查看一下表空间的参数配置:

selecttablespace_name,initial_extent,next_extent,

2max_extents,pct_increase,min_extlen

3fromdba_tablespaces

4wheretablespace_namelike'

TABLESPACE_NAMEINITIAL_EXTENTNEXT_EXTENTMAX_EXTENTSPCT_INCREASEMIN_EXTLEN

----------------------------------------------------------------------------------------

MOON10485761048576214748364501048576

MOON_INDEX10485761048576214748364501048576

再让我们查看一下表空间中的数据文件是否已经成功创建,因为表空间是由多数据文件构成如果表空间中没有数据文件那表空间也就不存在了:

selectfile_id,file_name,tablespace_name,autoextensible

2fromdba_data_files

3orderbyfile_id;

FILE_IDFILE_NAMETABLESPACE_NAMEAUT

-------------------------------------------------------------------------

1E:

\ORACLE\PRODUCT\10.1.0\ORADASYSTEMYES

TA\TEST\SYSTEM01.DBF

2E:

\ORACLE\PRODUCT\10.1.0\ORADAUNDOTBS1YES

TA\TEST\UNDOTBS01.DBF

3E:

\ORACLE\PRODUCT\10.1.0\ORADASYSAUXYES

TA\TEST\SYSAUX01.DBF

4E:

\ORACLE\PRODUCT\10.1.0\ORADAUSERSYES

TA\TEST\USERS01.DBF

5E:

\DISK2\MOON\MOON01.DBFMOONNO

6E:

\DISK4\MOON\MOON02.DBFMOONNO

7E:

\DISK6\MOON\MOON_INDEX.DBFMOON_INDEXNO

已选择7行。

在为我们宏大探月项目创建完成前两个所需的表空间去,这只是我们浩大工程冰山一角,还需要我们做更多的工作,再让我们为探月工程创建一个很重要的表空间“还原表空间”:

在数据库初始创建时库中有一个叫UNDOTBS1的还原表空间,但对于我们这个项目建议大家为我们这个项目单独创建一个“moon_undo”的表空间,它也是基于操作系统本地管理的数据文件名为‘e:

\disk7\moon\moon_undo.dbf,其大小为20m:

createundotablespacemoon_undo

\disk7\moon\moon_undo.dbf'

3size20m;

在创建完成后一定要查看一下,保证你创建的表空间是满足要求的:

MOON_UNDO8192LOCALMANUAL

然后再确认一下,我们所创建表空间的类型:

selecttablespace_name,status,contents

TABLESPACE_NAMESTATUSCONTENTS

------------------------------------------------

MOONONLINEPERMANENT

MOON_INDEXONLINEPERMANENT

MOON_UNDOONLINEUNDO

好了,已经做了一些准备工作了,我们在一步一步的接近我们的目标,但是不要高兴太早,因为我们才刚刚开始,大家是否还记得临时表空间,还记得它的作用吗?

如果忘记了希望你回去注意复习,古人云:

“温故而知新”,对于我们学习oracle来说这是非常重要,毕竟它的中文名称叫“甲古文”。

在我们这个项目中一定会存储大量数据,在我们实施工程时也一定会用到这些数据,那么这么大量的数据在查看时会非常困难,那么我们可以借助orderby和groupby子句来进行查询以帮助我们把数据排序分组以便我们能够更快的分析数据。

那么基于以上项目需要,我们需要创建一个临时表空间“MOON_TEMP“,临时表空间可以由多个用户共享,在其中不能包含任何永久对象。

临时表空间中的排序段是在实例启动后当有第一个排离操作时创建的,排序段在需要时可通过分配EXTENTS来扩展,并一直可以扩展到大于或等于在该实例上所运行的所有排序活动的总和。

当创建临时表空间时,必须使用标准数据块。

建议大家用本地管理:

createtemporarytablespacemoon_temp

2tempfile'

\disk8\moon\moon_temp.dbf'

3size10m

5uniformsize2m;

做项目态度一定要严谨,保持良好习惯我们来查看一下:

MOON_TEMPONLINETEMPORARY

selecttablespace_name,block_size,extent_management,

2segment_space_management,min_extlen

TABLESPACE_NAMEBLOCK_SIZEEXTENT_MANSEGMENMIN_EXTLEN

------------------------------------------------------------------

MOON8192LOCALMANUAL1048576

MOON_INDEX8192LOCALMANUAL1048576

MOON_TEMP8192LOCALMANUAL2097152

MOON_UNDO8192LOCALMANUAL65536

注:

本地管理的临时表空间是基于临时数据文件(TEMPFILES)的,这些文件与普通的数据文件非常相似,但它们还具有如下的特性:

1.临时数据文件的状态不能置为只读。

2.不能将临时数据文件重新命名。

3.临时数据文件总是置为NOLOGGING状态。

4.不能使用ALTERDATABASE命令创建临时数据文件。

5.以只读方式运行的数据库需要临时数据文件。

6.介质恢复是不能恢复临时数据文件的。

7.另外,为了优化某一临时表空间中排序的效率,应该将UNIFORMSIZE设为SORT_AREA_SIZE(PGA中排序区的大小)参数的整数倍。

那么还需要注意的一点是,只有我们把MOON_TEMP表空间设置为“默认临时表空间”我们的探月工程项目才能使用这个MOON_TEMP表空间作为为我们工程服务的临时表空间。

那么接下教会大家如何将普通的临时表空间改为默认临时表空间,这个过程非常简单,但它的意义非凡:

首先,让我们来查看一下当前的默认临是表空间是“谁”,

colproperty_valuefora30

coldescriptionfora50

select*fromdatabase_properties

2whereproperty_namelike'

DEFAULT%'

PROPERTY_NAMEPROPERTY_VALUEDESCRIPTION

--------------------------------------------------------------------------------------------------

DEFAULT_TEMP_TABLESPACETEMPNameofdefaulttemporarytablespace

DEFAULT_PERMANENT_TABLESPACEUSERSNameofdefaultpermanenttablespace

DEFAULT_TBS_TYPESMALLFILEDefaulttablespacetype

我们看到当前数据库的默认临时表空间是TEMP,现在我们可以把默认临时表空间改为我们探月工程所需要的MOON_TEMP,为我们的工程服务。

alterdatabasedefaulttemporarytablespacemoon_temp;

数据库已更改。

再让我们来查询一下是不是修改了默认表空间:

DEFAULT_TEMP_TABLESPACEMOON_TEMPNameofdefaulttemporarytablespace

在默认临时表空间上有一些限制:

首先,默认临时表空间不能被删除,除非有一个新的可以使用的默认临时表空间。

也就是必须先使用ALTERDATABASE将一个新的临时表空间设置为默认临时表空间,之后才能删除旧的(默认)临时表空间。

使用旧的(默认)临时表空间的用户被自动地赋予新的默认临时表空间。

因为默认临时表空间必须是临时表空间所以不能将默认临时表空间改为一个永久表空间,也不能将默认临时表空间设置为脱机。

从显示结果中我们看到确定被我们修改了,做到这大家是不是有一点小小的成就感呢,不要洋洋得意啊,后面还有很多工作要做呢,我们需要努力吧!

当表空间需要维护或其中数据需要保护时,我们该怎么办?

请大家想想!

答:

可以把表空间设置为脱机。

一个表空间的正常状态是联机状态,此时数据库用户可以访问该表空间中的数据。

然而,有时数据库管理员需要将某一表空间设置为脱机状态,以进行数据库的维护其维护工作包括:

1.在数据库处于打开状态下移动数据文件。

2.在数据库处于打开状态下恢复一个表空间或一个数据文件。

3.执行对表空间的脱机备份(虽然对表空间可以进行联机备份)。

4.使数据库的一部分不可以被访问,而其他的部分可以被正常地访问。

当一个表空间被设置为脱机状态时,该表空间上的数据是不可以访问的。

如果用户试图访问该表空间上的数据就会收到出错信息。

当一个表空间被设置为脱机状态时或重新被设置为联机状态时,oracle会把这一事件记录在数据字典和控制文件中,也会记录在报警文件中。

如果当数据库被关闭时,某一表空间为脱机状态,那么当数据库被加载(MOUNT)和重新打开时该表空间仍保持为脱机状态。

并不是所有的表空间都可以被设置为脱机状态,以下的表空间不能被设置为脱机状态:

1.系统(SYSTEM)表空间

2.上面有活动的还原/回滚段的表空间。

3.默认临时表空间。

如何将表空间进行脱机/联机:

altertablespacemoonoffline;

表空间已更改。

让我们来查看一下:

MOONOFFLINEPERMANENT

selectfile#,name,status

2fromv$datafile

3;

FILE#NAMESTATUS

-------------------------------------------------------------------

\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\SYSTEM01.DBFSYSTEM

\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\UNDOTBS01.DBONLINE

F

\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\SYSAUX01.DBFONLINE

\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\USERS01.DBFONLINE

\DISK2\MOON\MOON01.DBFOFFLINE

\DISK4\MOON\MOON02.DBFOFFLINE

\DISK6\MOON\MOON_INDEX.DBFONLINE

8E:

\DISK7\MOON\MOON_UNDO.DBFONLINE

已选择8行。

当需要向MOON表空间写入新的重要数据时,我们需要把这个表空间重新联机:

altertablespacemoononline;

\ORACLE\PR

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

当前位置:首页 > 高中教育 > 高中教育

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

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