Oracle 11G 数据库应用简明教程第4章.ppt_第1页
Oracle 11G 数据库应用简明教程第4章.ppt_第2页
Oracle 11G 数据库应用简明教程第4章.ppt_第3页
Oracle 11G 数据库应用简明教程第4章.ppt_第4页
Oracle 11G 数据库应用简明教程第4章.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2,第4章 管理表空间,本章要点: 熟练掌握创建表空间的方法。 掌握如何设置表空间的状态。 了解如何重命名表空间。 掌握表空间中数据文件的管理。 了解临时表空间。 了解大文件表空间。 了解非标准数据块表空间。 理解撤消表空间的作用。 掌握创建与管理撤消表空间的方法。 了解与表空间和数据文件相关的数据字典。,3,4.1 基本表空间,在创建数据库时,Oracle会自动地创建一系列表空间,例如system表空间。用户可以使用这些表空间进行数据操作。 但是,在实际应用中,如果所有用户都使用系统自动创建的这几个表空间,将会严重影响I/O性能。,4,4.1.1 创建表空间,创建表空间需要使用CREATE

2、TABLESPACE语句。其基本语法如下: CREATE TEMPORARY | UNDO TABLESPACE tablespace_name DATAFILE | TEMPFILE file_name SIZE size K | M REUSE AUTOEXTEND OFF | ON NEXT number K | M MAXSIZE UNLIMITED | number K | M , . MININUM EXTENT number K | M BLOCKSIZE number K ONLINE | OFFLINE LOGGING | NOLOGGING FORCE LOGGING DE

3、FAULT STORAGE storage COMPRESS | NOCOMPRESS PERMANENT | TEMPORARY EXTENT MANAGEMENT DICTIONARY | LOCAL AUTOALLOCATE | UNIFORM SIZE number K | M SEGMENT SPACE MANAGEMENT AUTO | MANUAL ;,5,4.1.1 创建表空间,语法说明如下。 (1)TEMPORARY | UNDO (2)tablespace_name (3)DATAFILE | TEMPFILE file_name (4)SIZE size (5)REUSE

4、 (6)AUTOEXTEND OFF | ON (7)NEXT number (8)MAXSIZE UNLIMITED | number (9)MININUM EXTENT number (10)BLOCKSIZE number (11)ONLINE | OFFLINE (12)LOGGING | NOLOGGING (13)FORCE LOGGING (14)DEFAULT STORAGE storage (15)COMPRESS | NOCOMPRESS (16)PERMANENT | TEMPORARY (17)EXTENT MANAGEMENT DICTIONARY | LOCAL (

5、18)AUTOALLOCATE | UNIFORM SIZE number (19)SEGMENT SPACE MANAGEMENT AUTO | MANUAL,6,4.1.2 表空间状态属性,1在线(ONLINE) 语句形式如下: ALTER TABLESPACE tablespace_name ONLINE; 2离线(OFFLINE) 语句形式如下: ALTER TABLESPACE tablespace_name OFFLINE parameter; 3只读(READ ONLY) 语句形式如下: ALTER TABLESPACE tablespace_name READ ONLY; 4读

6、写(READ WRITE) 语句形式如下: ALTER TABLESPACE tablespace_name READ WRITE;,7,4.1.3 重命名表空间,重命名表空间的语法如下: ALTER TABLESPACE tablespace_name RENAME TO new_tablespace_name; 【例4.4】修改myspace表空间的名称为myspace2,语句如下: ALTER TABLESPACE myspace RENAME TO myspace2;,8,4.1.4 修改表空间中数据文件的大小,【例4.5】通过数据字典dba_free_space查看myspace表空

7、间的空闲空间信息,如下: SQL SELECT tablespace_name , bytes , blocks 2 FROM dba_free_space 3 WHERE tablespace_name = MYSPACE; TABLESPACE_NAME BYTES BLOCKS - - MYSPACE 20905984 2552 其中,bytes字段以字节的形式表示表空间的空闲空间大小;blocks字段则以数据块数目的形式表示表空间空闲空间的大小。,9,4.1.4 修改表空间中数据文件的大小,【例4.6】通过数据字典dba_data_files查看myspace表空间的数据文件信息,如下

8、: SQL COLUMN file_name FORMAT A35; SQL COLUMN tablespace_name FORMAT A15; SQL SELECT tablespace_name , file_name , bytes 2 FROM dba_data_files 3 WHERE tablespace_name = MYSPACE; TABLESPACE_NAME FILE_NAME BYTES - - MYSPACE E:APPADMINISTRATORORADATAORCL20971520 MYSPACE.DBF 其中,file_name字段表示数据文件的名称与路径;b

9、ytes字段表示数据文件的大小。,10,4.1.4 修改表空间中数据文件的大小,【例4.7】修改myspace表空间对应的数据文件的大小,如下: SQL ALTER DATABASE 2 DATAFILE E:APPADMINISTRATORORADATAORCLMYSPACE.DBF 3 RESIZE 40M; 数据库已更改。,11,4.1.5 增加表空间的数据文件,增加新的数据文件需要使用ALTER TABLESPACE语句,其语法如下: ALTER TABLESPACE tablespace_name ADD DATAFILE file_name SIZE number K | M AU

10、TOEXTEND OFF | ON NEXT number K | M MAXSIZE UNLIMITED | number K | M , .;,12,4.1.5 增加表空间的数据文件,【例4.8】为myspace表空间增加两个新的数据文件,如下: SQL ALTER TABLESPACE myspace 2 ADD DATAFILE 3 E:appAdministratororadataorclmyspace02.dbf 4 SIZE 10M 5 AUTOEXTEND ON NEXT 5M MAXSIZE 40M, 6 E:appAdministratororadataorclmyspac

11、e03.dbf 7 SIZE 10M 8 AUTOEXTEND ON NEXT 5M MAXSIZE 40M; 表空间已更改。 上述语句为myspace表空间在E:appAdministratororadataorcl目录下增加了两个数据文件,名称分别为myspace02.dbf和myspace03.dbf。,13,4.1.6 删除表空间的数据文件,删除表空间的数据文件的语法如下: ALTER TABLESPACE tablespace_name DROP DATAFILE file_name; 【例4.9】删除myspace表空间数据文件E:appAdministratororadataor

12、clmyspace03.dbf,如下: SQL ALTER TABLESPACE myspace 2 DROP DATAFILE E:appAdministratororadataorclmyspace03.dbf; 表空间已更改。,14,4.1.7 修改表空间中数据文件的自动扩展性,在创建表空间时,可以设置数据文件的自动扩展性。在为表空间增加新的数据文件时,也可以设置新数据文件的自动扩展性。而对于已创建的表空间中的已有数据文件,则可以使用ALTER DATABASE语句修改其自动扩展性。语法如下: ALTER DATABASE DATAFILE file_name AUTOEXTEND OF

13、F | ON NEXT number K | M MAXSIZE UNLIMITED | number K | M ,15,4.1.7 修改表空间中数据文件的自动扩展性,【例4.10】修改myspace表空间中数据文件的自动扩展性,如下: SQL ALTER DATABASE 2 DATAFILE E:appAdministratororadataorclmyspace02.dbf 3 AUTOEXTEND OFF; 数据库已更改。 SQL ALTER DATABASE 2 DATAFILE E:appAdministratororadataorclmyspace02.dbf 3 AUTOEX

14、TEND ON 4 NEXT 5M MAXSIZE 40M; 数据库已更改。 上述两条SQL语句中,第一条语句用于关闭myspace表空间的myspace02.dbf文件的自动扩展性,第二条语句用于再次为myspace02.dbf文件设置自动扩展性。,16,4.1.8 修改表空间中数据文件的状态,数据文件的状态主要有3种: ONLINE、OFFLINE和OFFLINE DROP。 设置数据文件状态的语法如下: ALTER DATABASE DATAFILE file_name ONLINE | OFFLINE | OFFLINE DROP 其中,ONLINE表示数据文件可以使用;OFFLINE

15、表示数据文件不可使用,用于数据库运行在归档模式下的情况;OFFLINE DROP与OFFLINE一样用于设置数据文件不可用,但它用于数据库运行在非归档模式下的情况。,17,4.1.9 移动表空间中的数据文件,【例4.12】移动myspace表空间中数据文件myspace02.dbf的步骤如下。 (1)修改myspace表空间的状态为OFFLINE,如下: SQL ALTER TABLESPACE myspace OFFLINE; 表空间已更改。 (2)将磁盘中的myspace02.dbf文件移动到新的目录中 (3)使用ALTER TABLESPACE语句,将myspace表空间中myspace

16、02.dbf文件的原名称和路径修改为新名称和路径 (4)修改myspace表空间的状态为ONLINE,如下: SQL ALTER TABLESPACE myspace ONLINE; 表空间已更改。 检查文件是否移动成功,也就是检查myspace表空间的数据文件中是否包含了新的数据文件。,18,4.1.10 删除表空间,删除表空间需要使用DROP TABLESPACE语句,其语法如下: DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES 语法说明如下。 (1)INCLUDING CONTENTS (2)AND DAT

17、AFILES 【例4.13】删除表空间myspace,并同时删除该表空间中的所有数据库对象,以及操作系统中与之相对应的数据文件,如下: SQL DROP TABLESPACE myspace 2 INCLUDING CONTENTS AND DATAFILES; 表空间已删除。,19,4.2 临时表空间,临时表空间是一个磁盘空间,主要用于存储用户在执行ORDER BY等语句进行排序或汇总时产生的临时数据,它是所有用户公用的。 默认情况下,所有用户都使用temp作为临时表空间。但是也允许使用其他表空间作为临时表空间,这需要在创建用户时进行指定。,20,4.2.1 创建临时表空间,创建临时表空间时

18、需要使用TEMPORARY关键字,并且与临时表空间对应的是临时文件,由TEMPFILE关键字指定,而数据文件由DATAFILE关键字指定。 【例4.14】创建一个临时表空间mytemp,如下: SQL CREATE TEMPORARY TABLESPACE mytemp 2 TEMPFILE F:oraclefilemytemp.dbf 3 SIZE 10M 4 AUTOEXTEND ON NEXT 2M MAXSIZE 20M; 表空间已创建。,21,4.2.1 创建临时表空间,【例4.15】通过数据字典v$tempfile,查看临时表空间mytemp的临时文件信息,如下: SQL COLU

19、MN file_name FORMAT A40; SQL COLUMN tablespace_name FORMAT A15; SQL SELECT tablespace_name , file_name , bytes 2 FROM dba_temp_files 3 WHERE tablespace_name = MYTEMP; TABLESPACE_NAME FILE_NAME BYTES - - - MYTEMP F:ORACLEFILEMYTEMP.DBF 10485760,22,4.2.2 创建与管理临时表空间组,1创建临时表空间组 临时表空间组不需要特别创建,只需要在创建临时表空间

20、时,使用TABLESPACE GROUP语句为其指定一个组即可。 2查看临时表空间组信息 如果要查询一个临时表空间组中的临时表空间信息,可以使用数据字典dba_tablespace_ groups。 3移动临时表空间 可以使用ALTER TABLESPACE语句,将临时表空间从一个组移动到另一个组中,实际上也就是修改临时表空间所在的组。目标组同样可以是已存在的,也可以是不存在的。 4删除临时表空间组 一个临时表空间组中至少需要存在一个临时表空间,当组中的所有临时表空间都被删除或移动到其他组中后,该组就被自动删除了。,23,4.3 大文件表空间,大文件表空间是Oracle 10g引进的一个新表空

21、间类型,主要用于解决存储文件大小不够的问题。 创建大文件表空间需要使用BIGFILE关键字,而且只能为其指定一个数据文件或临时文件。 【例4.19】创建一个大文件表空间mybigspace,如下: SQL CREATE BIGFILE TABLESPACE mybigspace 2 DATAFILE F:oraclefilemybigspace.dbf 3 SIZE 10M; 表空间已创建。,24,4.3 大文件表空间,【例4.20】通过数据字典dba_tablespaces查看当前数据库中的表空间的类型,如下: SQL SELECT tablespace_name , bigfile 2 F

22、ROM dba_tablespaces; TABLESPACE_NAME BIG - - SYSTEM NO SYSAUX NO UNDOTBS1 NO TEMP NO USERS NO MYTEMP NO MYBIGSPACE YES 已选择7行。 如果bigfile字段值为NO,则表示对应的表空间的类型不是BIGFILE,即为SMALLFILE;如果bigfile字段值为YES,则表示对应的表空间的类型为BIGFILE。,25,4.4 非标准数据块表空间,非标准数据块表空间是指其数据块大小不基于标准数据块大小的表空间。 使用SHOW PARAMETER语句可以查看db_block_size

23、参数的信息,如下: SQL SHOW PARAMETER db_block_size; NAME TYPE VALUE - - db_block_size integer 8192,26,4.4 非标准数据块表空间,【例4.21】创建一个非标准数据块表空间nonstandard,其数据块大小设置为16KB。步骤如下。 (1)使用SHOW PARAMWTER语句查看数据缓冲区参数db_16k_cache_size的值 (2)使用ALTER SYSTEM语句修改参数db_16k_cache_size的值 (3)创建表空间nonstandard,指定其数据块大小为16KB,27,4.5 设置默认表空

24、间,Oracle允许使用非users表空间作为默认的永久性表空间,使用非temp表空间作为默认临时表空间。设置默认表空间需要使用ALTER DATABASE语句,语法如下: ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name; 如果使用TEMPORARY关键字,则表示设置默认临时表空间;如果不使用该关键字,则表示设置默认永久性表空间。,28,4.5 设置默认表空间,【例4.22】将myspace表空间设置为默认的永久性表空间,将mytemp表空间设置为默认临时表空间,如下: SQL ALTER DATABASE DEFAULT

25、 TABLESPACE myspace; 数据库已更改。 SQL ALTER DATABASE DEFAULT TEMPORARY TABLESPACE mytemp; 数据库已更改。 查询数据字典database_properties,检查默认表空间是否设置成功,如下: SQL SELECT property_name , property_value , description 2 FROM database_properties 3 WHERE property_name 4 IN (DEFAULT_PERMANENT_TABLESPACE , DEFAULT_TEMP_TABLESPA

26、CE); PROPERTY_NAME PROPERTY_VALUE DESCRIPTION - - DEFAULT_TEMP_TABLESPACE MYTEMP Name of default temporary tablespace DEFAULT_PERMANENT_TABLESPACE MYSPACE Name of default permanent tablespace,29,4.6 撤消表空间,用户对数据库中的数据进行修改后,Oracle将会把修改前的数据存储到撤消表空间中,如果用户需要对数据进行恢复,就会使用到撤消表空间中存储的撤消数据。 本节将介绍如何创建与管理撤消表空间。对于

27、具体的数据撤消操作将在本书Oracle闪回技术章节中介绍。,30,4.6.1 管理撤消表空间的方式,Oracle 11g支持两种管理撤消表空间的方式:回退段撤消管理(Rollback Segments Undo,RSU)和自动撤消管理(System Managed Undo,SMU)。 1自动撤消管理 如果选择使用自动撤消管理方式,则应将参数undo_management的值设置为AUTO,并且需要在数据库中创建一个撤消表空间。默认情况下,Oracle系统在安装时会自动创建一个撤消表空间undotbs1。系统当前所使用的撤消表空间由参数undo_tablespace决定。 使用SHOW PAR

28、AMETER undo语句可以查看当前数据库的撤消表空间的设置,如下: SQL SHOW PARAMETER undo; NAME TYPE VALUE - - undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1,31,4.6.1 管理撤消表空间的方式,2回退段撤消管理 如果选择使用回退段撤消管理方式,则应将参数undo_management的值设置为MANUAL,并且需要设置下列参数。 rollback_segments:设置数据库所使用的回退段名称。 transactions:设置系统中的事务总数。 transactions_per_rollback_segment:指定回退段可以服务的事务个数。 max_rollback_segments:设置回退段的最大个数。,32,4.6.2 创建与管理撤消表空间,1创建撤消表空间 创建撤消表空间需要使用CREATE UNDO TABLESPACE语句,与创建普通表空间类似,但也有其特定的限制,说明如下: 撤消表空间只能使用本地化管理表空间类型,即EXTENT MANAGEMENT子句只能指定LOCAL(默认值)。 撤消表空间的盘区管理方式只能使用AUTOALLOCATE(默认值),即由Oracle系统自动分配盘区大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论