Oracle10g 表空间管理
oracle修改表空间大小的方法

oracle修改表空间大小的方法一、引言Oracle数据库是广泛应用于企业级应用系统的数据库管理系统,表空间是Oracle数据库中最基本的数据存储单位。
为了满足业务需求或应对数据增长,常常需要对表空间的大小进行调整。
本篇文章将详细介绍如何修改Oracle数据库中的表空间大小。
二、准备工作1. 确认具有足够的权限:修改表空间大小需要具有足够的权限,通常需要具有DBA(数据库管理员)角色或与之相关的权限。
2. 了解表空间状态:在修改表空间大小之前,需要确保表空间处于正确的状态,例如是否打开了,是否是只读状态等。
3. 备份数据:修改表空间大小可能会对数据库中的数据产生影响,因此在执行此操作之前,强烈建议进行数据备份。
1. 使用ALTER TABLESPACE命令:使用ALTER TABLESPACE命令可以动态地增加或减少表空间中的存储空间。
以下是基本语法:```sqlALTER TABLESPACE tablespace_name ADD SPACE[ ( space_number ) ] [ DATAFILE 'file_path' [ SIZE{ file_size | next_autoextend } ] ] ;```* `tablespace_name`:要修改的表空间名称。
* `space_number`:要添加的空间编号(可选)。
* `file_path`:新数据文件的路径和文件名。
* `file_size`:新数据文件的大小(可选)。
* `next_autoextend`:自动扩展的最小大小(可选)。
2. 使用ALTER TABLE命令:通过修改表的数据块大小来间接调整表空间的大小。
这种方法适用于调整单个表的大小。
以下是基本语法:```sqlALTER TABLE table_name MODIFY (data_block_size =new_size);```* `table_name`:要修改的表的名称。
《oracle 10g 数据库基础教程》实验报告

《oracle 10g 数据库基础教程》实验报告实验名称:金融数据库技术实验二实验目的:远程登录数据库,使用OEM、SQL等方法创建表,熟悉创建语句实验内容:1、远程连接数据库。
2、用OEM管理表。
3、用SQL*Plus管理表。
4、Oracle数据操纵和查询实验步骤:远程登录显示用户创建用户要连接远程的网络数据库,先要在客户端上设定被连接的数据库服务器的Net服务名。
在客户端启动Net Configuration Assistant选择“本地Net服务名配置”。
添加服务器的IP可以创建具有个人特色的名字回到OEM登录界面配置完毕后回到OEM,进行表的创建等。
⏹以管理员身份登录OEM,为用户scott创建一个名称为employee的表,指定表空间example。
⏹该表包含以下属性:eno,ename,eage,sex,salary。
为其设置合适的数据类型和大小。
⏹为各属性设置如下约束:eno为主键,约束名称为T_PK。
在“管理”中寻找“表”进行创建,选择创建在方案上选择用户名,对象名为要创建的表名添加列名,添加束缚语句等。
在OEM界面完成表的创建和添加约束条件后,在SQL中查看表格情况⏹在sql plus命令行界面创建和管理表,并写出相应的SQL语句。
⏹创建一个表student,指定表空间为STU,占用空间大小为10M。
⏹表中的各列及约束仿照OEM表设置。
用SQL语句为表添加phone和birthdates属性,并为phone列添加unique约束。
输入信息:向student表中插入一行记录,姓名为serena,学号为5,其余信息与名为王霞的学生一样。
利用select子查询语句实现。
将学生李晨的phone改为139,birthdates改为22-6月-92。
将赵勇性别改为M。
实验总结:今天学习1、远程连接数据库。
2、用OEM管理表。
3、用SQL*Plus管理表。
4、Oracle 数据操纵和查询。
远程连接的难度在于,要分清楚服务器与客户端之间的差别。
PLSQL Developer 10g 创建、删除表空间、更名

EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT MANUAL FLASHBACK ON;
7) DROP TABLESPACE db_name_ INCLUDING CONTENTS AND DATAFILES; //删除表空间
--测试创建表空间
create tablespace IMSTEST
datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HNORCL\IMTEST.def' size 200M
TEMPORARY TABLESPACE "TEMP" ;
grant connect to PROJECTNAME ;
grant dba to PROJECTNAME ;
grant sysdba to PROJECTNAME ;
--创建无限表空间 SQL代码
CREATE TABLESPACE test DATAFILE 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE\TEST1.DBF' SIZE 20000M
extent management local autoallocate
segment space management auto;
CREATE USER PROJECTNAME
IDENTIFIED BY "PROJECTNAME"
DEFAULT TABLESPACE "TBS_PROJECTNAMETEST"
Oracle 8i、9i、10g、11g不同版本的比较

Oracle 8i、9i、10g、11g不同版本的比较Oracle 9i比8i多了哪些新特性?简要说:9i更易于管理。
详细说:并发集群,8i OPS升级为9i RAC,8i结点间用硬盘交换信息,9i结点间采用高速网线的缓存熔合(Cache Fusion)技术交换信息,交换速度提高100倍以上。
9i可以在线修改内核参数和内存分配,8i不行。
数据文件和表空间管理,8i手工管理,9i自动管理。
9i比8i增强了对ANSI SQL99的支持。
9i比8i增强了故障后的快速恢复(Fast-start)。
8i只支持物理备份(physical backup)数据库,9i还增加了支持逻辑备份(logical backup)数据库,使备份数据库除了作为主数据库的镜像外,还可以提供其他数据服务.Oracle 10g比9i多了哪些新特性?简要说:10g支持网格(Grid),支持自动管理(Automatic Management)。
详细说:10g的g是”Grid”缩写,支持网格计算,即,多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中均衡(Load Balance),按需增删结点,避免单点故障(Single Point of Faliure)。
安装容易,安装工作量比9i减少了一半。
新增基于浏览器的企业管理器(Enterprise Manager)。
自动存储管理(ASM),增删硬盘不再需要操作系统管理员设置的镜像、负载均衡、物理卷、逻辑卷、分区、文件系统,只要打一条Oracle命令,ASM会自动管理增加或删除的硬盘。
内存自动化,根据需要自动分配和释放系统内存。
SQL性能调整自动化。
免费提供基于浏览器的小应用开发工具Oracle Application Express(原名HTML DB),支持10g和9iR2。
快速纠正人为错误的闪回(Flashback)查询和恢复,可以恢复数据库、表甚至记录。
数据泵(Data Pump)高速导入、导出数据,比传统方法导出速度快两倍以上,导入速度快15–45倍。
Oracle 11g表空间——创建和扩展(永久)表空间

Oracle 11g表空间——创建和扩展(永久)表空间本文内容创建(永久)表空间查看表空间扩展表空间创建(永久)表空间Oracle 按照区和段空间进行管理表空间。
区管理方式 - 针对区的分配方式的不同,有两种方式:字典管理方式(dictionary-managed tablespace,DMT)和本地管理方式(local-managed tablespace,LMT)。
Oracle 10g 开始强烈建议使用 LMT 方式。
从 Oracle 9i 开始,创建表空间时默认使用 LMT。
其中,LMT 区的分配方式:统一(UNIFORM)- 统一分配。
指定表空间中所有区的大小都相同。
默认值是 1MB。
自动(AUTOALLOCATE 或 SYSTEM)- 自动分配。
指定有 Oracle 系统来自动管理区的大小。
这是默认设置。
段管理方式– LMT 方式,除了可以指定区的分配方式外,还可以指定段的管理方式。
段空间管理方式主要是指 Oracle 用来管理段中已用数据块和空闲数据块的机制。
分为两种:手动(MANUAL)- Oracle 将使用空闲列表(free list)管理段的已用数据块和空闲数据块。
这是传统的段空间管理方式,为了与以前的版本兼容。
自动(AUTO)- Oracle 将使用位图(bitmap)来管理段的已用数据块和空闲数据块。
通过位图中单元的取值判断段中的数据块是否可用。
字典管理方式没有段管理。
下面示例演示用本地管理方式创建表空间。
这是 Oracle 推荐的方式。
示例 1:使用 AUTOALLOCATE 区分配方式。
创建表空间 mytbs01,数据文件是D:\oracledata\mytbs01_1.dbf,大小为 2M,并指定区分配方式为 AUTOALLOCATE。
create tablespace mytbs01datafile 'D:\oracledata\mytbs01_1.dbf' size 2Mautoallocate;示例 2:使用 UNIFORM 区分配方式。
Oracle 建立大文件表空间

Oracle 建立大文件表空间从Oracle 10g开始,Oracle引入了一个新增的表空间类型——大文件(BIGFILE)表空间,从而显著的增强了存储能力。
一个大文件表空间中对应一个单一的数据文件或临时文件,但是文件可以达到4G个数据块大小。
理论上,当数据块大小为8K时,大文件表空间的数据文件最大可以达到32T字节;当数据块尺寸为32K时,那么大文件表空间的数据文件最大尺寸可以达到128T。
在实际环境中,这还受到操作系统的文件系统的限制。
在创建表空间时,默认的创建的表空间为SMALLFILE类型的表空间,通过查询数据字典视图DATABASE_PROPERTIES,可以显示当前数据库默认创建的表空间是否为BIGFILE 类型的表空间。
具体如下:SQL> select *2 from database_properties3 where property_name ='DEFAULT_TBS_TYPE';PROPERTY_NAME PROPERTY_V ALUE DESCRIPTION------------------------------ ------------------------------ ------------------------------DEFAULT_TBS_TYPE SMALLFILE Default tablespace type从这里可以看出,如果在创建表空间时不指定数据文件的类型,那么默认创建的表空间都是SMALLFILE类型的表空间。
用户可以通过ALTER DATABASE命令来修改数据库默认的表空间类型:SQL> alter database set default bigfile tablespace;数据库已更改。
SQL> select *2 from database_properties3 where property_name = 'DEFAULT_TBS_TYPE';PROPERTY_NAME PROPERTY_V ALUE DESCRIPTION------------------------------ ------------------------------ ------------------------------DEFAULT_TBS_TYPE BIGFILE Default tablespace typeSQL> alter database set default smallfile tablespace;数据库已更改。
表空间(TABLESPACE)

表空间(TABLESPACE)表空间(TABLESPACE)是ORACLE数据库中最大的逻辑结构。
ORACLE数据库是由一个或多个表空间组成的。
它在物理上与磁盘上的数据文件相对应(一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间)。
从物理上说数据库的数据被存放在数据文件中,而从逻辑上说是被存放在表空间中的。
数据库的逻辑配置实际上就是指表空间的配置。
一、表空间概述表空间是ORACLE数据库中最大的逻辑结构。
数据库的所有对象和方案都被逻辑的保存在表空间中。
(一)表空间的特性与作用数据库管理系统(DBMS)是建立在操作系统(OS)基础上的,它的数据也必须存储在各个文件中,如数据文件、重做日志文件、归档日志文件等。
表不是文件,表不是空间。
表空间是组织结构和分配空间的逻辑结构。
除了数据文件之外,控制文件、重做日志文件、归档日志文件等其他文件都不属于任何表空间。
表空间的特性如下:1.一个数据库可以有多个表空间。
可以在数据库中创建、删除表空间;2.一个表空间只属于一个数据库;3.一个表空间必须要有一个数据文件;4.一个表空间的大小等于其中所有数据文件的大小之和。
数据库的大小等于其中所有表空间的大小之和;5.表空间可以被联机和脱机。
SYSTEM表空间不能被脱机;6.表空间可以在读写、只读状态之间切换;7.每个表空间由一个或多个物理存在的操作系统的数据文件组成。
这种数据文件可以具有固定的大小,或允许其自动变大。
可以在表空间中添加、删除数据文件;8.方案对象、表、索引的数据都被存储在表空间的数据文件中。
一个数据文件存储不下,就存储在另一个数据文件中,只要该数据文件是本表空间中的就可以;9.一个用户默认使用一个表空间,但他的不同方案对象的数据可以被存储在不同表空间中;10.一个用户使用的表空间的数量是有一定配额的,不能超出这个配额;11.可以根据使用目的,创建不同类型的表空间,如永久表空间、临时表空间、撤销表空间、大表空间等。
ORACLE 10G介绍

AWR采集与性能相关的统计数据,并从那些统计数 据中导出性能量度,以跟踪潜在的问题。与 Statspack 不同,快照由一个称为 MMON 的新的后台 进程及其从进程自动地每小时采集一次。为了节省空 间,采集的数据在 7 天后自动清除。快照频率和保 留时间都可以由用户修改。要查看当前的设置,您可 以使用下面的语句:
不是客户端安装的工具,实际上它是位于数据库服务 器上的一个 HTTP 服务器(称为 DB 控制台,参见下 图)。你可以使用任何浏览器查看 EM 界面。
DB 控制台使用的端口号可在 $ORACLE_HOME/install/portlist.ini 文件中找到。 以下是一个文件的示例(根据主机情况不一样,端口 可能不相同)
AWR 使用几个表来存储采集的统计数据,所有的 表都存储在SYSAUX 表空间中的SYS 模式下,并且以 WRM$_* 和 WRH$_* 的格式命名。前一种类型存储元 数据信息(如检查的数据库和采集的快照),后一种 类型保存实际采集的统计数据。
在这些表上构建了几种带前缀 DBA_HIST_的视图, 这些视图可以用来编写您自己的性能诊断工具。视图 的名称直接与表相关;例如,视图 DBA_HIST_SYSMETRIC_SUMMARY是在 WRH$_SYSMETRIC_SUMMARY表上构建的。 AWR 历史表采集的信息比 Statspack 多许多,这 些信息包括表空间使用率、文件系统使用率、甚至操 作系统统计数据。这些表的完整的列表可以通过以下 命令从数据字典中看到:
ORACLE 10G 简介
亚信联创 曹震
概
述
Oracle 10g于2003年9月9日在旧金山发布,代 号中的G代表GRID,表示ORACLE将提供一个网格计 算体系,是自Oracle 8I提供互联网功能后的一次 重大更名,并在今年发布了可能是Oracle10g的最 后一个补丁集10.2.0.5 。 Oracle 10g可以分为4个版本,分别是: 1、Oracle Database Standard Edition One, 最基本的商业版本,包括基本的数据库功能。
Oracle_10g数据库基础教程

1.2.1
Oracle 10g体系结构概述
数据库的体系结构可以按照逻辑结构和物理结 构来划分 :
多用户网络环境
用户 1 用户 2 用户 3 用户 4 用户…… 用户 n
逻辑结构
逻辑单元 1 逻辑单元 2 逻辑单元…… 逻辑单元 n
物理结构
文件 1 文件 2 文件 3 文件 4 文件…… 文件 n
1.2.1
1.2.2
1.
网格结构
2.
3.
Oracle 10g的网格计算能力如下: 服务器虚拟(Server Virtualization) Oracle实时应用集 群(RAC)可以使一个数据库运行在网格的多个节点上,将多 个普通计算机的处理资源集中使用。Oracle在跨计算机分配工 作负载的能力方面具有独特的灵活性,因为它是唯一不需要随 工作进程一起对数据进行分区和分配的数据库技术。 存储虚拟(Storage Virtualization) Oracle 10g的自动存 储管理(ASM)特性提供了数据库和存储之间的一个虚拟层, 这样多个磁盘可以被看作是一个单独的磁盘组,在保证数据库 在线的情况下,磁盘可以动态地加载或移除。 网格管理 网格计算将多服务器和多磁盘集成在一起,并且对 它们实现动态分配,因此独立的资源可以实现自我管理和集中 管理就变得非常重要。Oracle 10g的网格控制特性提供了将多 系统集成管理为一个逻辑组的控制台,可以管理网格中独立的 节点,集中维护各组系统的配置和安全设置。
Oracle 10g产品概述
Oracle数据库10g个人版(Oracle Database 10g Personal Edition)
需要与Oracle数据库10g标准版1、Oracle 数据库标 准版和 Oracle 数据库企业版完全兼容的单用户开发 和部署。
第一章 oracle数据库10g概述

第一章oracle数据库10g概述1.1 数据库和信息管理服务器必须在多用户环境中管理大量的数据,使得多个用户能够并行访问数据。
所有这些必须能够在高性能的情况下完成,数据库服务器必须防止未经授权的非法访问,保护敏感数据,同时,为故障恢复提供解决方案。
▪客户用员务器环境▪大型数据库和空间管理▪多个并行数据库用户▪连接性▪高事务处理能力▪控制可用性▪开放的、基于工业标准▪管理安全性▪数据库完整性增强▪兼容性▪分布式系统▪复制环境1.2 Oracle 10g服务器Oracle 10g服务器是对象关系数据库管理系统,提供对信息管理的集成方法,一个Oracle服务器包括一个Oracle数据库和一个Oracle服务器实例。
每当数据库启动的时候,系统全局区(SGA)被分配,并启动了Oracle后台进程。
系统全局区是用于数据库用户共享数据库信息的内存区域。
后台进程和内存缓冲区称为Oracle实例。
Oracle实例包含两种类型的进程:用户进程和Oracle进程。
用户进程执行应用操作的代码。
Oracle 进程是执行用户进程和后台进程,对Oracle进行维护的服务器进程。
为了最大化性能和处理多个用户的请求,多进程Oracle系统使用附加进程,这些附加进程称为后台进程。
后台进程能够自动执行I/0和监视Oracle进程,为获得更好的性能和稳定性提供更好的支持。
数据库的物理结构和存储结构之间的关系由后台进程来维持。
数据库拥有多个后台进程,其数量取决于数据库的配置。
这些进程由数据库管理,它们只需要进行很少的管埋。
每个后台进程创建一个跟踪文件。
Oracle在实例操作期间保存跟踪文件。
后台进程跟踪文件的命名约定和位置随操作系统和数据库版本不同而不同。
一般来说,跟踪文件含有后台进程名或后台进程的操作系统进程ID.可以设置init.ora文件的BACKGROUND_DUMP_DEST参数来规定后台进程跟踪文件的位置。
但是有些版本的Oracle忽略这种设置。
Oracle10g的临时表空间占满之后的解决方法。

Oracle10g的临时表空间占满之后的解决方法。
公司客户数据库用了一段时间之后,总是出现磁盘被占满的情况。
基本上这个情况要么就是undo表空间很大,要么就是临时表空间很大,这个时候就需要进行转储undo表空间或者临时表空间。
以下是解决方法。
---解决临时表空间Temp的方法TEMP文件尚未调整,还是16G,首先创建了一个新的TEMP文件并设定为缺省临时表空间SQL> create temporary tablespace TEMP3 TEMPFILE '/opt/oracle/oradata/cuss/TEMP2.dbf' size 20m reuse autoextend off;SQL>alter database default temporary tablespace "TEMP2"结果这个情况下做exp产生ORA-01403的错误,后来得知是因为TEMP临时表空间容量过小的原因重新创建一个TEMP3文件,初始大小1G,每次增长200M,最大限制为4G。
SQL> create temporary tablespace TEMP3 TEMPFILE'/opt/oracle/oradata/cuss/TEMP3.dbf' size 1000m reuse autoextend on next 200m maxsize 4000m;把缺省临时表空间指向这个新建的TEMP3。
SQL>alter database default temporary tablespace "TEMP3"删除原有的临时表空间文件和操作系统中的对应物理文件,释放磁盘空间SQL>drop tablespace temp2 including contents and datafiles;重新做exp导出,导出成功。
至此调整结束。
oracle10G收缩表空间

oracle10G收缩表空间oracle 10G 收缩表空间如果经常在表上执行DML操作,会造成数据库块中数据分布稀疏,浪费大量空间。
同时也会影响全表扫描的性能,因为全表扫描需要访问更多的数据块。
从oracle10g开始,表可以通过shrink来重组数据使数据分布更紧密,同时降低HWM释放空闲数据块。
从10g开始,oracle开始提供Shrink的命令,假如我们的表空间中支持自动段空间管理(ASSM),就可以使用这个特性缩小段,即降低HWM。
这里需要强调一点,10g的这个新特性,仅对ASSM表空间有效,否则会报 ORA-10635: Invalid segment or tablespace type。
比如我工作中使用的系统有个LOG表,记录的日志经常会删除。
时间长了查询速度变慢,而且浪费表空间。
下面就以这个表为例,记录下收缩表空间的方法。
1. 查看收缩前表的使用情况select sum(bytes)/1024/1024 Mb from user_segments where segment_name='LOG';2. 开启行迁移alter table LOG enable row movement;3. 整理表空间内的碎片alter table LOG shrink space compact;4. 收缩表空间alter table LOG shrink space;5.再查看收缩后的表空间使用情况select sum(bytes)/1024/1024 Mb from user_segments where segment_name='LOG';注意:收缩表空间要在数据库比较空闲的时候做。
Oracle,查询表空间所有表、表所在的表空间、用户默认表空间,以及如何缩小表空间

Oracle,查询表空间所有表、表所在的表空间、⽤户默认表空
间,以及如何缩⼩表空间
⼀、查询表空间所有表
select table_name from all_tables where TABLESPACE_NAME='USERS';
⼆、查询表所在的表空间
select*from user_tables where table_name='PANTAB';
⼀个数据库由多个表空间构成,表空间由段构成,段由区构成,区由块构成,这样可以提⾼效率。
三、查询⽤户默认表空间
select DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where username='MYTEST'
四、如何缩⼩表空间
1. 如果是Oracle 10G以后的版本,表空间中⽀持⾃动段空间管理(ASSM),可以参考下⽂:
2 .如果表空间不⽀持ASSM,只能⽤最笨的⽅法,将数据拷贝出来,然后弃⽤原表空间,参考下⽂:
3. 我还有个简单粗暴的办法:先expdp当前数据库,然后⽤Database Configuration Assistant删除数据库,重建数据库,最后impdp数据库……这么做,同样可以达到缩⼩表空间的效果,我的就由10G缩⼩到1G。
具体可以参考:。
Oracle 10g 数据库管理应用与开发 课后习题答案(填空与选择题)

Oracle 10g 数据库管理应用与开发课后习题答案(填空与选择题)填空题第二章1.用户对数据库的操作如果产生日志信息、则该日志信息首先被存储在日志缓冲区中,随后由LGWR进程保存到日志文件。
2.在Oracle的逻辑存储结构中,根据存储数据的类型,可以将段分为数据段、索引段、回退段、LOB段和临时段。
3.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务器进程。
当一个用户运行应用程序,如PRO*C程序或一个Oracle工具(如SQL*Plus),系统将为用户运行的应用程序建立一个用户进程。
第三章1.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。
2.在需要滤除查询结果中重复的行时,必须使用关键字Distinct;在需要返回查询结果中的所有行时,可以使用关键字ALL。
第四章1.创建一个UPDATE语句来修改ARTISTS表中的数据,并且把每一行的T_ID值都改成15,应该使用的SQL语句是update artists set t_id=15;。
2.使用describe命令可以显示表的结构信息。
3.使用SQL*Plus的get命令可以将文件检索到缓冲区,并且不执行。
4.当设置了多个列的显示属性后,如果清除设置的显示属性,可以使用命令clear column,而当要清除某列具体的显示属性时,需要使用命令OFF/column 列名clear。
5.使用SA VE命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Start命令运行该文件。
6.要设置SQL*Plus显示数字时的格式可以使用NumFormat命令,而要设置某个数字列的显示格式要使用Column命令。
第五章1.ROWID实际上保存的是记录的物理地址,2.在STORAGE子句中可以设置6个存储参数。
其中,Initial指定为表中的数据分配的第一个盘区的大小;Next指定为存储表中的数据分配的第二个盘区大小;Pctincrease指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;Minextents指定允许为表中的数据所分配的最小盘区数目;Maxextents指定允许为表中的数据所分配的最大盘区数目。
Oracle10g 创建表空间&&网页访问控制台

网页访问http://localhost:1158/emOracle 创建表空间SYS用户在CMD下以DBA身份登陆:在CMD中打sqlplus /nolog然后再conn / as sysdba// 分为四步//第1步:创建临时表空间create temporary tablespace user_temptempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50mautoextend onnext 50m maxsize 20480mextent management local;//第2步:创建数据表空间create tablespace test_dataloggingdatafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' size 50mautoextend onnext 50m maxsize 20480mextent management local;//第3步:创建用户并指定表空间create user username identified by passworddefault tablespace user_datatemporary tablespace user_temp;//第4步:给用户授予权限grant connect,resource to username;---------------------------------------------------------------------------------//以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data表空间,这就不用在每创建一个对象给其指定表空间了撤权:revoke 权限... from 用户名;删除用户命令drop user user_name cascade;建立表空间CREATE TABLESPACE data01DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500MUNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k删除表空间DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;一、建立表空间CREATE TABLESPACE data01DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500MUNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k二、建立UNDO表空间CREATE UNDO TABLESPACE UNDOTBS02DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:ALTER SYSTEM SET undo_tablespace=UNDOTBS02;三、建立临时表空间CREATE TEMPORARY TABLESPACE temp_dataTEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M四、改变表空间状态1.使表空间脱机ALTER TABLESPACE game OFFLINE;如果是意外删除了数据文件,则必须带有RECOVER选项ALTER TABLESPACE game OFFLINE FOR RECOVER;2.使表空间联机ALTER TABLESPACE game ONLINE;3.使数据文件脱机ALTER DATABASE DATAFILE 3 OFFLINE;4.使数据文件联机ALTER DATABASE DATAFILE 3 ONLINE;5.使表空间只读ALTER TABLESPACE game READ ONLY;6.使表空间可读写ALTER TABLESPACE game READ WRITE;五、删除表空间DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;六、扩展表空间首先查看表空间的名字和所属文件select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name;1.增加数据文件ALTER TABLESPACE gameADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;2.手动增加数据文件尺寸ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'RESIZE 4000M;3.设定数据文件自动扩展ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbfAUTOEXTEND ON NEXT 100MMAXSIZE 10000M;设定后查看表空间信息SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE CWHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME ANDA.TABLESPACE_NAME=C.TABLESPACE。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表空间的基本概念
表空间的基本概念
Tablespace
Oracle数据库 中的数据逻辑 地存储在表空 间并物理地存 储在数据文件 中。
Segment
Extent
Extent
Data Blocks Data File
表空间的基本概念
• 每个表空间包含一个或多个操作系统文件
数据字典管理的表空间类型
SQL>select tablespace_name,extent_management,allocation_type from dba_tablespaces;
TABLESPACE_NAME EXTENT_MAN ALLOCATIO ------------------------------ ---------- ------------------------------------SYSTEM DICTIONARY USER UNDOTBS1 LOCAL SYSTEM SYSAUX LOCAL SYSTEM TEMP LOCAL UNIFORM USERS LOCAL SYSTEM EXAMPLE LOCAL SYSTEM DATA_2004 DICTIONARY USER
段与碎片特征
数据字典段:没有产生碎片的倾向,因为没有空闲空间 应用数据段:有较低的碎片倾向 回 退 段:有适度的碎片倾向 临 时 段:有较高的碎片倾向 将在不同的表空间中竞争磁盘资源的段分隔开来,可以减少磁盘竞争 将字典段和其他段分隔开来 将回退段和其他段分隔开来 将数据段和它们对应的索引段分隔开来
DATAFILE ‘filespec’ SIZE xxx M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
特点: 1.区的大小在表空间级定义,非实体级 2.在实体级不得使用Storage设置参数 3.缺省为AUTOALLOCATE
创建临时表空间组
(Temporary Tablespace Group)
E_
将段分离
将具有不同行为特征的实体各段分离到不同的表空间中。
通过以下方式分离段
把有不同备份需要的段分开 分离日常不同功用的段 把有不同生命周期的段分开
数据库文件存储
在两个不同的物理磁盘上保存控制文件的至少两个活动的 拷贝。 使用多个Redo Log文件组并将每组成员放在不同的磁盘上。 把参与磁盘竞争的表空间分布于不同物理磁盘上。
决定表空间
在决定适合你的数据库的表空间结构前,考虑 将要存储的数据的特征。
主要考虑的因素如下:
设置操作系统目录结构 将碎片减到最小 将磁盘竞争减到最小 将段分开 数据库物理文件的分散存储
E_mail:tengyc@ 8
减少碎片
在不同的表空间中不同组的实体有不同的碎片特征。
OFFLINE
Locally Managed Tablespaces
创建本地化管理表空间
创建本地化管理表空间
区大小相同(Uniform Extent Allocation)
CREATE TABLESPACE tablespace
DATAFILE ‘filespec’ SIZE xxx M
SIZE xxx K
Oracle10g支持的表空间类型
SQL>select tablespace_name,extent_management,allocation_type from dba_tablespaces;
TABLESPACE_NAME EXTENT_MAN ALLOCATIO ------------------------------ ---------- ------------------------------------SYSTEM DICTIONARY USER RBS DICTIONARY USER TEMP DICTIONARY USER USERS DICTIONARY USER TOOLS DICTIONARY USER INDX DICTIONARY USER
本地化管理表空间
(Locally Managed Tablespaces)
本地化管理表空间不使用数据字典去寻找空闲空间,而 使用维护位图(Bitmap of Tree)方法,以使用表空间中 的数据块,以避免使用SQL语句引起系统性能的下降。 自动消除磁盘碎片。在本地化管理表空间中相邻的空闲 区被是视为一个大的可用空间,从设计上保证自动合并 磁盘碎片。 在表空间级强制设置存储参数。DBA不再担心用户使 用了不正确的存储参数及磁盘碎片的产生。 本地化管理表空间支持临时表空间与临时数据文件。临 时表空间不产生日志数据、不需要保证数据完整性。
Oracle10g支持的表空间类型
SQL>select tablespace_name,extent_management,allocation_type from dba_tablespaces;
TABLESPACE_NAME EXTENT_MAN ALLOCATIO ------------------------------ ---------- ------------------------------------SYSTEM LOCAL SYSTEM UNDOTBS1 LOCAL SYSTEM SYSAUX LOCAL SYSTEM TEMP LOCAL UNIFORM USERS LOCAL SYSTEM EXAMPLE LOCAL SYSTEM
Oracle表空间类型
Oracle表空间类型
数据字典管理表空间(Oracle7,8,8i)
表空间
Uniform
本地化管理表空间 (Oracle8i,9i,10g) AutoAllocate
数据字典管理表空间(手工创建数据库)
表空间
Uniform AutoAllocate
本地化管理表空间 (定制安装数据库)
Dictionary Tablespaces
创建字典管理表空间
创建数据字典类表空间
CREATE TABLESPACE tablespace DATAFILE ‘filespec’
Autoextend .
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE
ONLINE
Oracle10g支持的表空间类型
数据字典管理表空间
(Dictionary-Managed Tablespaces)
在数据字典管理的表空间中,如果实体要分配空间, Oracle必须查询数据字典来确定可用空间,影响系 统的性能,尤其是对于OLTP系统。 在数据字典表空间中,如果要在表空间中为表分配 一个新区,Oracle必须执行SQL语句去查询数据字 典以寻找空闲空间,并标记为空的可用空间。 数据字典管理表空间允许用户随意修改区的存储参 数。同一表空间中的实体可以具有不同的存储参数, 一个实体其区的大小可以不相同。
在Oracle Database 10g中,允许定义临时表空间 组,临时表空间组是一组多个临时表空间的逻辑组 合。 可以将临时表空间组作为系统的缺省临时表空间。
创建表空间组时,只需将第一个临时表空间指定为 某一个组即可,当表空间组中的最后一个临时表空 间被删除后,则该临时表空间组被自动删除。 可以在创建临时表空间时可以将该表空间指定为某 一个临时表空间组的一个成员。 可以使用修改表空间命令将表空间作为临时表空间
修改表空间
ALTER TABLESPACE tablespace ADD DATAFILE ‘filespec’
RENAME
DATAFILE ‘filespec’
TO
目的
DEFAULT STORAGE ONLINE OFFLINE
EXTENT MANAGEMENT LOCAL UNIFORM
特点: 1.区的大小相同,任何独立的空闲区,被作为一个大区使 用,不产生磁盘碎片。 2.实体使用统一的存储参数。
创建本地化管理表空间
区自动分配(Automatic Extent Allocation)
CREATE TABLESPACE tablespace
表空间置有联机(ONLINE)、或脱机(OFFLINE)属性 除SYSTEM、SYSAUX、UNDOTBS1及TEMP表空 间外,表空间可以置为脱机(OFFLINE),不影响数 据库运行 在创建完成数据库结构后,要决定创建的表空间
E_mail:tengyc@
4
决定表空间
Oracle Database 10g数据库应具有的 表空间如下:
SYSTEM SYSAUX UNDOTBS1 EXAMPLE TEMP USERS …
E_mail:tengyc@ 5
关于SYSAUX表空间
• •
SYSAUX表空间是第二个存储数据库标识的表空间,其 中部分数据库标识原存储在SYSTEM表空间中。 在Oracle8i、Oracle9i 中,在系统表空间中需要存储一些 必须的数据库信息。例如,RMAN恢复目录信息、Data Mining、OLAP等信息,这些信息增加了系统表空间的 存储空间。 Oracle10g将这些附加的表空间中的信息存储到表空间 SYSAUX中,该表空间成为SYSTEM的辅助表空间。 SYSAUX表空间类型必须为:本地化管理及Segment Space Management Auto类型。