ITPub博客

首页 > 数据库 > Oracle > 简单管理Oracle数据库表空间(2014年3月4日自学笔记)

简单管理Oracle数据库表空间(2014年3月4日自学笔记)

原创 Oracle 作者:The萨满 时间:2014-03-04 18:26:26 0 删除 编辑

      1Oracle存储结构分为逻辑存储和物理存储。

                1.1:逻辑存储:表空间,段,区,Oracle

                1.2:物理存储:数据文件,操作系统块

(表空间的出现解决了底层硬件施加给单个数据文件大小的限制)


    2:表空间区尺寸和段空间管理

                2.1:区尺寸管理:区尺寸管理分为自动(autoallcate)跟手动(uniform) 

                    2.1.1autoallocate:区尺寸会随着数据库的增长会从开始的64KB增长到64MB,数据库中段的增长模式自动决定一个对象

                            的新区尺寸的大小,也就是Oracle将自动为其增加区尺寸。(Oracle建议使用自动区尺寸管理)

                    2.1.2uniform:当使用区尺寸手动管理时,需用size 指定大小,默认情况下是1MBOracle建议的区尺寸大小为:64KB, 1MB, 64MB

                 2.2:段空间管理:段空间管理指的是管理Oracle块中的可用空间。段的管理也是分自动跟手动。

                     2.2.1:段手动管理:手动管理需了解PCTFREE,PCTUSED参数。

                     2.2.1.1PCTFREE参数:为了保护update操作有可用空间。例如设置10%时,当可用空间已用90%时,就无法再insert操作了。

                     2.2.1.2PCTUSED参数:因为Oracle试图使用块中最新的可用空间是会导致开销。PCTUSED参数可以减少开销,例如设置40%时,

                               当删除已用空间没有超过40%时,就不允许新数据的插入。

                      2.2.2:段自动管理:设置为auto,那么Oracle将使用位图来跟踪段的可用空间的可用性。(Oracle建议段自动管理)

               

  3:创建表空间:(create tablespace(创建表空间)create temporary tablespaces(创建临时表空间)create undo tablespaces (创建撤销表空间)

                  3.1:数据文件和表空间

                       3.1.1:一个表空间可以包含多个数据文件,而一个数据文件只能属于一个表空间。

                        3.1.2:创建一个表空间:

                                                create tablespace test1 datafile ‘/u01/app/oracle/oradata/test1.dbf’ size 100M;

                                                11g默认情况下:区管理:local , 区尺寸管理:autoallocate , 段空间管理:auto

                                                create tablespace test1 datafile ‘/u01/app/oracle/oradata/test1.dbf’ size 100M

                                                extent management local

                                                autoallocate 500M

                                                segment space management auto;


                   3.2:如何确定区尺寸与区分配。

                                因为在表空间中创建表时,区是空间分配的单位。所以需了解下面一些存储参数,

                                dba_tablespaces 中可以查出下面存储参数值

                                3.2.1minextents:存储第一次创建时extent的数目。默认情况下是1

                                3.2.2maxextents:顺着数据量的增大,可以分配extent的最多数,如果使用本地表空间管理,那么这个值就是无限的,无需设置。

                                3.2.3extents management:区管理方式,有local, dictionary 2种选项。

                                3.2.4allocation type:指的是区尺寸分配类型,自动:autoallocate(显示为system),手动:uniform

                                3.2.5segment space management:段空间管理,有auto,manual 2中选项。

                                3.2.6initial extent:指初始区。

                                              next extent:下一个区,指的的是初始区之后的。

                                                A:当区尺寸管理为autoallocate时,initial extent=64K,  next extent 无显示,以为大小取决于创建的表,索引等。

                                                B:当区尺寸管理为uniform时,区尺寸大小可以手动设置,未指定默认是1Muniform size 10M时,initial extent next extent 就是为10M


                   3.3:增加表空间的大小,删除表空间大小。

                                3.3.1:当表空间空间不足时,可以增加数据文件,或者改变数据文件大小。

                                OMF特性的更改表空间和增加数据文件:

                                  alter database datafile 6 resize 20M;

                         alter tablespace test1 add datafile 20M;

               没有OMF特性的更改表空间和增加数据文件:

                                  alter database  datafile '/u01/app/oracle/oradata/orcl/test2.dbf'  resize 20M;

                        alter tablespace test2 add datafile '/u01/app/oracle/oradata/orcl/test2a.dbf' size 20M;


                  3.4:删除表空间:
                                         drop tablespace test1;

                                 drop tablespace test1 including contents;

                                 drop tablespace test1 including conetents and datafiles;

                                 drop tablespace test1 cascade constraints;  

 

                3.5:重新命名表空间和修改数据文件位置:

                                3.5.1:重新命名表空间:

                                 alter tablespace test1 rename to test2;

                                 重新命名表空间需注意:

                                  A:system,sysaux表空间不能重新命名

                                  B:重新命名表空间时必须让所有文件是联机的。

                                  C:如果表空间是只读的,重新命名不改变数据文件头。

                               

                                3.5.2:更改数据文件位置

                                        第一:alter tablespace test2 offline normal

                                        第二:在操作系统中重新命名数据文件

                  第三:alter tablespace test2 rename datafile  ‘/u01/app/oracle/oradara/orcl/test2.dbf’

                     to ‘/u01/app/oracle/oradata/orcl/ORCL/datafile/test2.dbf’;

                  第四:alter tablespace test2 online;


                3.6:表空间只读,表空间脱机。

                                                alter tablespace test2 read only;

                                                alter tablespace test2 read write;

                                                alter tablespace test2 offline normal; 无损脱机

                                                alter tablespace test2 online;


                3.7:临时表空间简单管理:

                                3.7.1:创建临时表空间(默认情况下temp表空间都是统一尺寸的区分配,默认为1M)

                                                create temporary tablespace temp2 tempfile 'temp2.dbf' size 500M;

                                                create temporary tablespace temp3 tempfile 'temp3.dbf' size 300M uniform size 16M;  指定uniform 16M

                                3.7.2:更改临时表空间

                                                增加临时文件:

                                                alter tablespace temp3 add tempfile '/u01/app/oracle/product/10.2.0/db_1/dbs/temp3b.dbf' size 100M;

                                                变更临时文件:

                                                alter database tempfile '/u01/app/oracle/product/10.2.0/db_1/dbs/temp2.dbf' resize 400M;

                                                删除临时文件:

                                                alter database tempfile '/u01/app/oracle/product/10.2.0/db_1/dbs/temp3b.dbf' drop including datafiles ;



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29481709/viewspace-1101019/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-12

  • 博文量
    6
  • 访问量
    123892