【教学课件】第五章管理表空间.ppt
51,第五章 管理表空间,数据库存储层次建立表空间改变表空间存储设置改变表空间状态删除表空间改变表空间尺寸移动数据文件搬移表空间显示表空间信息,52,数据库存储层次,53,SYSTEM和非SYSTEM表空间,SYSTEM表空间自动建立存放数据字典包含SYSTEM回滚段非SYSTEM表空间分离回滚段、临时段、数据段和索引段易于备份和恢复分离静态和动态数据易于空间管理,54,建立表空间,应用表空间索引表空间回滚段表空间临时表空间,55,建立应用表空间,CREATE TABLESPACE users DATAFILE g:testusers01.dbf SIZE 10MDEFAULT STORAGE(INITIAL 10K NEXT 10KMINEXTENTS 2 MAXEXTENTS 50PCTINCREASE 50);,56,建立本地管理表空间,CREATE TABLESPACE user_data DATAFILE g:testlocal.dbf SIZE 5MEXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;,降低递归空间管理不需要合并空间碎片,57,建立索引表空间,CREATE TABLESPACE indxDATAFILE g:testindx.dbf SIZE 3M;,58,建立回滚段表空间,CREATE TABLESPACE rbk DATAFILE g:testrbk.dbf SIZE 10M;,59,建立临时表空间,CREATE TEMPORARY TABLESPACE temp TEMPFILE g:testtemp.dbf SIZE 5MEXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;,用于排序操作不能包含永久对象推荐使用本地管理范围范围尺寸=SORT_AREA_SIZE*n,510,改变表空间存储设置,ALTER TABLESPACE users MINIMUM EXTENT 500K;,ALTER TABLESPACE rbk DEFAULT STORAGE(INITIAL 10KNEXT 10KMINEXTENTS 20);,511,改变表空间状态,使表空间脱机:ALTER TABLESPACE users OFFLINE;使表空间联机:ALTER TABLESPACE users ONLINE;,512,改变表空间读写状态,使表空间只读:ALTER TABLESPACE users READ ONLY;使表空间可读写:ALTER TABLESPACE users READ WRITE;,513,删除表空间,DROP TABLESPACE users INCLUDING CONTENTS;,从数据字典中删除表空间信息OS文件不会被删除,514,改变表空间尺寸,增加数据文件激活数据文件自动扩展手工改变数据文件尺寸,515,增加数据文件,ALTER TABLESPACE users ADD DATAFILE g:testusers02.dbf SIZE 5M;,USERS表空间,users.dbf1M,516,激活数据文件自动扩展,ALTER DATABASE DATAFILE g:testusers01.dbfAUTOEXTEND ON NEXT 10M MAXSIZE 200M;,517,手工改变数据文件尺寸,ALTER DATABASE DATAFILE g:testusers02.dbf RESIZE 10M;,518,移动数据文件:ALTER TABLESPACE,使表空间脱机ALTER TABLESPACE users OFFLINE;复制或移动文件:copy执行ALTER TABLESPACE命令ALTER TABLESPACE users RENAME DATAFILEg:testusers01.dbf TOg:testusers03.dbf;使表空间联机ALTER TABLESPACE users ONLINE;,519,移动数据文件:ALTER DATABASE,关闭数据库:SHUTDOWN IMMEDIATE;复制或移动文件:copy安装数据库:STARTUP MOUNT执行ALTER DATABASE命令ALTER DATABASE RENAME FILE g:testsys1test.dbf TO g:testsystest.dbf;打开数据库:ALTER DATABASE OPEN;,520,搬移表空间,521,搬移表空间限制,源数据库和目标数据库必须在相同硬件平台上源数据库和目标数据库必须具有相同的数据块尺寸源数据库和目标数据库必须具有相同的字符集目标数据库中不能存在同名表空间只适用于Oracle8i企业版,522,搬移表空间步骤,挑选自包含表空间集合sqlplus sys/change_on_installexecute dbms_tts.transport_set_check(users,TRUE);select*from transport_set_violations;修改表空间为只读状态ALTER TABLESPACE users READ ONLY;导出表空间元信息EXP sys/change_on_install TRANSPORT_TABLESPACE=y TABLESPACES=users FILE=expdat.dmp,523,搬移表空间步骤,复制数据文件及导出文件到目标数据库:cp或copy导入表空间信息到目标数据库:imp sys/change_on_install TRANSPORT_TABLESPACE=y DATAFILES=users.dbf TABLESPACES=users FILE=expdat.dmp修改表空间为读写状态:ALTER TABLESPACE users READ WRITE;,524,显示表空间信息,DBA_TABLESPACESDBA_DATA_FILESDBA_TEMP_FILESV$TABLESPACEV$DATAFILEV$TEMPFILE,525,练习五,建立以下表空间,然后显示相应信息:DATA01(2M):缺省存储设置RBK(2M):缺省存储设置INDX01(1M):自动扩展尺寸为500KRONLY(1M):存放只读表TEMP(2M):使用本地管理(临时表空间)为DATA02表空间增加500K空间,并检查结果移动INDX01表空间到磁盘二上,526,练习五,在建表后将RONLY改变为只读,然后试着建立其它表,并删除原来存在的表?删除RONLY表空间以SYSTEM用户建立两个会话会话一:ALTER SESSION SET SORT_AREA_SIZE=2048;c:labslab06_1.sql会话二:SELECT tablespace_name FROM v$sort_segment;,527,练习五,在会话一和会话二中分别执行以下语句会话一:c:labslab06_2.sqlALTER SESSION SET SORT_AREA_SIZE=2048;c:labslab06_1.sql会话二:SELECT tablespace_name FROM v$sort_segment;,