oracle10g数据库的表空间查看和修改
- 格式:doc
- 大小:805.00 KB
- 文档页数:10
Oracle 10g版本对数据输入与输出的操作功能进行重新设计,在输入或输出工作中增加断开和连接的功能。
对这些功能做微小改动,就可利于DBA表空间的操作。
作为整体单元输出表空间过去的输出和输入功能有3种模式:依赖于对象输出,如索引的单个表格;输出某个用户所有的对象;输出整个数据库。
但是表空间是一个难于处理的问题。
不同用户的对象存储在给定的表空间中,但是某些对象可能存储在其它表空间。
因此,唯一的解决方法则是使用查询数据字典查找列表及其从属主,然后使用“table-mode export”输出单个整体单元。
Oracle 10g版本中,由于包含输出“Data Pump”(expdp),可以直接从表空间输出所有对象。
TABLESPACES参数允许指定需要输出的表空间。
TABLESPACES=name [,...]如果数据库继承很多基于字典的表空间,以上方法显得更加非常有用。
并且,可在本地重新创建表空间而减少碎片,然后再重新导入内容。
在输入时重命名数据文件名如果将数据库从一平台转移到另一平台,在数据文件导入之前,DBA需要预先创建表空间。
为什么呢?因为在转储文件中包含原始数据库操作系统格式的数据文件路径,将转储文件输入到其他操作系统时,则有可能产生错误。
在Oracle 10g版本的输入(impdp)功能,其REMAP_DATAFILE参数可重命名数据文件,以消除以上问题。
其格式如下:REMAP_DATAFILE=source_datafile:target_datafile这一选项只作用于FULL输入,并且指定的userID必须为IMP_FULL_DATABASE。
输入时更改表空间名称Impdp功能允许向不同的表空间加载对象。
在10g版本出现以前,这一操作非常复杂。
首先,因为没有写操作权限,必须移除原始表空间的限额,然后再设置表空间。
再输入过程中,原始表空间中的对象可以存储在设置后的表空间中。
当任务完成后,必须进行将表空间恢复到原来状态。
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简介一、选择题1.下面不属于ORACLE 10g产品系列的是(D)A.Oracle数据库10g标准版1B.Oracle数据库10g标准版C.Oracle数据库10g企业版D.Oracle数据库10g网络版2.ORACLE 10g中的g表示(D)A.版本B.网络C.数据库D.网格计算3.下面关于ORACLE 10g数据库逻辑结构的描述错误的是(C)A.数据库由若干个表空间组成B.表空间由表组成C.表由数据块组成D.段由区间组成4.ORACLE管理数据库存储空间的最小存储单位是(A)A.数据块B.表空间C.表D.区间5.ORACLE分配磁盘空间的最小单位是(D)A.数据块B.表空间C.表D.区间6.下列不属于ORACLE表空间的是(D)A.大文件表空间B.系统表空间C.撤销表空间D.网格表空间7.当数据库服务器上的一个数据库启动时,ORACLE将分配一块内存区间,叫做系统全局区,英文缩写为(B)A.VGAB.SGAC.PGAD.GLOBAL二、填空题1.__视图__ 是虚拟的表,它在物理上并不存在。
可以把它看成是一个存储的查询。
2.创建___索引__可以提高读取数据的效率。
它的功能类似于书的目录,读者可以通过目录很快的在书中找到需要的内容。
3.有些表共享公共的列,并经常被同时访问,为了提高数据存取效率,把这些表在物理上存储在一起,得到的表的组合就是____簇____。
4.一个数据块对应磁盘上的一定数量的数据库空间,标准的数据块大小由初始参数(DB_BLOCK_SIZE )指定。
5.每个数据库都至少有一个系统表空间,被称为__SYSTEM_表空间。
6.每个ORACLE数据库都由3种类型的文件组成:数据文件、日志文件、控制文件。
7.ORACLE有两种内存结构,即_系统全局区_和_程序全局区_。
三、简答题1.简述ORACLE数据库逻辑结构中各要素之间的关系。
Oracle 改变表空间读写状态表空间可以是读写方式,也可以是只读方式。
默认情况下,所有的表空间都是读写方式,任何具有配额并且具有适当权限的用户都可以写入表空间。
但是如果将表空间设置为只读方式,则任何用户都无法向表空间写入数据,也无法修改表空间中已有的数据,这种限制与权限无关。
将表空间设置为只读方式的主要目的,是为了避免对数据库中的静态数据进行更改。
用户只能查询只读表空间中的数据,而不能进行修改。
1.设置表空间为只读状态所有的表空间在创建后都是处于读写状态。
通过在ALTER TABLESPACE语句中使用READ ONL Y子句,可以将表空间设置为只读状态。
在成功地将表空间设置为只读状态时,表空间必须处于联机状态,另外,SYSEM表空间也不能设置为只读表空间。
例如,下面的语句将把表空间USER01设置为只读状态:SQL> alter tablespace user01 read only;表空间已更改。
SQL> insert into employees2 values(100,'SWITH',1200);insert into employees*第 1 行出现错误:ORA-00372: 此时无法修改文件10ORA-01110: 数据文件10: 'D:\ORACLEDATA\USER01'上述语句执行后,不必等待表空间中活动事务结束即可立即生效,USER01表空间将进入“事务只读状态”。
以后任何用户都不能再创建针对该表空间的读写事务,而当前正在活动的事务则可以继续向表空间中写入数据,直到它们结束为止。
当针对该表空间的所有事务都结束之后,表空间才进入只读状态。
2.设置表空间为读写状态将表空间恢复为读写状态时,只需要在ALTER TABLESPACE语句中使用READ WRITE 子句。
将表空间恢复为读写状态时,必须保证表空间的所有数据文件都处于联机状态,同时表空间本身也必须处于联机状态。
一、基本的Oracle存储结构:表空间与数据文件Oracle数据库中具有两种类型的存储:物理存储和逻辑存储。
上面的Oracle存储结构模型中,可以看出下列要素:∙每个数据库(Database)都必须由一个或多个表空间(Tablespace)组成。
每个表空间都必须属于并且只属于一个数据库。
∙每个表空间都必须由一个或多个数据文件(Datafile)组成。
每个数据文件都必须属于并且只属于一个表空间。
∙每个数据文件都必须由一个或多个操作系统块(Operation System Block)组成。
每个操作系统块都必须属于并且只属于一个数据文件。
∙每个表空间都可以包含一个或多个段(Segment)。
每个段都必须存在并且只能存在于一个表空间内。
∙每个段都必须由一个或多个区间(Extent)组成。
每个区间都必须属于并且只属于一个段。
∙每个区间都必须由一个或多个Oracle数据块(Oracle Block)组成。
每个Oracle 数据块都必须属于并且只属于一个区间。
∙每个区间都必须被定位并且只能定位在一个数据文件内。
数据文件中的空间可以被分配为一个或多个区间。
∙每个Oracle数据块都必须由一个或多个操作系统块组成。
每个操作系统块都可以是并且只能是一个Oracle数据块的部分。
1、物理存储结构物理结构是操作系统操作Oracle数据库时能够看见的结构。
1.1、Oracle数据文件数据文件由下列3部分组成:头部、区间(已分配的空间)以及空闲空间(未分配的空间)。
oracle16数据文件的头部(Header)将其标识为数据库的一部分,并且存储了该数据文件的细节,细节包括数据文件所属的表空间以及最后执行的检查点。
这样,Oracle就能够在启动时检查所有相关文件是否同步。
数据文件的剩余部分由区间和空闲空间组成,通过创建、删除和更改Oracle的段(Segment)逻辑存储组件就可以对这些剩余部分进行管理。
每个Oracle数据文件都只属于一个表空间。
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 tablespace (表空间)的创建、删除、修改、扩展及检查等oracle 数据库表空间的作用1.决定数据库实体的空间分配;2.设置数据库用户的空间份额;3.控制数据库部分数据的可用性;4.分布数据于不同的设备之间以改善性能;5.备份和恢复数据。
--oracle 可以创建的表空间有三种类型:1.temporary: 临时表空间,用于临时数据的存放;create temporary tablespace "sample"......2.undo : 还原表空间. 用于存入重做日志文件.create undo tablespace "sample"......3.用户表空间: 最重要,也是用于存放用户数据表空间create tablespace "sample"......--注:temporary 和undo 表空间是oracle 管理的特殊的表空间.只用于存放系统相关数据.--oracle 创建表空间应该授予的权限1.被授予关于一个或多个表空间中的resource特权;2.被指定缺省表空间;3.被分配指定表空间的存储空间使用份额;4.被指定缺省临时段表空间。
select tablespace_name "表空间名称",status "状态",extent_management "区管理方式",allocation_type "磁盘扩展管理方式",segment_space_management "段管理方式" from dba_tablespaces;--查询各个表空间的区、段管理方式--1、建立表空间--语法格式:create tablespace 表空间名datafile '文件标识符' 存储参数[...]|[minimum extent n] --设置表空间中创建的最小范围大小|[logging|nologging]|[default storage(存储配置参数)]|[online|offline]; --表空间联机\脱机|[permanent|temporary] --指定该表空间是用于保存永久的对象还是只保存临时对象 |[...]--其中:文件标识符=’文件名’[size整数[k\m][reuse]--实例create tablespace data01datafile '/oracle/oradata/db/data01.dbf' size 500muniform size 128k; --指定区尺寸为128k,如不指定,区尺寸默认为64kcreate tablespace "test"loggingdatafile 'd:\oracle\oradata\oracle\sample.ora' size 5m,'d:\oracle\oradata\oracle\dd.ora' size 5mextent management localuniform segment space managementauto;--详解/*第一: create tablespace "sample"创建一个名为"sample" 的表空间.对表空间的命名,遵守oracle 的命名规范就可了. 第二: logging 有nologging 和logging 两个选项,nologging: 创建表空间时,不创建重做日志.logging 和nologging正好相反, 就是在创建表空间时生成重做日志.用nologging时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复;但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表空间,并导入数据后,是要对数据做备份的;所以通常不需要表空间的创建日志,因此,在创建表空间时,选择nologging,以加快表空间的创建速度.第三: datafile 用于指定数据文件的具体位置和大小.datafile 的文件是建立表空间后创建的,不过文件路径必须存在才是合法的datafile设置如: datafile 'd:\oracle\oradata\ora92\luntan.ora' size 5m说明文件的存放位置是'd:\oracle\oradata\ora92\luntan.ora' , 文件的大小为5m.如果有多个文件,可以用逗号隔开:如:datafile 'd:\oracle\oradata\ora92\luntan.ora' size 5m, 'd:\oracle\oradata\ora92\ dd.ora' size 5m但是每个文件都需要指明大小.单位以指定的单位为准如5m 或500k.对具体的文件,可以根据不同的需要,存放大不同的介质上,如磁盘阵列,以减少io竟争. 指定文件名时,必须为绝对地址,不能使用相对地址.第四: extent management local 存储区管理方法在字典中管理(dictionary):将数据文件中的每一个存储单元做为一条记录,所以在做dm操作时,就会产生大量的对这个管理表的delete和update操作.做大量数据管理时,将会产生很多的dm操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片.本地管理(local):用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘.同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
Oracle10g数据库实验指导书前言ORACLE数据库是属于数据库开发软件及应用领域的专业课,是面向计算机专业本科生开设的一门数据库应用普及型计算机专业课程。
ORACLE数据库是当前应用最为广泛的数据库系统,ORACLE数据库是针对高年级学生的实践性较强的课程。
通过实训,并结合典型系统进行分析,使学生较为系统地掌握ORACLE数据库的基本开发方法,运用数据库设计理论设计出满足一定规范的ORACLE 数据库应用系统。
随着计算机数据库技术的迅速发展和在当今信息社会中的广泛应用,给《ORACLE数据库》课程的教学提出了新的更高的要求。
由于ORACLE数据库是一门实践性较强的技术,课堂教学应该与实践环节紧密结合。
实验要求通过理论学习,能够在ORACLE这个大型的数据库设计实践中,对ORACLE的基本功能有一个初步的了解:通过对SQL*PLUS的简单使用,掌握其基本操作命令和技术;通过PL/SQL编程语言的使用与程序设计的分析,加深学生对SQL*PLUS和PL/SQL技术的理解和掌握,进而为今后再涉及到难度较大的实际应用打下扎实的基础。
总之,通过上述实验环节,使学生加深了解和更好地掌握《ORACLE10g数据库》课程教学大纲要求的内容。
在课程实训过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实训内容的准备,就实验可能出现的情况提前做出思考和分析。
(2)仔细观察上机操作时出现的各种现象,记录主要情况,作出必要说明和分析。
(3)认真书写实验报告。
实验报告包括实验目的和要求,实验情况及其分析。
对需编程的实验,写出程序设计说明,给出源程序框图和清单。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)实验课程不迟到。
目录实践1 Oracle10g的安装与配置及常用工具的使用 (1)实践2 创建数据库、表空间和数据文件 (25)实践3 数据库的安全管理 (27)实践4 管理表结构与表数据 (32)实践5 管理索引、视图、同义词和序列 (36)实践6 PL/SQL编程基础 (38)实践7 PL/SQL高级编程 (42)综合实践一Oracle基本知识与SQL*PLUS简单使用 (46)综合实践二PL/SQL编程语言的使用与程序设计 (57)综合实践三(设计性) JSP+Oracle网上购物系统 (68)附录:员工医疗保险系统表 (69)实践1 Oracle10g的安装与配置及常用工具的使用开发语言及实现平台或实验环境Oracle 10g实践目的(1) 掌握Oracle 10g数据库的安装与配置过程。
每一中数据库都需要有一种管理回滚或者撤销数据的方法。
当一个DML发生以后,在用户还没有提交(COMMIT)改变,用户不希望这种改变继续保持,需要撤销所做的修改,将数据回退到没有发生改变以前,这时就需要使用一种被称为撤销记录的数据。
使用撤销记录,我们可以:1、当使用ROLLBACK语句时回滚事务,撤销DML操作改变的数据2、恢复数据库3、提供读取的一致性4、使用Oracle Flashback Query分析基于先前时间点的数据5、使用Oracle Flashback特性从逻辑故障中恢复数据库Oracle10g中的自动撤销管理(AUM)在Oracle10g中对于回滚段的管理可以通过配置参数而实现自动管理。
为启用撤销空间的自动管理,首先必须在init.ora中或者SPFILE文件中指定自动撤销模式。
其次需要创建一个专用的表空间来存放撤销信息,这保证用户不会在SYSTEM 表空间中保存撤销信息。
此外还需要为撤销选择一个保留时间。
如果需要实现AUM,需要配置以下3个参数:UNDO_MAMAGEMENTUNDO_TABLESPACEUNDO_RETENTION查看初始化参数的设置:SQL> show parameter undo_tablespace;NAME TYPE VALUE------------------------------------ ----------------------------------undo_tablespace string UNDOTBS1SQL> show parameter undo_management;NAME TYPE VALUE------------------------------------ ----------------------------------undo_management string AUTOSQL> show parameter undo_retention;NAME TYPE VALUE------------------------------------ ----------------------------------undo_retention integer 900SQL>初始化参数的描述:Initialization Parameter DescriptionUNDO_MANAGEMENT If AUTO, use automatic undo management. The default is MANUALUNDO_TABLESPACE An optional dynamic parameter specifying the name of an undo tablespace. This parameter should be used only when the database has multiple undo tablespaces and you want to direct the database instance to use a particular undo tablespace.UNDO_RETENTION The UNDO_RETENTION parameter is ignored for a fixed size undo tablespace. The database may overwrite unexpired undo information when tablespace space becomes low.For an undo tablespace with the AUTOEXTEND option enabled, the databaseattempts to honor the minimum retention period specified byUNDO_RETENTION. When space is low, instead of overwriting unexpired undo information, the tablespace auto-extends. If the MAXSIZE clause is specified for an auto-extending undo tablespace, when the maximum size is reached, the database may begin to overwrite unexpired undo information.如果将初始化参数UNDO_MANAGEMENT设置为AUTO,则Oracle10g将启用AUM。
Oracle 10g Shrink Table的使用是本文我们主要要介绍的内容,我们知道,如果经常在表上执行DML操作,会造成数据库块中数据分布稀疏,浪费大量空间。
同时也会影响全表扫描的性能,因为全表扫描需要访问更多的数据块。
从Oracle 10g开始,表可以通过shrink来重组数据使数据分布更紧密,同时降低HWM释放空闲数据块。
segment shrink分为两个阶段:1、数据重组(compact):通过一系列insert、delete操作,将数据尽量排列在段的前面。
在这个过程中需要在表上加RX锁,即只在需要移动的行上加锁。
由于涉及到rowid的改变,需要enable row movement.同时要disable基于rowid的trigger.这一过程对业务影响比较小。
2、HWM调整:第二阶段是调整HWM位置,释放空闲数据块。
此过程需要在表上加X锁,会造成表上的所有DML语句阻塞。
在业务特别繁忙的系统上可能造成比较大的影响。
ShrinkSpace语句两个阶段都执行。
Shrink Space compact只执行第一个阶段。
如果系统业务比较繁忙,可以先执行Shrink Space compact重组数据,然后在业务不忙的时候再执行Shrink Space降低HWM释放空闲数据块。
shrink必须开启行迁移功能。
alter table table_name enable row movement ;注意:alter table XXX enable row movement语句会造成引用表XXX的对象(如存储过程、包、视图等)变为无效。
执行完成后,最好执行一下utlrp.sql来编译无效的对象。
语法:1.alter table <table_name> shrink space [ <null> | compact | cascade ];2.alter table <table_name> shrink space compcat;收缩表,相当于把块中数据打结实了,但会保持high water mark;alter table <tablespace_name> Shrink Space;收缩表,降低 high water mark;alter table <tablespace_name> Shrink Space cascade;收缩表,降低 high water mark,并且相关索引也要收缩一下下。
oracle数据库表空间大小的查看、修改
1、通过oracle客户端连接到oracle数据库
a)安装好oracle客户端后,通过net manager工具配置本地net服务名,
依次点击开始,程序,Oracle - OraClient10g_home1,配置和移植工具,Net Manager。
b)进入Net Manager配置窗口。
c)依次点击本地,服务命名。
d)可以看到左侧的号变成绿色,此时可以点击该,弹出net服务名的
配置窗口
e)这里的网络服务名是指的oracle客户端所在机器的本地服务名,随便设
置个名字,例如sbzw,点击下一步。
f)默认设置,点击下一步。
g)在主机名后的输入框中输入oracle数据库所在的服务器的ip地址,例
如:192.168.1.236.,点击下一步。
h)在服务名后的输入框中输入oracle数据库的全局服务名,例如tjsb,
点击下一步。
i)此处不要点击完成,先点击测试查看连接是否正常。
j)在连接测试窗口中显示的应该是测试没有成功,此时请点击更改登录。
k)修改了用户名和密码后,点击确定,然后再次点击“测试”,提示连接成功后,关闭连接测试窗口,点击完成,至此本地net服务名配置完成。
2、通过oracle客户端的企业管理器修改数据库的表空间大小
a)依次点击开始,程序,Oracle - OraClient10g_home1,Enterprise
Manager Console(企业管理器)。
b)进入了oracle的企业管理器
c)依次点击数据库,sbzw,弹出登录窗口,
d)对于修改表空间而言,这里的用户名必须是sys用户,连接身份为
SYSDBA。
e)输入完成后,点击确定,可以看到左侧sbzw的菜单已经打开。
f)依次选择存储,表空间,则页面左侧会显示当前的表空间的使用情况。
出该表空间的编辑窗口。
h)对于表空间的修改,有两种办法:
i.一种是直接修改单个数据文件的大小值,也就是直接修改上图中的
大小里面的数值,单位是MB,修改完成后点击确定即可。
建议单个
数据文件大小不要超过2G,最多不超过10G,主要是为了防止数据
文件太大,万一数据文件出现错误会造成很大的损失。
ii.另一种是直接添加一个新的数据文件,例如下图中,我直接按照原有文件的序列添加了一个TS_FZ4_DATA_003.DBF数据文件,然后将
此数据文件放到了E盘的ganhui文件夹下,大小为2348M。
然后点
击确定即可。
说明:此处的文件名可以随便命名,后缀名系统设置为DBF即可。
文件目录就是该数据文件存放的位置,可以设置到空间比较大的盘符中去,提前创建好该文件夹,然后将文件目录指向该文件夹即可。
i)至此,oracle数据库表空间修改完成。