《Oracle 9i 表空间管理》由会员分享,可在线阅读,更多相关《Oracle 9i 表空间管理(23页珍藏版)》请在金锄头文库上搜索。
1、Oracle 9i 表空间管理,系统表空间(System),包含的数据文件称为系统数据文件。存放系统表和数据字典,一般不放用户的数据,但是用户脚本,如过程,函数,包等却是保存在数据字典中的。,临时表空间(Temporary),包含的数据文件称为临时数据文件主要存放用户的排序等临时数据临时段占有的空间会在下次系统启动的时候全部被释放,回滚段表空间(Rollback),包含的数据文件就是回滚数据文件 回滚段是用来临时存放修改前的数据(UNDO) 。回滚段通常都放在一个单独的表空间上(回滚表空间),避免表空间碎片化,回滚段的工作方式,一个回滚表空间可以被划分成多个回滚段.一个回滚段可以保存多个会话的
2、数据.回滚段是一个圆形的数据模型,用户表空间(User),包含的数据文件称为用户数据文件 一般是由用户建立,来存取用户数据的表空间 一般有两类常见的用户型数据,数据和索引,如果条件许可的话,建议考虑放在不同的磁盘上。,创建新表空间的命令,CREATE TABLESPACE testspace DATAFILE '/usr/testTablespace/testspace1.dbf' SIZE 100M , '/ usr/testTablespace/testspace2.dbf' &nb
3、sp;SIZE 100MAUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITEDMINIMUM EXTENT 25MDEFAULT STORAGE (INITIAL 128K NEXT 128KMINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0);,空间不足怎么办?创建数据文件,通过重置某个数据文件的大小来改变表空间的容量:alter database datafile 数据文件的全路径及文件名(包括扩展名) resize 12M;通过给表空间增加相应数据文件(创建新的数据文件,添加到该表空间)来改变表空间的容
4、量;alter tablespace aaadd datafile '数据文件的全路径及文件名(包括扩展名)' size 1M;,收缩表空间的尺寸,alter database datafile 数据文件的全路径及文件名(含扩展名) resize 12M;,合并表空间的自由空间(freespace),当表空间的PCTINCREASE参数设置为零时,需要手工合并表空间的自由空间(freespace);否则,可以由SMON进程自动处理。但通常情况下,都是将PCTINCREASE参数设置为0,因为SMON合并的时间很难掌握。命令:ALTER TABLESPACE tablespace
5、A_name COALESCE;,修改表空间的存储参数,ALTER TABLESPACE 表空间名字 DEFAULT STORAGE ( NEXT 100K MAXEXTENTS 20PCTINCREASE 0);,修改表空间状态,使表空间联机ALTER TABLESPACE 表空间名字 ONLINE;使表空间脱机ALTER TABLESPACE 表空间名字 OFFLINE;,删除表空间,当表空间中没有任何对象时:DROP TABLESPACE tablespa
6、ce_name; 当表空间中几经创建了对象时:DROP TABLESPACE tablespace_name INCLUDING CONTENTS;,关于表空间该注意的问题,1、SYSTEM表空间永远不能脱机。2、当重命名数据文件、转移非系统表空间的数据文件、作物里数据库备份等情况下,就需要表空间的脱机和联机操作;有时出现磁盘物理坏块,则恢复的方法之一就是将包含坏块的数据文件的表空间脱机,然后执行介质恢复。3、当创建一个表空间时,必须至少使之包含一个以上的数据文件;一旦某个数据文件已经存在于某个表空间中,则不能删除该数据文件,只能通过删除整个表空间删除该文件。,修改数据文件的状态ARCHIVE
7、LOG模式下,使数据文件联机:ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE;使数据文件脱机:ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE;,察看当前数据库中所有的表空间及其缺省存储参数,SQL> SELECT tablespace_name "TABLESPACE", 2 initial_extent "INITIAL_EXT&
8、quot;, 3 next_extent "NEXT_EXT", 4 min_extents "MIN_EXT", 5 max_extents "MAX_EXT", 6 pct_increase 7 FROM dba_tablespaces;TABLESPACE &nb
9、sp; INITIAL_EXT NEXT_EXT MIN_EXT MAX_EXT PCT_INCREASE- - - - - - SYSTEM &nb
10、sp; 65536 65536 1 2147483645 50RBS
11、 524288 524288 8 4096 50USERS
12、131072 131072 1 4096 0TEMP &n
13、bsp; 65536 65536 1 0TOOLS &nb
14、sp; 32768 32768 1 4096 0INDX &n
15、bsp; 131072 131072 1 4096 0DRSYS
16、 65536 65536 1 2147483645 50LUNARTEST
17、 57344 57344 1 505 08 rows selected,察看当前数据库中所有的数据文件,SQL> select &nbs
18、p; name from v$datafile;NAME-/home2/dbfiles/systora7.dbf/home2/dbfiles/rbsora7.dbf/home2/dbfiles/tempora7.dbf/home2/dbfiles/toolora7.dbf/home3/dbfiles/STOREDISK_1.dbf/home3/dbfiles/STOCKINDEX.dbf/home4/dbfiles/STOREDISK_2.dbf/home4/dbfiles/STOREINDEX_1.dbf/home4/dbfiles/LARGE_TRANS.dbf
19、,察看所有表空间包含的数据文件,SQL> SELECT file_name, blocks, tablespace_name 2 FROM dba_data_files;FILE_NAME BLOCKS TABLESPACE_NAME-
20、 - -C:LEARNUSERS01.DBF 2560 USERS C:LEARNDR01.DBF
21、 3920 DRSYS C:LEARNTOOLS01.DBF 1280 TOOLS C:LEARN
22、INDX01.DBF 2560 INDX C:LEARNRBS01.DBF  
23、; 8960 RBS C:LEARNTEMP02.DBF 2560 TEMP &n
24、bsp; C:LEARNSYSTEM01.DBF 30304 SYSTEM C:LEARNLUNARTEST01.DBF 12800 LUNARTEST,察看当前数据库中所有的重做日志文件,SQL> select member from v$logfile;MEMBER-/home2/dbfiles/log1ora7.dbf/home2/dbfiles/log2ora7.dbf/home2/dbfiles/log3ora7.dbf,从控制文件中获取表空间和数据文件有关的信息,V$DATAFILE- TS#- NAME- FILE#- RFILE#- STATUS- ENABLED- BYTES- CREATE_BYTES,V$TABLESPACE- TS#- NAME,监视表空间的空闲空间,select tablespace_name,sum(bytes)from dba_free_spacegroup by tablespace_name;,