您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 03管理表空间和数据文件
2019/9/201管理表空间和数据文件2019/9/202数据存储2019/9/203表空间和数据文件Oracle存储数据逻辑上在表空间,物理上存储在数据文件中.表空间:•只能属于一个数据库•能存在一个或多个数据文件•被分成逻辑的单元数据文件:•只能属于一个表空间和一个数据库DatabaseTablespaceDatafiles2019/9/204表空间类型系统表空间•数据库创建的时候创建•存在数据字典•存在系统回滚段非系统表空间•分隔不同的段•对用户对象限制使用空间2019/9/208创建表空间CREATETABLESPACEuserdataDATAFILE'/u01/oradata/userdata01.dbf'SIZE5M;CREATETABLESPACE命令2019/9/209表空间的空间管理(区管理)本地管理表空间:•在表空间里面管理自由的范围.•Bitmap用于记录自由的范围.•每位对应一个block或者一组block.•位的值表明空闲或者被使用.•统一区大小(可考虑大,小表不同表空间,区大小不同)数据字典管理表空间:•数据字典管理自由的分区.•当分区被分配或者释放的时候相应的表空间被更新.•Uet$(使用区),Fet$(空闲区)2019/9/2010本地管理表空间减少在数据字典中的竞争当空间分配或者释放的时候不产生回滚信息不需要表空间空闲空间的合并CREATETABLESPACEuserdataDATAFILE'/u01/oradata/userdata01.dbf'SIZE500MEXTENTMANAGEMENTLOCALUNIFORMSIZE128K;2019/9/2011数据字典管理表空间数据字典管理范围.在表空间中的每个段都有一个不同的存储子句.需要合并连续空闲区.DMT技术已经被放弃CREATETABLESPACEuserdataDATAFILE'/u01/oradata/userdata01.dbf'SIZE500MEXTENTMANAGEMENTDICTIONARYDEFAULTSTORAGE(initial1MNEXT1MPCTINCREASE0);2019/9/2012回滚表空间用于存储回滚段不能包含任何其他对象区是本地管理的CREATEUNDOTABLESPACEundo1DATAFILE'/u01/oradata/undo01.dbf'SIZE40M;2019/9/2013临时表空间用于排序操作可以被多个用户共享不能存在任何永久的对象CREATETEMPORARYTABLESPACEtempTEMPFILE'/u01/oradata/temp01.dbf'SIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE4M;2019/9/2014默认的临时表空间指定一个数据库的默认临时表空间消除使用系统表空间做数据排序能用下列语句创建:•CREATEDATABASE•ALTERDATABASE•ALTERDATABASEDEFAULTTEMPORARYTABLESPACEtemp;2019/9/2015创建一个默认的临时表空间CREATEDATABASEDBA01LOGFILEGROUP1('/$HOME/ORADATA/u01/redo01.log')SIZE100M,GROUP2('/$HOME/ORADATA/u02/redo02.log')SIZE100M,MAXLOGFILES5MAXLOGMEMBERS5MAXLOGHISTORY1MAXDATAFILES100MAXINSTANCES1DATAFILE'/$HOME/ORADATA/u01/system01.dbf'SIZE325MUNDOTABLESPACEundotbsDATAFILE'/$HOME/ORADATA/u02/undotbs01.dbf'SIZE200DEFAULTTEMPORARYTABLESPACEtempTEMPFILE'/$HOME/ORADATA/u03/temp01.dbf'SIZE4MCHARACTERSETUS7ASCII2019/9/2016创建一个默认的临时表空间在数据库创建后:查询DATABASE_PROPERTIES可以找到默认的临时表空间:ALTERDATABASEDEFAULTTEMPORARYTABLESPACEdefault_temp2;SELECT*FROMDATABASE_PROPERTIES;2019/9/2017默认临时表空间的限制默认的临时表空间不能用于:•只能在创建一个新的默认临时表空间后原来的才可以删除•不能离线•修改为一个永久的表空间2019/9/2018几点说明(UNIX下)初始创建临时表空间时并不会真正分配空间在随后的使用中开始分配由于空间问题可能会导致潜在故障2019/9/2019Oracle10g-Thedefaulttablespace缺省固定及临时表空间Oracle提供用户配置的缺省表空间,一旦你设置了一个用户缺省表空间,那么所有的新用户如果不指定,其缺省表空间都会分配在这个表空间中,而不是system表空间selectproperty_name,property_valuefromdatabase_propertieswhereproperty_namelike'DEFAULT%';DEFAULT_TEMP_TABLESPACETEMPDEFAULT_PERMANENT_TABLESPACEUSERSDEFAULT_TBS_TYPESMALLFILE2019/9/2020只读表空间使用下列语句把表空间置为只读状态:•引起一个检查点(部分检查点)•数据只能被读取•表空间中的对象能被删除ALTERTABLESPACEuserdataREADONLY;2019/9/2021使一个表空间离线表空间中的所有数据都不能被访问有些表空间是不能被离线的:•系统表空间•存在激活的回滚段的表空间•默认的临时表空间离线的语句:联机的语句:ALTERTABLESPACEuserdataOFFLINE;ALTERTABLESPACEuserdataONLINE;2019/9/2022Oracle10g-EasytorenameatablespaceOracle允许使用rename命令直接修改表空间名称SQLaltertablespacetestrenametoitpub;Tablespacealtered.2019/9/2023改变一个表空间大小一个表空间可以使用以下方法改变大小:改变数据文件的大小:•自动就使用AUTOEXTEND•手工使用ALTERDATABASE命令使用ALTERTABLESPACE命令增加一个数据文件2019/9/2024启用数据文件的自动扩展能够自动的扩展:•CREATEDATABASE•CREATETABLESPACE•ALTERTABLESPACE…ADDDATAFILE例如:查询DBA_DATA_FILES可以查看数据文件的自动扩展启用没有.CREATETABLESPACEuser_dataDATAFILE'/u01/oradata/userdata01.dbf'SIZE200MAUTOEXTENDONNEXT10MMAXSIZE500M;2019/9/2025手工改变数据文件的大小手工使用ALTERDATABASE增大或减小一个数据文件的大小.增大数据文件的空间不用增加更多的数据文件.手工改变数据文件的大小是回收没用的空间.例如:ALTERDATABASEDATAFILE'/u03/oradata/userdata02.dbf'RESIZE200M;2019/9/2026增加表空间的数据文件增大表空间大小通过增加数据文件ADDDATAFILE语句用于增加数据文件例如:ALTERTABLESPACEuser_dataADDDATAFILE'/u01/oradata/userdata03.dbf'SIZE200M;2019/9/2027移动数据文件的方法ALTERTABLESPACE•表空间必须离线.•OSCOPY•REMANE•ONLINE•目标数据文件必须存在.ALTERTABLESPACEuserdataRENAMEDATAFILE'/u01/oradata/userdata01.dbf'TO'/u02/oradata/userdata01.dbf';2019/9/2028移动数据文件的方法ALTERDATABASE•数据库必须(需要)在MOUNT状态.•目标数据文件必须存在.ALTERDATABASERENAMEFILE'/u01/oradata/system01.dbf'TO'/u03/oradata/system01.dbf';2019/9/2029SQLselecttablespace_name,file_namefromdba_data_files;TABLESPACE_NAMEFILE_NAME--------------------------------------------------------------------------------SYSTEME:\ORACLE\ORADATA\VILEN\SYSTEM01.DBFUNDOTBS1E:\ORACLE\ORADATA\VILEN\UNDOTBS01.DBFOEM_REPOSITORYE:\ORACLE\ORADATA\VILEN\OEM_REPOSITORY.DBFTRAINE:\ORACLE\ORADATA\VILEN\TEST01.DBFSQLaltertablespacetrainoffline;表空间已更改。SQLhostcpE:\ORACLE\ORADATA\VILEN\TEST01.DBFE:\ORACLE\ORADATA\VILEN\second\TEST01.DBFSQLalterdatabaserenamefile'E:\ORACLE\ORADATA\VILEN\TEST01.DBF'to'E:\ORACLE\ORADATA\VILEN\second\TEST01.DBF';数据库已更改。SQLaltertablespacetrainonline;表空间已更改。移动数据文件的方法2019/9/2030删除表空间下列情况不能删除表空间:•系统表空间•有激活段的表空间INCLUDINGCONTENTS将删除段.INCLUDINGCONTENTSANDDATAFILES将删除数据文件.CASCADECONSTRAINTS将删除所有一致性的限制.DROPTABLESPACEuserdataINCLUDINGCONTENTSANDDATAFILES;2019/9/2031获取表空间信息获取表空间和数据文件的信息:表空间信息:•DBA_TABLESPACES•V$TABLESPACE数据文件信息:•DBA_DATA_FILES•V$DATAFILE临时数据文件信息:•DBA_TEMP_FILES•V$TEMPFILE2019/9/2032小结在这课中,我们应该学会:•使用表空间去分离数据•创建各种不同类型的表空间•管理表空间•获取表空间信息
本文标题:03管理表空间和数据文件
链接地址:https://www.777doc.com/doc-1059155 .html