Oracle表空间和表的创建与管理一.pptx
表空间的管理 表空间是Oracle数据库内部数据的逻辑组织结构,对应于磁盘上的一个或多个物理数据文件。表空间将用户视图、数据库的逻辑结构和物理结构有机结合起来。深入理解表空间的类型、管理方式、特性和状态,掌握表空间与数据文件之间的关系,合理为数据文件安排磁盘空间,对于设计与实现一个Oracle数据库应用系统是至关重要的。第1页/共16页表空间管理概述q 表空间的特性(1)一个数据库可以有多个表空间(2)一个表空间只能属于一个数据库(3)一个表空间至少要有一个数据文件(4)一个数据文件只能属于一个表空间(5)一个表空间的大小由其数据文件大小决定(6)除系统表空间外的表空间可以被联机或脱机(7)方案对象可以跨表空间的数据文件存储,但不能跨表空间存储(8)可以为用户指定默认数据表空间。但该用户的方案对象可以存储到不同表空间中。(9)可以指定用户在各表空间上的空间配额第2页/共16页表空间管理概述q 表空间应用原则 遵循分散(Separate)存储原则,避免磁盘I/O冲突 (1)在系统性能要求较高的应用环境中,创建表空间时使用裸设备存储数据文件 (2)将表、索引分开存放在不同的表空间中 (3)将访问频度高的表、索引分开存放在不同的表空间,并将这些表空间所使用的数据文件存储到不同的物理磁盘上 (4)对于数据量特别大,并发访问频繁的表、索引应考虑单独存放在一个表空间中。进一步,考虑将表、索引进行分区存储到不同表空间中 (5)将日志和数据放置在不同的磁盘上第3页/共16页表空间管理概述q 表空间管理方法 Oracle 10g 采用本地管理q 需要通过估算表、索引等方案对象的大小及数据块空间分配比例来估算表空间的大小 q 表占用空间大小=最大行长初始行数q (1+PCTFREE/100)记录复合增长率 记录复合增长率指的是在系统的估计使用期内记录增长率的乘积 q 实际创建的表空间一般应比计算数要再大一点第4页/共16页系统表空间临时表空间撤销表空间表空间的创建与删除q建立数据库时,Oracle会自动建立q一般情况下,建立表空间由特权用户或DBA完成第5页/共16页q表空间分类表空间的创建与删除按构成文件分q大文件表空间:只能包含1个大文件q小文件表空间:可包含多个数据文件按表空间用途分q系统表空间、撤销表空间、临时表空间q数据表空间、索引表空间等按数据特性分永久表空间、临时表空间、撤销表空间第6页/共16页q创建表空间命令语法表空间的创建与删除CREATE SMALLFILE|BIGFILE PERMANENT|TEMPORARY|UNDO TABLESPACE tablespaceDATAFILE|TEMPFILE datafile_tempfile_spec,datafile_tempfile_spec.MINIMUM EXTENT integer K|M|BLOCKSIZE integer K|M|EXTENT MANAGEMENT LOCAL AUTOALLOCATE|UNIFORM SIZE integer K|M|SEGMENT SPACE MANAGEMENT MANUAL|AUTO|ONLINE|OFFLINE|LOGGING|NOLOGGING ;第7页/共16页表空间的创建与删除path_filename SIZE integer K|M REUSE AUTOEXTEND OFF|ON NEXT integer K|M MAXSIZE UNLIMITED|integer K|M qdatafile_tempfile_spec语法path_filename为包含路径的数据文件名。在路径中可用ORACLE_HOME和ORACLE_BASE这样的Oracle环境变量q一般选择NOLOGGING以免影响系统性能qSEGMENT SPACE MANAGEMENT一般采用自动(AUTO)管理q使用BLOCKSIZE可以定义使用非标准大小块的表空间第8页/共16页表空间的创建与删除例1:建立名称为data_ts1的数据表空间,大小为50M,区间统一为128KB大小。例2:建立名称为temp_ts1的临时表空间,使用文件存放临时数据。例3:创建10号部门经理用户EMP_MGR10,指定该用户的数据表空间为data_ts1,临时表空间为temp_ts1。授权该用户可以查看SCOTT用户下雇员表中的记录。例4:创建和应用撤销表空间。例5:创建大文件表空间,并指定为SCOTT用户的默认数据表空间。EXA_04_05.SQL EXA_04_03.SQL 第9页/共16页表空间维护CONN system/systempwdorclSET PAGESIZE 30COL tablespace_name FORMAT A12/制定列宽12SELECT tablespace_name,block_size,segment_space_management,status,contents,allocation_type,bigfile FROM dba_tablespaces;q表空间信息查询第10页/共16页表空间维护q为表空间增加数据文件q改变数据文件大小q允许数据文件自动扩展ALTER TABLESPACE tablespace ADD DATAFILE filespec autoextend_clause ,filespec autoextend_clause ;ALTER DATABASE database DATAFILE filename,filename /此处改变的是DATAFILE RESIZE integer K|M ;ALTER DATABASE DATAFILE filespec/此处改变的是DATAFILE AUTOEXTEND OFF|ON NEXT n K|M MAXSIZE UNLIMITED|n K|M ;第11页/共16页表空间维护q表空间状态维护q删除表空间ALTER TABLESPACE tablespace ONLINE /只读 或 可写|OFFLINE NORMAL|TEMPORARY|FOR RECOVER|READ ONLY|WRITE;DROP TABLESPACE tablespace INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS ;第12页/共16页表空间维护q查看数据库中数据文件的分布情况q重新部署数据文件(1)执行ALTER TABLESPACE tablespace OFFLINE命令将对应的表空间脱机(2)将数据文件复制到分离的目标盘位置(3)执行ALTER TABLESPACE tablespace RENAME source_disk_datafile TO dest_disk_ datafile重命名表空间数据文件,将其数据文件定义为新位置的文件(4)执行ALTER TABLESPACE tablespace ONLINE命令将对应的表空间联机COL file_name FORMAT A55SELECT file_id,file_name,tablespace_name FROM dba_data_files ORDER BY file_id;第13页/共16页表空间维护例6:调整数据表空间data_ts1的大小。EXA_04_06.SQL 例7:删除temp_ts1表空间。第14页/共16页OracleOracle数据库技术数据库技术谢谢 谢谢 !第15页/共16页感谢您的观看!第16页/共16页