簡單管理Oracle資料庫表空間(2014年3月4日自學筆記)

The薩滿發表於2014-03-04

      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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章