《表格模板-03管理表空间和数据文件 精品.ppt》由会员分享,可在线阅读,更多相关《表格模板-03管理表空间和数据文件 精品.ppt(32页珍藏版)》请在第一文库网上搜索。
1、2022-9-211管理表空间和数据文件管理表空间和数据文件2022-9-212数据存储2022-9-213表空间和数据文件 Oracle存储数据逻辑上在表空间,物理上存储在数据文件中.表空间:只能属于一个数据库能存在一个或多个数据文件 被分成逻辑的单元 数据文件:只能属于一个表空间和一个数据库 DatabaseTablespaceData files2022-9-214表空间类型系统表空间数据库创建的时候创建存在数据字典 存在系统回滚段非系统表空间分隔不同的段对用户对象限制使用空间2022-9-215Bigfile talbespace and smallfile talbespaceo大文
2、件表空间(bigfile tablespaces)nOracle Database允许你创建大文件表空间,大文件表空间由单个文件组成n最大可以包含4G(232)个blocks.n通常的多文件表空间,数据文件不能如此之大.o大文件表空间使得Oracle获得如下收益:n显著的增强了Oracle数据库的存储容量n检查点的性能提升n对于8k的blocks,最大数据文件可以达到32T;对于32K的blocks,最大数据文件可达128Tn缩减了超大型数据库的数据文件的数量n简化了管理2022-9-216Continue oSmallfile tablespace缺省的Oracle采用小文件表空间o更改缺省
3、表空间模式SQL SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES 2 WHERE PROPERTY_NAME = DEFAULT_TBS_TYPE;PROPERTY_VALUE-SMALLFILESQL ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;Database altered.2022-9-217How to create it?o创建bigfile tablespaceo缺省LOCAL和ASSM管理对于bigfile普通表空间,只能为LMT+ASSM对于UNDO,TEMP,SYSTEM可以是LM
4、T+MANUALSQL 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
5、2022-9-218创建表空间CREATE TABLESPACE userdataDATAFILE /u01/oradata/userdata01.dbf SIZE 5M; CREATE TABLESPACE命令2022-9-219表空间的空间管理(区管理)本地管理表空间:在表空间里面管理自由的范围.Bitmap用于记录自由的范围. 每位对应一个block或者一组block.位的值表明空闲或者被使用.统一区大小(可考虑大,小表不同表空间,区大小不同)数据字典管理表空间:数据字典管理自由的分区.当分区被分配或者释放的时候相应的表空间被更新.Uet$(使用区),Fet$(空闲区)2022-9-21
6、10本地管理表空间减少在数据字典中的竞争当空间分配或者释放的时候不产生回滚信息不需要表空间空闲空间的合并CREATE TABLESPACE userdataDATAFILE /u01/oradata/userdata01.dbf SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;2022-9-2111数据字典管理表空间数据字典管理范围.在表空间中的每个段都有一个不同的存储子句.需要合并连续空闲区.DMT技术已经被放弃CREATE TABLESPACE userdataDATAFILE /u01/oradata/userdata01.dbf
7、SIZE 500M EXTENT MANAGEMENT DICTIONARYDEFAULT STORAGE (initial 1M NEXT 1M PCTINCREASE 0);2022-9-2112回滚表空间用于存储回滚段不能包含任何其他对象区是本地管理的CREATE UNDO TABLESPACE undo1DATAFILE /u01/oradata/undo01.dbf SIZE 40M;2022-9-2113临时表空间用于排序操作可以被多个用户共享不能存在任何永久的对象CREATE TEMPORARY TABLESPACE tempTEMPFILE /u01/oradata/temp0
8、1.dbf SIZE 20MEXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;2022-9-2114默认的临时表空间指定一个数据库的默认临时表空间消除使用系统表空间做数据排序能用下列语句创建: CREATE DATABASE ALTER DATABASE ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;2022-9-2115创建一个默认的临时表空间CREATE DATABASE DBA01 LOGFILE GROUP 1 (/$HOME/ORADATA/u01/redo01.log) SIZE 100M, GROU
9、P 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
10、/ORADATA/u03/temp01.dbf SIZE 4M CHARACTER SET US7ASCII2022-9-2116创建一个默认的临时表空间在数据库创建后:查询DATABASE_PROPERTIES可以找到默认的临时表空间:ALTER DATABASE DEFAULT TEMPORARY TABLESPACE default_temp2;SELECT * FROM DATABASE_PROPERTIES;2022-9-2117默认临时表空间的限制 默认的临时表空间不能用于: 只能在创建一个新的默认临时表空间后原来的才可以删除 不能离线 修改为一个永久的表空间2022-9-2118
11、几点说明(UNIX下)o 初始创建临时表空间时并不会真正分配空间o 在随后的使用中开始分配o 由于空间问题可能会导致潜在故障2022-9-2119Oracle10g-The default tablespaceo缺省固定及临时表空间Oracle提供用户配置的缺省表空间,一旦你设置了一个用户缺省表空间,那么所有的新用户如果不指定,其缺省表空间都会分配在这个表空间中,而不是system表空间select property_name,property_valuefrom database_properties where property_name like DEFAULT%;DEFAULT_TEM
12、P_TABLESPACETEMPDEFAULT_PERMANENT_TABLESPACEUSERSDEFAULT_TBS_TYPE SMALLFILE2022-9-2120只读表空间使用下列语句把表空间置为只读状态:引起一个检查点(部分检查点)数据只能被读取表空间中的对象能被删除ALTER TABLESPACE userdata READ ONLY; 2022-9-2121使一个表空间离线 表空间中的所有数据都不能被访问有些表空间是不能被离线的: 系统表空间存在激活的回滚段的表空间默认的临时表空间离线的语句:联机的语句:ALTER TABLESPACE userdata OFFLINE;ALT
13、ER TABLESPACE userdata ONLINE;2022-9-2122Oracle10g-Easy to rename a tablespaceo Oracle允许使用rename命令直接修改表空间名称 SQL alter tablespace test rename to itpub;Tablespace altered.2022-9-2123改变一个表空间大小 一个表空间可以使用以下方法改变大小:改变数据文件的大小:自动就使用AUTOEXTEND 手工使用ALTER DATABASE命令使用ALTER TABLESPACE命令增加一个数据文件2022-9-2124启用数据文件的
14、自动扩展能够自动的扩展: CREATE DATABASE CREATE TABLESPACE ALTER TABLESPACE ADD DATAFILE例如:查询DBA_DATA_FILES可以查看数据文件的自动扩展启用没有. CREATE TABLESPACE user_dataDATAFILE /u01/oradata/userdata01.dbf SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;2022-9-2125手工改变数据文件的大小手工使用ALTER DATABASE增大或减小一个数据文件的大小.增大数据文件的空间不用增加更多的数据文件.
15、手工改变数据文件的大小是回收没用的空间.例如:ALTER DATABASEDATAFILE /u03/oradata/userdata02.dbfRESIZE 200M;2022-9-2126增加表空间的数据文件增大表空间大小通过增加数据文件ADD DATAFILE语句用于增加数据文件例如:ALTER TABLESPACE user_data ADD DATAFILE /u01/oradata/userdata03.dbf SIZE 200M;2022-9-2127移动数据文件的方法ALTER TABLESPACE表空间必须离线.OS COPYREMANEONLINE目标数据文件必须存在.AL
16、TER TABLESPACE userdata RENAMEDATAFILE /u01/oradata/userdata01.dbfTO /u02/oradata/userdata01.dbf;2022-9-2128移动数据文件的方法ALTER DATABASE数据库必须(需要)在MOUNT状态.目标数据文件必须存在.ALTER DATABASE RENAME FILE /u01/oradata/system01.dbfTO /u03/oradata/system01.dbf;2022-9-2129oSQL select tablespace_name,file_name from dba_data_files;TABLESPACE_NAME FILE_NAME- -SYSTEM E:ORACLEORADATAVILENSYSTEM01.DBFUNDOTBS1 E:ORACLEORADATAVILENUNDOTBS01.DBFOEM_REPOSITORY E:ORACLEORADATAVILENOEM_REPOSITORY.DBFTRAIN E:ORACLEORADATAVILENTE