资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
管理表空间和数据文件,2020/8/1,1,数据存储,2020/8/1,2,表空间和数据文件,Oracle存储数据逻辑上在表空间,物理上存储在数据文件中. 表空间: 只能属于一个数据库 能存在一个或多个数据文件 被分成逻辑的单元 数据文件: 只能属于一个表空间和一个数据库,Database,Tablespace,Data files,2020/8/1,3,表空间类型,系统表空间 数据库创建的时候创建 存在数据字典 存在系统回滚段 非系统表空间 分隔不同的段 对用户对象限制使用空间,2020/8/1,4,Bigfile talbespace and smallfile talbespace,大文件表空间(bigfile tablespaces) Oracle Database允许你创建大文件表空间,大文件表空间由单个文件组成 最大可以包含4G(232)个blocks. 通常的多文件表空间,数据文件不能如此之大. 大文件表空间使得Oracle获得如下收益: 显著的增强了Oracle数据库的存储容量 检查点的性能提升 对于8k的blocks,最大数据文件可以达到32T;对于32K的blocks,最大数据文件可达128T 缩减了超大型数据库的数据文件的数量 简化了管理,2020/8/1,5,Continue ,Smallfile tablespace 缺省的Oracle采用小文件表空间 更改缺省表空间模式,SQL SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES 2 WHERE PROPERTY_NAME = DEFAULT_TBS_TYPE; PROPERTY_VALUE - SMALLFILE,SQL ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE; Database altered.,2020/8/1,6,How to create it?,创建bigfile tablespace 缺省LOCAL和ASSM管理 对于bigfile普通表空间,只能为LMT+ASSM 对于UNDO,TEMP,SYSTEM可以是LMT+MANUAL,SQL create bigfile tablespace bigtbs 2 datafile /data1/oradata/systemfile/bigtbs.dbf size 50G; Tablespace created.,SQL select TABLESPACE_NAME,EXTENT_MANAGEMENT, SEGMENT_SPACE_MANAGEMENT 2 from dba_tablespaces 3 where tablespace_name=BIGTBS; TABLESPACE_NAME EXTENT_MAN SEGMEN - - - BIGTBS LOCAL AUTO,2020/8/1,7,创建表空间,CREATE TABLESPACE userdata DATAFILE /u01/oradata/userdata01.dbf SIZE 5M;,CREATE TABLESPACE命令,2020/8/1,8,表空间的空间管理(区管理),本地管理表空间: 在表空间里面管理自由的范围. Bitmap用于记录自由的范围. 每位对应一个block或者一组block. 位的值表明空闲或者被使用. 统一区大小(可考虑大,小表不同表空间,区大小不同) 数据字典管理表空间: 数据字典管理自由的分区. 当分区被分配或者释放的时候相应的表空间被更新. Uet$(使用区),Fet$(空闲区),2020/8/1,9,本地管理表空间,减少在数据字典中的竞争 当空间分配或者释放的时候不产生回滚信息 不需要表空间空闲空间的合并,CREATE TABLESPACE userdata DATAFILE /u01/oradata/userdata01.dbf SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;,2020/8/1,10,数据字典管理表空间,数据字典管理范围. 在表空间中的每个段都有一个不同的存储子句. 需要合并连续空闲区. DMT技术已经被放弃,CREATE TABLESPACE userdata DATAFILE /u01/oradata/userdata01.dbf SIZE 500M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE (initial 1M NEXT 1M PCTINCREASE 0);,2020/8/1,11,回滚表空间,用于存储回滚段 不能包含任何其他对象 区是本地管理的,CREATE UNDO TABLESPACE undo1 DATAFILE /u01/oradata/undo01.dbf SIZE 40M;,2020/8/1,12,临时表空间,用于排序操作 可以被多个用户共享 不能存在任何永久的对象,CREATE TEMPORARY TABLESPACE temp TEMPFILE /u01/oradata/temp01.dbf SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;,2020/8/1,13,默认的临时表空间,指定一个数据库的默认临时表空间 消除使用系统表空间做数据排序 能用下列语句创建: CREATE DATABASE ALTER DATABASE ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;,2020/8/1,14,创建一个默认的临时表空间,CREATE DATABASE DBA01 LOGFILE GROUP 1 (/$HOME/ORADATA/u01/redo01.log) SIZE 100M, GROUP 2 (/$HOME/ORADATA/u02/redo02.log) SIZE 100M, MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 DATAFILE /$HOME/ORADATA/u01/system01.dbf SIZE 325M UNDO TABLESPACE undotbs DATAFILE /$HOME/ORADATA/u02/undotbs01.dbf SIZE 200 DEFAULT TEMPORARY TABLESPACE temp TEMPFILE /$HOME/ORADATA/u03/temp01.dbf SIZE 4M CHARACTER SET US7ASCII,2020/8/1,15,创建一个默认的临时表空间,在数据库创建后: 查询DATABASE_PROPERTIES可以找到默认的临时表空间:,ALTER DATABASE DEFAULT TEMPORARY TABLESPACE default_temp2;,SELECT * FROM DATABASE_PROPERTIES;,2020/8/1,16,默认临时表空间的限制,默认的临时表空间不能用于: 只能在创建一个新的默认临时表空间后原来的才可以删除 不能离线 修改为一个永久的表空间,2020/8/1,17,几点说明(UNIX下),初始创建临时表空间时并不会真正分配空间 在随后的使用中开始分配 由于空间问题可能会导致潜在故障,2020/8/1,18,Oracle10g-The default tablespace,缺省固定及临时表空间 Oracle提供用户配置的缺省表空间,一旦你设置了一个用户缺省表空间,那么所有的新用户如果不指定,其缺省表空间都会分配在这个表空间中,而不是system表空间,select property_name,property_value from database_properties where property_name like DEFAULT%; DEFAULT_TEMP_TABLESPACETEMP DEFAULT_PERMANENT_TABLESPACEUSERS DEFAULT_TBS_TYPE SMALLFILE,2020/8/1,19,只读表空间,使用下列语句把表空间置为只读状态: 引起一个检查点(部分检查点) 数据只能被读取 表空间中的对象能被删除,ALTER TABLESPACE userdata READ ONLY;,2020/8/1,20,使一个表空间离线,表空间中的所有数据都不能被访问 有些表空间是不能被离线的: 系统表空间 存在激活的回滚段的表空间 默认的临时表空间 离线的语句: 联机的语句:,ALTER TABLESPACE userdata OFFLINE;,ALTER TABLESPACE userdata ONLINE;,2020/8/1,21,Oracle10g-Easy to rename a tablespace,Oracle允许使用rename命令直接修改表空间名称,SQL alter tablespace test rename to itpub; Tablespace altered.,2020/8/1,22,改变一个表空间大小,一个表空间可以使用以下方法改变大小: 改变数据文件的大小: 自动就使用AUTOEXTEND 手工使用ALTER DATABASE命令 使用ALTER TABLESPACE命令增加一个数据文件,2020/8/1,23,启用数据文件的自动扩展,能够自动的扩展: CREATE DATABASE CREATE TABLESPACE ALTER TABLESPACE ADD DATAFILE 例如: 查询DBA_DATA_FILES可以查看数据文件的自动扩展启用没有.,CREATE TABLESPACE user_data DATAFILE /u01/oradata/userdata01.dbf SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;,2020/8/1,24,手工改变数据文件的大小,手工使用ALTER DATABASE增大或减小一个数据文件的大小. 增大数据文件的空间不用增加更多的数据文件. 手工改变数据文件的大小是回收没用的空间. 例如:,ALTER DATABASE DATAFILE /u03/oradata/userdata02.dbf RESIZE 200M;,2020/8/1,25,增加表空间的数据文件,增大表空间大小通过增加数据文件 ADD DATAFILE语句用于增加数据文件 例如:,ALTER TABLESPACE user_data ADD DATAFILE /u01/oradata/userdata03.dbf SIZE 200M;,2020/8/1,26,移动数据文件的方法,ALTER TABLESPACE 表空间必须离线. OS COPY REMANE ONLINE 目标数据文件必须存在.,ALTER TABLESPACE userdata RENAME DATAFILE /u01/oradata/userdata01.dbf TO /u02/oradata/userdata01.dbf;,2020/8/1,27,移动数据文件的方法,ALTER DATABASE 数据库必须(需要)在MOUNT状态. 目标数据文件必须存在.,ALTER DATABASE RENAME FILE /u01/oradata/syst
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号