wanghailiang5—1管理表空间数据库存储层次建立表空间改变表空间存储设置改变表空间状态删除表空间改变表空间尺寸移动数据文件搬移表空间显示表空间信息wanghailiang5—2数据库存储层次数据库逻辑物理表空间数据文件O/S块数据块段范围wanghailiang5—3SYSTEM和非SYSTEM表空间•SYSTEM表空间–自动建立–存放数据字典–包含SYSTEM回滚段•非SYSTEM表空间–分离回滚段、临时段、数据段和索引段–易于备份和恢复–分离静态和动态数据–易于空间管理wanghailiang5—4建立表空间应用表空间索引表空间回滚段表空间临时表空间wanghailiang5—5建立应用表空间CREATETABLESPACEusersDATAFILE'g:\test\users01.dbf'SIZE10MDEFAULTSTORAGE(INITIAL10KNEXT10KMINEXTENTS2MAXEXTENTS50PCTINCREASE50);wanghailiang5—6建立本地管理表空间CREATETABLESPACEuser_dataDATAFILE'g:\test\local.dbf'SIZE5MEXTENTMANAGEMENTLOCALUNIFORMSIZE128K;•降低递归空间管理•不需要合并空间碎片wanghailiang5—7建立索引表空间CREATETABLESPACEindxDATAFILE'g:\test\indx.dbf'SIZE3M;wanghailiang5—8建立回滚段表空间CREATETABLESPACErbkDATAFILE'g:\test\rbk.dbf'SIZE10M;wanghailiang5—9建立临时表空间CREATETEMPORARYTABLESPACEtempTEMPFILE'g:\test\temp.dbf'SIZE5MEXTENTMANAGEMENTLOCALUNIFORMSIZE128K;•用于排序操作•不能包含永久对象•推荐使用本地管理范围•范围尺寸=SORT_AREA_SIZE*nwanghailiang5—10改变表空间存储设置ALTERTABLESPACEusersMINIMUMEXTENT500K;ALTERTABLESPACErbkDEFAULTSTORAGE(INITIAL10KNEXT10KMINEXTENTS20);wanghailiang5—11改变表空间状态1.使表空间脱机:ALTERTABLESPACEusersOFFLINE;2.使表空间联机:ALTERTABLESPACEusersONLINE;wanghailiang5—12改变表空间读写状态1.使表空间只读:ALTERTABLESPACEusersREADONLY;2.使表空间可读写:ALTERTABLESPACEusersREADWRITE;wanghailiang5—13删除表空间DROPTABLESPACEusersINCLUDINGCONTENTS;•从数据字典中删除表空间信息•OS文件不会被删除wanghailiang5—14改变表空间尺寸增加数据文件激活数据文件自动扩展手工改变数据文件尺寸wanghailiang5—15增加数据文件ALTERTABLESPACEusersADDDATAFILE'g:\test\users02.dbf'SIZE5M;USERS表空间Users02.dbfusers.dbf1Mwanghailiang5—16激活数据文件自动扩展ALTERDATABASEDATAFILE'g:\test\users01.dbf'AUTOEXTENDONNEXT10MMAXSIZE200M;wanghailiang5—17手工改变数据文件尺寸ALTERDATABASEDATAFILE'g:\test\users02.dbf'RESIZE10M;wanghailiang5—18移动数据文件:ALTERTABLESPACE1.使表空间脱机ALTERTABLESPACEusersOFFLINE;2.复制或移动文件:copy3.执行ALTERTABLESPACE命令ALTERTABLESPACEusersRENAMEDATAFILE'g:\test\users01.dbf'TO'g:\test\users03.dbf';4.使表空间联机ALTERTABLESPACEusersONLINE;wanghailiang5—19移动数据文件:ALTERDATABASE1.关闭数据库:SHUTDOWNIMMEDIATE;2.复制或移动文件:copy3.安装数据库:STARTUPMOUNT4.执行ALTERDATABASE命令ALTERDATABASERENAMEFILE'g:\test\sys1test.dbf'TO'g:\test\systest.dbf';5.打开数据库:ALTERDATABASEOPEN;wanghailiang5—20搬移表空间OLTP数据仓库数据市场wanghailiang5—21搬移表空间限制•源数据库和目标数据库必须在相同硬件平台上•源数据库和目标数据库必须具有相同的数据块尺寸•源数据库和目标数据库必须具有相同的字符集•目标数据库中不能存在同名表空间•只适用于Oracle8i企业版wanghailiang5—22搬移表空间步骤1.挑选自包含表空间集合sqlplussys/change_on_installexecutedbms_tts.transport_set_check('users',TRUE);select*fromtransport_set_violations;2.修改表空间为只读状态ALTERTABLESPACEusersREADONLY;3.导出表空间元信息EXPsys/change_on_installTRANSPORT_TABLESPACE=yTABLESPACES=usersFILE=expdat.dmpwanghailiang5—23搬移表空间步骤4.复制数据文件及导出文件到目标数据库:cp或copy5.导入表空间信息到目标数据库:impsys/change_on_installTRANSPORT_TABLESPACE=yDATAFILES=‘users.dbf’TABLESPACES=usersFILE=expdat.dmp6.修改表空间为读写状态:ALTERTABLESPACEusersREADWRITE;wanghailiang5—24显示表空间信息DBA_TABLESPACESDBA_DATA_FILESDBA_TEMP_FILESV$TABLESPACEV$DATAFILEV$TEMPFILEwanghailiang5—25练习五1.建立以下表空间,然后显示相应信息:•DATA01(2M):缺省存储设置•RBK(2M):缺省存储设置•INDX01(1M):自动扩展尺寸为500K•RONLY(1M):存放只读表•TEMP(2M):使用本地管理(临时表空间)2.为DATA02表空间增加500K空间,并检查结果3.移动INDX01表空间到磁盘二上wanghailiang5—26练习五4.在建表后将RONLY改变为只读,然后试着建立其它表,并删除原来存在的表?5.删除RONLY表空间6.以SYSTEM用户建立两个会话•会话一:ALTERSESSIONSETSORT_AREA_SIZE=2048;@c:\labs\lab06_1.sql•会话二:SELECTtablespace_nameFROMv$sort_segment;wanghailiang5—27练习五7.在会话一和会话二中分别执行以下语句•会话一:@c:\labs\lab06_2.sqlALTERSESSIONSETSORT_AREA_SIZE=2048;@c:\labs\lab06_1.sql•会话二:SELECTtablespace_nameFROMv$sort_segment;