五:管理表空间与数据文件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 正常(Normal): 正常( ):这是默认的脱机模式,表示表空间以正 ): 常方式切换到脱机状态。在此过程中,oracle会执行一次检查 点,将相关信息写入数据文件中,然后再关闭表空间的所有数 据文件;若在这个过程未发生任何错误,则进入了normal的脱 机状态。再次online的时候,不需要恢复。 checkpoint是一个数据库事件,它将已修改的数据从高速缓存 刷新到磁盘,并更新控制文件和数据文件。
管理数据文件
• • • • • 创建数据文件以及向表空间添加数据文件 改变数据文件的大小 使数据文件脱机或联机 重命名和重定位数据文件 查看数据文件信息
• 创建数据文件 ALTER TABLESPACE tablespacename ADD DATAFILE / TEMPFILE eg: alter tablespace app add datafile ‘d:\oracle\oradata\examdb\app1.ora’ size 5m
表空间和数据文件的类型和状态
表空间可以简单的分为: 1. 系统表空间 2. 非系统表空间 非系统表空间还可以分为: ① 永久表空间 ② 临时表空间 ③ 还原表空间(撤销表空间)
在Oracle 9i Release 1的数据库安装结束之 后,数据库具有的表空间如下: ① SYSTEM 系统表空间 ② UNDOTBS 撤销表空间 ③ TEMP 临时表空间 ④ USERS 用户数据表空间 ⑤ INDX 索引表空间 ⑥ TOOLS 开发工具表空间 ⑦ EXAMPLE 示例用户实体表空间
注意:在创建一个本地管理的临时表空间时只可以使 用指定大小的区来管理此表空间。
• 更改表空间状态
1. 使表空间脱机 可以指定四种脱机方式: • NORMAL • TEMPORARY • IMMEDIATE • FOR RECOVER eg: alter tablespace app offline normal;
注:
在Oracle 8i之前的版本,只可以使用数据字典管理的 表空间; 在Oracle 8i、Oracle 9i Release 1中,可以使用两种 方式。 Oracle 9i Release 1中,除了SYSTEM 表空间之外, 默认的表空间管理方式是本地管理的。 在Oracle 9iRelease 2中,停止了数据字典管理表空 间的使用,全面使用本地管理表空间。
• 改变数据文件的大小
ALTER DATABASE DATAFILE eg: alter database datafile ‘d:\oracle\oradata\examdb\app1.ora’ resize 10m autoextend on next 512k maxsize 20m|unlimited
表空间主要有以下几种状态: 表空间主要有以下几种状态:
联机(online) 脱机(offline) 只读或可读写(read only or read write) 注意: 注意: 除系统表空间、撤销表空间和临时表空间之 外,其他表空间都可以置为脱机,而不影响数 据库运行。
数据文件也可以根据所属表空间的不同分为: 数据文件也可以根据所属表空间的不同分为: • 普通数据文件 • 临时数据文件 • 还原数据文件 数据文件的状态分为: 数据文件的状态分为: • 联机 • 脱机
• 立即(Immediate):表示表空间以立即的方式切换到脱机 状态。这时oracle不会执行检查点,也不会检查数据文件是否 可用,而是直接将属于该表空间的数据文件设置为脱机状态。 因此再次online的时候,必须恢复。数据库如果运行在非归档 日志模式下,不允许使用立即脱机。
• 用于恢复(For Recovery):表示表空间以用于恢复的方式 切换到脱机状态。如果要对表空间进行基于时间的恢复,可用 此种模式。
• 重命名和重定位数据文件(同一个表空间中) 重命名和重定位数据文件(同一个表空间中) 1. 对数据文件重命名步骤如下: ① alter tablespace app offline normal; ② 使用操作系统重命名该数据文件。 ③ alter tablespace app rename datafile ‘d:\oracle\oradata\examdb\app1.ora’ to ‘d:\oracle\oradata\examdb\app2.ora’; ④ alter tablespace app online;
• 临时(Temporary): 临时( ):表示表空间以临时的方式切换到脱 ): 机状态。在此过程中,oracle会执行一次检查点,但在执行检 查点的时候并不会检查各个数据文件的状态,即使某些数据文 件处于不可用的状态,oracle也会忽略这些错误而进入 temporary状态。因此再次online的时候,可能要恢复。
2. 如果当前数据库没有使用归档模式:
要使数据文件脱机,必须使用DROP子句。 altBiblioteka Baidur database datafile ‘d:\oracle\oradata\ora9\app.ora’ offline drop;
查看当前数据库运行在何种模式下的方法:
• SQL> archive log list
• LOGGING |NOLOGGING 该选项指定是否启用重做日志文件记录此表空 间的数据更改情况。 • DATAFILE 用户还必须使用该子句至少指定一个属于此表 空间的数据文件。
例:创建一个本地管理的永久表空间 CREATE TABLESPACE APP LOGGING DATAFILE ‘d:\ORACLE\ORADATA\EXAMDB\APP1.ORA’ SIZE 5M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M SEGMENT SPACE MANAGEMENT AUTO
• CASCADE CONSTRAINTS 用于删除所有从其他表空间中指向该表空间中 的表的主键或惟一键的参照完整性约束。 注意: 注意: ① SYSTEM 表空间不能被删除,包含任何活动 段的表空间也不能被删除。 ② 一般情况下,用户可以先脱机该表空间,再 删除该表空间。
• 查看表空间信息 下面的数据字典视图和动态性能视图提供了 查看与表空间相关的信息。
• 使数据文件脱机或联机 1. 如果当前数据库使用了归档模式:
alter database datafile ‘d:\oracle\oradata\ora9\app.ora’ offline; 要使其再次联机,必须首先进行介质恢复。 recover datafile Number; 然后再联机。 alter database datafile ‘d:\oracle\oradata\ora9\app.ora’ online;
• SEGMENT SPACE MANAGEMENT 该子句指定段管理方式,主要是指oracle用来管理段中已用数据块 和空闲数据块的机制。 在本地管理方式下,可以用如下两个关键字来指定表空间的段管 理方式: 1--- MANUAL(手工)方式:oracle将使用可用列表(free list) 来管理段的空闲数据块,这是默认的设置。可用列表是传统的段 管理方式,段中所有的空闲块都被放入一个列表(free list)中, 在需要存储空间时就在该列表中进行搜索。 2--- AUTO(自动)方式:oracle将用位图(bitmap)来管理段的 已用数据块和空闲数据块。即通过位图中单元的取值来判断段中 的数据块是否可用。
4. 使表空间可读写 要使表空间可读写,该表空间以及该表空间中 所有的数据文件必须是联机的。 alter tablespace app read write;
删除表空间 DROP TABLESPACE 需要指定的子句: • INCLUDING CONTENTS 表空间在删除时为非空,指定删除该表空间 中的段。 • AND DATAFILES 用于同时删除表空间中的所有数据文件所对 应的操作系统文件。
管理表空间与数据文件
表空间和数据文件概述 管理表空间 管理数据文件
表空间与数据文件概述
从定义上讲,表空间是在逻辑上将Oracle数据库划分为更 小的存储区域的逻辑概念。也就是说,Oracle数据库中的 所有数据和对象都被划分存储在了不同的表空间中。而数 据文件正是用于存储这些数据和对象的物理概念。 即逻辑上,数据库中的数据存储在表空间中;相应的在物 理上,数据库中的数据存储在数据文件中。
• 查看数据文件信息 下面的数据字典视图提供了查看数据文件的 相关信息。 ① DBA_DATA_FILES 显示关于所有数据文件的说明信息,包括它所 属的表空间和文件标识。 ② V$DATAFILE 显示了控制文件中所记录的数据文件的信息。 select name, status from V$datafile where name=‘d:\oracle\oradata\examdb\app1.ora’;
管理表空间
• • • • • 创建表空间 更改表空间的存储参数 更改表空间的状态 删除表空间 查看表空间信息
• 创建表空间 CREATE TABLESPACE CREATE TEMPORARY TABLESPACE CREATE UNDO TABLESPACE
需要指定的子句: 需要指定的子句: • EXTENT MANAGEMENT 该子句指定表空间是本地管理还是字典管理, 其对应的值分别为LOCAL和DICTIONARY。 当设为LOCAL时,用户还需要指定Oracle自动 管理此表空间中区的大小,还是使用一个指定 大小的区来管理,其对应的值分别为: AUTOALLOCATE和UNIFORM SIZE
一个数据库由一个或多个表空间组成,一个表空间在某一 时刻只能属于一个数据库;一个表空间可以包含一个或多 个数据文件,而一个数据文件只能从属于一个表空间。 数据库的大小是所有表空间大小的总和。表空间的大小是 所有从属于它的数据文件大小的总和。 改变表空间的大小可以由改变数据文件的大小来实现,可 以通过增加数据文件的个数来增大表空间的大小,或者通 过增加已有数据文件的大小来实现。
数据字典管理和本地管理的表空间
Oracle数据库对于表空间中的区的分配和使用有两种管 理方式: 数据字典管理的表空间 使用数据字典来跟踪表空间的使用情况 本地管理的表空间 使用位图来跟踪表空间的使用情况,位图存储于数据文 件的头文件中。 后者比起前者而言,管理更为简单方便,能减少磁盘碎 片,拥有更好的性能。
2. 使表空间联机 alter tablespace app online; 3. 使表空间只读 注:除了永久表空间之外,其余的表空间都 不能改变它们的读写属性。 更改一个永久表空间为只读的,需要满足下 面的条件: ① 该表空间是联机的。 ② 该表空间没有包含活动的回滚段。 ③ 该表空间没有被联机备份。 alter tablespace app read only;
DBA_TABLESPACES,USER_TABLESPACES 显示所有用户可以访问的表空间的设置信息。 SQL> desc dba_tablespaces (显示该视图的结构) SQL>select tablespace_name,status,contents from dba_tablespaces;
2. 对数据文件重定位步骤如下: ① alter tablespace app offline normal; ② 使用操作系统重定位(移动)该数据文件, 如果有需要再重命名该数据文件。 alter tablespace app rename datafile ‘d:\oracle\oradata\examdb\app1.ora’ to ‘d:\oracle\oradata\app2.ora’; ③ alter tablespace app online;