1. 程式人生 > >Oracle學習——表空間管理(二)

Oracle學習——表空間管理(二)

一、使用CREATE TABLESPACE 語句建立表空間

檢視系統預設表空間的位置語句:select t1.name,t2.name  from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;

  1.建立本地表空間

          (1)  建立本地管理表空間orcltb1,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\mytb01.dbf,大小為50M,指定本地管理表空間,由表空間自動分配區間,語句如下:

             create tablespace orcltb1 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\mytb01.dbf'  size 50m extent management local autoallocate;

              tablespace ORCLTB1 已建立。

             datafile:用於指定表空間的資料檔案。

                size:用於指定資料檔案的大小。

                autoallocate:指定表空間由系統管理,最小區間為64Kb,與autoallocate對應的是uniform,使用它可以指定最小的區間大小。

           (2)  建立本地管理表空間orcltb21,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\mytb02.dbf,大小為30M,指定本地管理表空間,指定其最小區間為128kb語句如下:

        create tablespace orcltb2 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\mytb02.dbf' size 30m extent management local uniform size 128k;

                        tablespace ORCLTB2 已建立。

 2.建立大檔案表空間

            大檔案表空間由唯一的,非常巨大的資料檔案組成,普通的小檔案表空間可以包含多個數據檔案,但大檔案表空間只能包含一個數據檔案。

            (1)  建立本地管理表空間bigtb,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\bigtb.dbf,大小為10GB,指定本地管理表空間,指定其最小區間為128kb語句如下:

        create bigfile tablespace bigtb datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\bigtb.dbf' size 10G;

                bigfile TABLESPACE 已建立。

  3.建立臨時表空間

            (1)建立本地管理表空間temptb,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\temptb.dbf,大小為20m,指定本地管理表空間,指定其最小區間為16m語句如下:

        create temporary tablespace temptb Tempfile 'C:\Users\admin\Documents\ORACLE\DATAFILE\temptb.dbf' size 20m reuse extent management local uniform size 16m;

                    temporary TABLESPACE 已建立。

                注意:  a、 create tablespace中使用關鍵詞tempfile 而不是datafile了。

                            b、使用tempfile子句可以指定臨時檔案的絕對路徑和檔名。

                            c、 使用reuse關鍵字可以重用。

                            d、在建立臨時表空間是,不允許使用autoallocate關鍵詞,因此表空間的區間大小有uniform size指定。

  4.建立撤銷表空間

        (1)    建立撤銷表空間undotb1,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\undotb1.dbf,大小為20m,指定本地管理表空間,指定其最小區間為16m語句如下:

            create undo tablespace undotb1 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\undotb1.dbf'  size 2m reuse;。

                    undo TABLESPACE 已建立。

            在建立資料庫時,系統會建立一個撤銷表空間,使用者也可以顯示地建立撤銷表空間。當資料庫例項啟動時,資料庫會選擇使用第一個可用的撤銷表空間。但是如果沒有可用的撤銷表空間,則系統將撤銷記錄儲存在SYSTEM表空間中,同時記錄一條警告日誌,說明系統在沒有撤銷表空間情況下執行。

二、設定和修改表空間屬性

  1.重命名錶空間  

         在alter tablespace語句中使用rename to子句重命名錶空間

          alter tablesapce 原表空間名 rename to 新表空間名

            (1)將本地表空間orcltb1重新命名為orcltbone

                alter tablespace orcltb1 rename to orcltbone;

                   tablespace ORCLTB1已變更。

   2.向本地表空間中增加資料檔案

         在alter tablespace語句中使用add datafile子句,可以在本地管理表空間中增加資料檔案.

          alter tablespace 表空間名 add datafile 增加的資料庫檔案 size    資料檔案大小;

        (1)向表空間orclone中增加一個數據檔案'C:\Users\admin\Documents\ORACLE\DATAFILE\orcltbtwo.dbf',初始大小  為10m:

            alter tablespace orcltbone add datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\undotbtwo.dbf' size 10m;

                    tablespace ORCLTBONE已變更。

        (2)修改大檔案表空間bigtb的資料檔案大小為4GB

                alter tablespace bigtb resize 4G;

                    tablespace BIGTB已變更。

 三、表空間的狀態

        1.查看錶空間的狀態

           select tablespace_name,status,contents from dba_tablespaces;

                

    2.設定表空間的狀態

            表空間的狀態可以分為聯機和離線兩種。

                 在以下情況下,可以將表空間設定為離線狀態:

                        a:資料庫的一部分設定為不可訪問,而其他部分可以訪問。

                        b:執行離線表空間備份。

                        c:在升級或維護應用程式時,將應用程式及其使用的表空間設定為不可訪問。

                        d:重新命名或重新分配表空間。

                注意:系統(SYSTEM)表空間、還原(UNDO)表空間、臨時表(TEMPORARY)空間不可設定為離線狀態

   將表空間設定為離線狀態:    alter tablespace 表空間名 offline;

               (1)將表空間orcltbone設定為離線狀態

                    alter tablespace orcltbone offline;

              (2)將表空間orcltbone設定為聯機狀態

                      alter tablespace orcltbone online;

   將表空間設定為只讀狀態:,主要目的是為了避免對資料庫中大量靜態資料進行備份和恢復操作,還可以保護歷史資料不被修改。

              (3)將表空間orcltbone設定為只讀狀態。

                 alter tablespace orcltbone read only;

              (4)將表空間orcltbone設定為可讀寫狀態

                alter tablespace orcltbone read write;


四、刪除表空間

        1、刪除表空間

                drop tablespace 表空間名 ;

        2、刪除表空間同時刪除其中的段

          drop tablespace 表空間名 including contents;

        3、刪除表空間同時刪除其中的段和資料檔案

            drop tablespace 表空間名 including contents datafiles;