<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kxbin
    成功留給有準備的人
    posts - 10,  comments - 35,  trackbacks - 0

    --==============================

    --Oracle 表空間與數據文件

    --==============================

    /*

    一、概念

        表空間:是一個或多個數據文件的邏輯集合

        表空間邏輯存儲對象:永久段-->如表與索引

                            臨時段-->如臨時表數據與排序段

                         回滾段-->用于事物回滾或閃回內存的撤銷數據

        表空間分類:系統表空間(systemsysaux),非系統表空間

       

        一個表空間至少包含一個數據文件,一個數據文件只能屬于一個表空間。

       

        不可或缺的幾個表空間:

        SYSTEM --->字典表空間,不能被損壞

        UNDO    --->dml,dql把數據快照到此,數據提交即消失(用于恢復)

        SYSAUX  --->10g 高并發系統繁忙時,會造成system爭用,將工具放到SYSAUX,減輕system的壓力,SYSAUX不影響系統(影響性能)

        TEMP    --->臨時數據相關的內容

        USERS   --->10g  用戶數據從system撥離出來

       

       

    二、Oracle的存儲結構

        1.Schema: 用戶--->創建相關對象、表、視圖、序列、函數、存儲過程、包等

        2.邏輯結構:database數據庫--->tablespace表空間---> segment--->extent區間----> block

                邏輯結構是Oracle內部管理數據庫中對象的方式

        3.物理結構:OS  block --->datafile 物理結構通常是一系列數據文件

        4.舉例描述scott用戶創建對象的組織方式 */

       

    --查看scott用戶的默認表空間及數據文件

        SQL> select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE                                       

          2  from dba_users

          3  where username = 'SCOTT';

     

        USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE

        ------------------------------ ------------------------------ ------------------------------

        SCOTT                          USERS                          TEMP

     

        SQL> col name format a50

        SQL> select t1.name,t2.name   --查看表空間及數據文件

          2  from v$tablespace t1,v$datafile t2

          3  where t1.ts# = t2.ts#;

     

        NAME                                               NAME

        -------------------------------------------------- --------------------------------------------------

        SYSTEM                                             /u01/app/oracle/oradata/orcl/system01.dbf

        UNDOTBS1                                           /u01/app/oracle/oradata/orcl/undotbs01.dbf

        SYSAUX                                             /u01/app/oracle/oradata/orcl/sysaux01.dbf

        USERS                                              /u01/app/oracle/oradata/orcl/users01.dbf

        EXAMPLE                                            /u01/app/oracle/oradata/orcl/example01.dbf

     

    /*

        scott-->emp(table)-->數據定義(位于)-->system表空間

                          數據(位于)  -->user表空間(邏輯存儲)-->表段-->區間-->內存塊

                                                        -->索引段等-->區間-->內存塊

                                    user表空間(物理存儲)-->user01.dbf

                                       -->采用本地管理,包含頭部信息,可用、已用等位圖信息

                                      

        databuffer緩沖區滿則調用dbwr進程將數據寫入到物理文件當中 */

        /*

     

    三、創建表空間

     

        --簡要語法:

        CREATE [BIGFILE | SMALLFILE] [TEMPORARY] TABLESPACE tablespace name

        DATAFILE datafile spec | TEMPFILE tempfile spec

        [MINIMUM EXTENT minimum extent size]

        [BLOCKSIZE blocksize]

        [[COMPRESS|NOCOMPRESS] DEFAULT STORAGE (default storage clause)]

        [LOGGING|NOLOGGING]

        [FORCE LOGGING]

        [ONLINE|OFFLINE]

        [EXTENT MANAGEMENT DICTIONARY |

        LOCAL [AUTOALLOCATE|UNIFORM SIZE size]]

        [SEGMENT SPACE MANAGEMENT MANUAL|AUTO]

        [FLASHBACK ON|OFF]

       

        --創建表空間的條件

        1.具有create tablespace的權限,DBA角色具有該權限,sysdba,sysoper

        2.創建的是bigfiel ,還是smallifle  超過級別應考慮bigfile

        3.新建的表空間的I/O,是否會導致磁盤I/O不夠用

        4.datafile后跟的路徑應該具備寫的權限  */

       

        --查看缺省是BIGFILE 還是SMALLFILE,當缺省為SMALLFILE,創建表空間不指定表空間類型則為SMALLFILE

        SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like '%TBS%';

     

        PROPERTY_NAME                  PROPERTY_VALUE

        ------------------------------ --------------------------------------------------

        DEFAULT_TBS_TYPE               SMALLFILE

       

        --修改創建表空間為大或小表空間的默認值

        SQL> alter database set default bigfile tablespace;

     

        Database altered.

     

        SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like '%TBS%';

     

        PROPERTY_NAME                  PROPERTY_VALUE

        ------------------------------ --------------------------------------------------

        DEFAULT_TBS_TYPE               BIGFILE

       

        --改回為缺省值

        SQL> alter database set default smallfile tablespace;

     

        Database altered.

       

        --建議創建表空間時最好帶上[BIGFILE | SMALLFILE]參數,以免參數設置導致創建了不合理的表空間

        /*

        注意:

        大表文件(bigfile)最大可以存放個T的容量。頭文件的大小達到了G-->block,普通的頭文件大小為M---->block

        create bigfile tablespace <> datafile <>........;

           好處:減少了數據文件的個數,管理方便,大的對象的存放得到了優化。減少了control文件的信息,控制文件定義了datafile的個數。

           bigfile只能存在一個數據文件,所以要保證分配的的磁盤具有足夠的空間。 */

          

        --演示創建表空間

        SQL> create tablespace TBS1 datafile '/u01/app/oracle/oradata/orcl/tbs1.dbf' size 100m;

     

        Tablespace created.

     

        SQL> col name format a50      

        SQL> select t1.name,t2.name

          2  from v$tablespace t1,v$datafile t2

          3  where t1.ts# = t2.ts#;

     

        NAME                                               NAME

        -------------------------------------------------- --------------------------------------------------

        SYSTEM                                             /u01/app/oracle/oradata/orcl/system01.dbf

        UNDOTBS1                                           /u01/app/oracle/oradata/orcl/undotbs01.dbf

        SYSAUX                                             /u01/app/oracle/oradata/orcl/sysaux01.dbf

        USERS                                              /u01/app/oracle/oradata/orcl/users01.dbf

        EXAMPLE                                            /u01/app/oracle/oradata/orcl/example01.dbf

        TBS1                                               /u01/app/oracle/oradata/orcl/tbs1.dbf

       

        /*

        創建臨時表空間:

        創建臨時表空間,不能使用非標準數據塊,另臨時表空間不能存放永久對象。*/

        CREATE TMEPORARY TABLESPACE tablespace_name

        TEMPFILE '...' SIZE n

     

        CREATE TEMPORARY TABLESPACE T2 TEMPFILE '/opt/oracle/oradata/orcl/t2.dbf'

        size 100m;

        /*

        臨時表空間具有以下特征:

           臨時數據文件不能置為只讀

           臨時數據文件不能重命名

           監時數據文件的日志方式總是NOLOGGING

          

        臨時表空間擴容:*/

        --(1)重置臨時文件大小

            alter database tempfile '/opt/oracle/oradata/orcl/t2.dbf' resize 150m;

     

        --(2)讓臨時文件能自動擴展

           alter database  tempfile '/opt/oracle/oradata/orcl/t2.dbf'

           autoextend on next 10m maxsize 50m;

     

        --(3)增加臨時文件

           alter tablespace t2 add tempfile '/disk8/oracle/t2b.dbf' size 50m;

     

        --查看臨時文件

           select TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 "SIZE(MB)"

           from dba_temp_files;

     

        --默認臨時表空間:

            select * from database_properties;

     

        --修改默認臨時表空間:

           ALTER DATABASE DEFAULT TEMPORARY TABLESPACE T2;

           /*

            默認臨時表空間最好要指定一下,如果沒有指定默認的臨時表空間,那么將使用system表空間作為排

           序區

     

           默認臨時表空間有一定的限制:

               默認臨時表空間不能刪除

               默認臨時表空間不能脫機

              

     

        獲得創建表空間的語句:*/

           SELECT dbms_metadata.get_ddl('TABLESPACE','SYSTEM') FROM dual;

     

        /*

        臨時表空間組:

           10G引入的,是一組臨時表空間,只能由臨時表空間組成。組名不能與臨時表空間同名

           臨時表空間不能顯示的創建和刪除,當把第一個臨時表空間分配給某個臨時表空間組的時候,自動創建

           臨時表空間組,將最后一個臨時表空間,刪除時,組也將自動刪除。

     

     

        創建臨時表空間組:

           1、創建臨時表空間的時候 */

            CREATE TEMPORARY TABLESPACE tablespace_name TEMPFILE '...' SIZE n

            TABLESPACE GROUP group_name;

     

            ALTER TABLESPACE tablespace_name TABLESPACE GROUP group_name;

               ALTER TABLESPACE T3 TABLESPACE GROUP TEMP_GRP;

     

        --查看臨時表空間組的信息:

           dba_tablespace_groups

     

           SELECT * FROM DBA_TABLESPACE_GROUPS;

     

        --將臨時表空間組成員移除:

           ALTER TABLESPACE tablespace_name TABLESPACE GROUP '';

     

        --可將系統默認的臨時表空間設為臨時表空間組:

           ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;

     

        --刪除臨時表空間:

           --將所有成員全移出去,便自動刪除

     

        --創建UNDO表空間(還原表空間):

        /*

        創建語法:*/

           CREATE UNDO TABLESPACE tablespace_name DATAFILE '...' SIZE n

     

        SQL> CREATE UNDO TABLESPACE undo2

           DATAFILE '/opt/oracle/oradata/orcl/undo2_01.dbf' SIZE 200M,

           '/opt/oracle/oradata/orcl/undo2_02.dbf' size 100m;

     

        --修改當前系統的UNDO表空間:

           ALTER SYSTEM SET UNDO_TABLESPACE=tablespace_name

     

        /* 

        UNDO表空間擴容:

           ()重置DATAFILE大小

           ()讓DATAFILEAUTOEXTEND

           ()添加數據文件

     

        刪除UNDO表空間 */

           DROP TABLESPACE tablespace_name

            /*

           注:當前的UNDO表空間不能刪除

               系統只能使用一個UNDO表空間 */

     

     

        --創建表空間的詳細語法:http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_7003.htm#SQLRF01403          

       

        /*

    四、表空間的管理方式:

        字典管理:oracle 8i(不包括i),只存在一種表空間的管理模式,即字典管理表空間(DMT

           DMT是指oracle的空間分配或回收是通過數據庫中的數據字典表來記錄和管理的

           用于管理的兩個數據字典表分別是:UET$used extents)FET$(freeextents)      

           其工作方式是:當建立一個新的段或者段在表空間時,oracle通過一系列的SQL語句來完成這個工作

           且和前面的兩個字典表有關,在繁忙的系統中會造成競爭和等待(另一個DMT會帶來的問題是空間碎片)

          

        本地管理(LMT):   iR2版本后成了默認的選項

           LMT在表空間的數據文件頭部加入了一個位圖區域,在其中記錄每個extent的使用狀況

           extent被使用或者被釋放,oracle會更新頭部的記錄來反映這個變化,不產生回滾信息

            因為僅僅操作數據文件頭部的幾個數據塊,不用操作數據字典,LMTDMT要快,尤其是在繁忙的時候更明顯

     

        --查看表空間使用的管理方式: */

        SQL> select TABLESPACE_NAME,EXTENT_MANAGEMENT,BLOCK_SIZE,STATUS,CONTENTS,FORCE_LOGGING,BIGFILE

          2  from dba_tablespaces;

     

        TABLESPACE_NAME                EXTENT_MAN BLOCK_SIZE STATUS    CONTENTS  FOR BIG

        ------------------------------ ---------- ---------- --------- --------- --- ---

        SYSTEM                         LOCAL            8192 ONLINE    PERMANENT NO  NO

        UNDOTBS1                       LOCAL            8192 ONLINE    UNDO      NO  NO

        SYSAUX                         LOCAL            8192 ONLINE    PERMANENT NO  NO

        TEMP                           LOCAL            8192 ONLINE    TEMPORARY NO  NO

        USERS                          LOCAL            8192 ONLINE    PERMANENT NO  NO

        EXAMPLE                        LOCAL            8192 ONLINE    PERMANENT NO  NO

        TBS1                           LOCAL            8192 ONLINE    PERMANENT NO  NO

     

        --DMT LMT 的相互轉換

           --將字典管理的表空間轉換為本地管理

           exec dbms_space_admin.tablespace_migrate_to_local('表空間名')    --表空間名用大寫

     

           --將本地管理的表空間轉換為字典管理

           exec dbms_space_admin.tablespace_migrate_from_local('表空間名')

     

       

        --表空間改名:

            --必須在open狀態下,system , sysaux 不能改名

           ALTER TABLESPACE XXX RENAME TO YYY

       

             

        --表空間的擴容:

          /*

          表空間的大小由組成它的所有數據文件的大小之和來決定

          擴容的方法:*/

             --(1)重置數據文件大小

                ALTER DATABASE DATAFILE '...' | FileNo RESIZE XX

     

            --(2)設置數據文件能自動增長

               ALTER DATABASE DATAFILE '... '| FileNo AUTOEXTEND ON | OFF NEXT 20M MAXSIZE 300M;

                --查看哪些表空間為自動增長

               SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;

              

     

           /* (3)添加數據文件

          

               增加到表空間中的數據文件不能直接從表空間中刪除,除非刪掉整個表空間

               增加數據文件將有助于均衡I/O

               一個表空間文件最多為個,文件越多,執行一次檢查點的代價越高  */

              

               ALTER TABLESPACE tablespace_name  ADD DATAFILE '...' SIZE XX;

         

               ALTER TABLESPACE tbs2 ADD DATAFILE '/u01/app/oracle/oradata/orcl/tbs2.dbf' size 200m autoextend on ;

              

        --表空間的四種狀態:

           online

           offline

           read only

           read write

           /*

        offline

           一個表空間的正常狀態是聯機(ONLINE),有時需要將某一個表空間進行脫機,以進行數據庫維護

           如:

               在數據庫打開的狀態下移動數據文件

               在數據庫打開的情況下恢復一個表空間或數據文件

               執行表空間的脫機備份(雖然可以進行進行聯機備份)

               使數據庫某一部分不可訪問,讓其它部分能正常訪問。

     

           表空間脫機的時候,將產生檢查點事件,該表空間上的數據是不能訪問的

     

           命令:*/

           ALTER TABLESPACE tablespace_name OFFLINE;

     

           --聯機命令:

           ALTER TABLESPACE tablespace_name ONLINE;

          

           --在脫機后,有可能無法再聯機,這時要做數據的介質恢復

           ALTER DATABASE RECOVER TABLESPACE tablespace_name

           ALTER TABLESPACE tablespace_name ONLINE;

           /*

        read only:

            不能執行DML語句,可以使用的為DDLDQL語句  */

           ALTER TABLESPACE tablespace_name READ ONLY;

       

        read write

           ALTER TABLESPACE tablespace_name READ WRITE;

       

        --一些表空間的特殊狀態

           tablespacename            onlie            read  only

              system                  必須online       必須read write

              sysaux                  可以offline      不能read only

              undo                    不能offline      不能read only

          

        --查看表空間的狀態

        SQL> select tablespace_name,file#,v.status,v.enabled from dba_data_files d,

          2  v$datafile v

          3  where d.file_id = v.file#;

     

        TABLESPACE_NAME                     FILE# STATUS  ENABLED

        ------------------------------ ---------- ------- ----------

        SYSTEM                                  1 SYSTEM  READ WRITE

        UNDOTBS1                                2 ONLINE  READ WRITE

        SYSAUX                                  3 ONLINE  READ WRITE

        USERS                                   4 ONLINE  READ WRITE

        EXAMPLE                                 5 ONLINE  READ WRITE

        TBS1                                    6 ONLINE  READ WRITE     

       

        --幾種狀態的相互轉換的演示

        --將表空間置為只讀

        SQL> alter tablespace users read only;

     

        Tablespace altered.

     

        SQL> update scott.emp set sal = sal + 50 where ename = 'SCOTT'; --置為只讀后不可更新

        update scott.emp set sal = sal + 50 where ename = 'SCOTT'

                   *

        ERROR at line 1:

        ORA-00372: file 4 cannot be modified at this time

        ORA-01110: data file 4: '/u01/app/oracle/oradata/orcl/users01.dbf'

     

     

        SQL> select tablespace_name,file#,v.status,v.enabled from dba_data_files d,

          2  v$datafile v

          3  where d.file_id = v.file# and tablespace_name = 'USERS';

     

        TABLESPACE_NAME                     FILE# STATUS  ENABLED

        ------------------------------ ---------- ------- ----------

        USERS                                   4 ONLINE  READ ONLY

       

        --將表空間置為脫機

        SQL> alter tablespace users offline;

     

        Tablespace altered.

     

        SQL> update scott.emp set sal = sal + 100 where ename = 'SCOTT';/*置為脫機后不可更新*/

        update scott.emp set sal = sal + 100 where ename = 'SCOTT'

                   *

        ERROR at line 1:

        ORA-00376: file 4 cannot be read at this time

        ORA-01110: data file 4: '/u01/app/oracle/oradata/orcl/users01.dbf'

       

        --將表空間置為聯機

        SQL> alter tablespace users online;

       

        Tablespace altered.

     

        SQL> select tablespace_name,file#,v.status,v.enabled from dba_data_files d,

          2  v$datafile v

          3  where d.file_id = v.file# and tablespace_name = 'USERS';

     

        TABLESPACE_NAME                     FILE# STATUS  ENABLED

        ------------------------------ ---------- ------- ----------

        USERS                                   4 ONLINE  READ ONLY

       

        --注意,readonly 狀態下的表空間可以刪除數據,僅僅是不能插入或更新數據,如下

        SQL> delete from scott.emp where ename = 'SCOTT';

     

        SQL> rollback;

     

        Rollback complete.

     

        --將表空間置為讀寫狀態

        SQL> alter tablespace users read write;

     

        Tablespace altered

       

        --表空間數據文件的重命名或重定位

        --方法一,在open狀態下且處于archive模式:

           --1、查出數據文件位置和所屬的表空間

               select TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 "SIZE(MB)"

               from dba_data_files;

     

           --2、將數據文件所在的表空間離線

               alter tablespace uu offline;

     

           --3、在操作系統下將文件移動到另外一個位置,或重命名(建議使用cp)

               host mv /opt/oracle/oradata/orcl/tt.dbf /disk9/uu1.dbf

          

           --4、修改控制文件,將數據文件的指針重新指向到另一個位置(執行rename)

               alter tablespace uu rename datafile '/opt/oracle/oradata/orcl/tt.dbf'

               to '/disk9/uu1.dbf';

     

           --5、表空間在線

               alter tablespace uu online

          

        --方法二,不能脫機的表空間

           --1、關閉數據庫,再啟動到mount狀態

               startup mount

           --2、在操作系統下,移動或重命名文件

               host mv /opt/oracle/oradata/orcl/tt.dbf /disk9/uu1.dbf

           --3、修改控制文件

               alter database rename file '/disk8/uu.dbf' to '/disk8/uu2.dbf';

          

           --4、打開數據庫

               alter database open;

        /* 

        刪除表空間:   

           意味著表空間和數據文件的信息從數據庫中刪除,同時也應該將相應的操作系統文件刪除

           不能刪除的表空間

               系統表空間

               有活動回滾段的表空間

               默認臨時/永久表空間

           命令:  */

               DROP TABLESPACE tablespace_name [INCLUDING CONTENTS [AND DATAFILES]]

                   INCLUDING CONTENTS                -- 刪除表空間及所有段

                  INCLUDING CONTENTS [AND DATAFILES] --刪除表空間、所有段、數據文件、同時刪除系統中的物理文件

                 

        --限制某個用戶對表空間的使用:

        ALTER USER user_name QUOTA n ON tablespace_name;

     

        ALTER USER scott QUOTA 10m on UU;

        --取消限制

        ALTER USER user_name QUOTA UNLIMITED ON tablespace_name;

     

        GRANT UNLIMITED TABLESPACE TO user_name;

     

        --單個數據文件離線:

           --1、查看有哪些數據文件

               SELECT name FROM v$datafile;

     

           --2、離線

               ALTER DATABASE DATAFILE '...' OFFLINE;

          

           --3、在線  

               ALTER DATABASE DATAFILE '... ' ONLINE

     

           --  有可能提示要進行介質恢復:

               RECOVER DATAFILE '...' 

     

               ALTER DATABASE RECOVER TABLESPACE tablespace_name;

     

           --  之后再將文件再線

     

        --重命名數據文件(同前面移動數據文件一樣)

     

       --獲取表空間和數據文件信息

           --表空間信息

               dba_tablespaces

               v$tablespace

           --數據文件信息

               dba_data_files

               v$datafile

           --臨時數據文件信息

               dba_temp_files

               v$tempfile

          

        --查看系統默認的表空間及臨時表空間:  

           SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties

           2  where PROPERTY_NAME like 'DEFAULT%';

     

        --修改改系統的默認表空間:

           SQL>ALTER DATABASE DEFAULT TABLESPACE tablespace_name

     

        --修改系統的默認臨時表空間:

           SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name

     

        --查看用戶默認表空間:

           SQL>select USERNAME,USER_ID,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users;

     

        --修改用戶默認表空間:

           SQL>ALTER USER user_name DEFAULT TABLESPACE tablespace_name

          

        --查看表空間的使用情況:

           dba_data_files;

           dba_free_space;

              

           --例:查每個表空間的剩余空間

           SQL> select tablespace_name,sum(bytes/1024/1024)

             2  from dba_free_space group by tablespace_name;   

        /*

    五、數據文件

        數據文件是數據庫中最重要的一個要求,是所有的數據庫內容存放的地方

        datafile是按照表空間為組織單位,表空間的構成是按照段區塊為層次---數據文件的邏輯結構

        datafile就是表空間的物理文件。

        datafile中的內容是通過dbwrdata buffer cache中的dirty buffer data 寫入的

        dbwr觸發:

            ckpt觸發,dirty buffer 到一定量的時候,data buffer caceh 的內存空間快用完了

           查詢空閑內存空間超時,表空間offline/read only,表的drop, truncate 開始執備份表空間的時候 */

          

        --查看數據文件

        SQL> select file# ,name,status,enabled,bytes/1024/1024 M from v$datafile;

     

            FILE# NAME                                               STATUS  ENABLED             M

        ---------- -------------------------------------------------- ------- ---------- ----------

                1 /u01/app/oracle/oradata/orcl/system01.dbf          SYSTEM  READ WRITE        490

                2 /u01/app/oracle/oradata/orcl/undotbs01.dbf         ONLINE  READ WRITE         30

                3 /u01/app/oracle/oradata/orcl/sysaux01.dbf          ONLINE  READ WRITE        250

                4 /u01/app/oracle/oradata/orcl/users01.dbf           ONLINE  READ WRITE          5

                5 /u01/app/oracle/oradata/orcl/example01.dbf         ONLINE  READ WRITE        100

                6 /u01/app/oracle/oradata/orcl/tbs1_1.dbf            ONLINE  READ WRITE        100

                7 /u01/app/oracle/oradata/orcl/tbs1_2.dbf            ONLINE  READ WRITE         60

                

        SQL> select tablespace_name,file_name,user_bytes/1024/1024 M from dba_data_files;

     

        TABLESPACE_NAME                FILE_NAME                                                        M

        ------------------------------ ------------------------------------------------------- ----------

        USERS01                        /u01/app/oracle/oradata/orcl/users01.dbf                    4.9375

        SYSAUX                         /u01/app/oracle/oradata/orcl/sysaux01.dbf                 249.9375

        UNDOTBS1                       /u01/app/oracle/oradata/orcl/undotbs01.dbf                 29.9375

        SYSTEM                         /u01/app/oracle/oradata/orcl/system01.dbf                 489.9375

        EXAMPLE                        /u01/app/oracle/oradata/orcl/example01.dbf                 99.9375

        TBS1                           /u01/app/oracle/oradata/orcl/tbs1_1.dbf                    99.9375

        TBS1                           /u01/app/oracle/oradata/orcl/tbs1_2.dbf                    59.9375

     

        --數據文件的增加與刪除

        --TBS1增加一個數據文件

        SQL> alter tablespace tbs1 add datafile '/u01/app/oracle/oradata/orcl/tbs1_3.dbf' size 10m autoextend on;

        --還有一種創建表空間時不指定大小,而是重用一個存在的dbf要用resue參數,reuse 是把原有的結構拿來用,里面的數據是用不了的,因為早都沒有了。

       

        --刪表空間中的數據文件,g以后的版本才用以下功能,在之前版本的就只能把表空間給干掉。

        SQL> alter tablespace tbs1 drop datafile '/u01/app/oracle/oradata/orcl/tbs1_3.dbf';

       

        --有數據的數據文件不能刪。第一個不能刪,如果要刪就把表空間干掉,數據文件中有數據寫入的文件也不能刪除,如下

        SQL> alter tablespace tbs1 drop datafile 7;  --7v$datafile中的file#.

        alter tablespace tbs1 drop datafile 7

        *

        ERROR at line 1:

        ORA-03262: the file is non-empty

       

        /*

        數據文件的日志記錄

           只有temp表空間是nologing  別的都是logging

            日志記錄的幾種模式   

               nologin          并不是不記錄日志而是記錄的很少

               logging          正常記錄日志信息

               force logging    記錄的日志比logging還詳細 記錄信息非常多  用于DG data guard 容災的情況 */

        SQL> select tablespace_name ,logging,force_logging from dba_tablespaces;

     

        TABLESPACE_NAME                LOGGING   FOR

        ------------------------------ --------- ---

        SYSTEM                         LOGGING   NO

        UNDOTBS1                       LOGGING   NO

        SYSAUX                         LOGGING   NO

        TEMP                           NOLOGGING NO

        USERS01                        LOGGING   NO

        EXAMPLE                        NOLOGGING NO

        TBS1                           LOGGING   NO

       

        --修改表空間中日志文件記錄的方式

           SQL> alter tablespace tablespace_name nologging | logging | force logging;

       

        SQL> alter tablespace example logging;

     

        Tablespace altered.

     

        SQL> alter tablespace tbs1 force logging;

     

        Tablespace altered.

     

        SQL> select tablespace_name ,logging,force_logging from dba_tablespaces;

     

        TABLESPACE_NAME                LOGGING   FOR

        ------------------------------ --------- ---

        SYSTEM                         LOGGING   NO

        UNDOTBS1                       LOGGING   NO

        SYSAUX                         LOGGING   NO

        TEMP                           NOLOGGING NO

        USERS01                        LOGGING   NO

        EXAMPLE                        LOGGING   NO

        TBS1                           LOGGING   YES

       

    posted on 2012-08-17 11:00 kxbin 閱讀(1079) 評論(0)  編輯  收藏 所屬分類: ORACLE轉發
    你恨一個人是因為你愛他;你喜歡一個人,是因為他身上有你沒有的;你討厭一個人是因為他身上有你有的東西;你經常在別人面前批評某人,其實潛意識中是想接近他。

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(5)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    J2EE

    java技術網站

    Linux

    平時常去的網站

    數據庫

    電影網站

    網站設計

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲av无码片vr一区二区三区| 亚洲中文字幕无码av| 亚洲色大成网站www永久| 亚洲国产成人精品无码一区二区 | 中文字幕不卡高清免费| 成在人线av无码免费高潮喷水| 三年片在线观看免费观看大全动漫 | 久久亚洲精精品中文字幕| 久久精品国产亚洲AV忘忧草18 | 羞羞漫画登录页面免费| 国产一级a毛一级a看免费人娇| 777成影片免费观看| 女人18毛片特级一级免费视频| 亚洲精品动漫人成3d在线| 亚洲AV乱码一区二区三区林ゆな| 亚洲人成在线中文字幕| 黄网站色视频免费看无下截| 久久免费视频网站| 成年男女免费视频网站| 国产亚洲精品成人AA片新蒲金| 亚洲天堂男人天堂| 日日摸日日碰夜夜爽亚洲| 国产精品99久久免费观看| 女人18特级一级毛片免费视频| 亚洲熟女一区二区三区| 99热亚洲色精品国产88| 久久成人18免费网站| 国产卡二卡三卡四卡免费网址| 亚洲精品97久久中文字幕无码| 亚洲精品白色在线发布| 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲精品无码专区| 国产一区二区免费| 高清国语自产拍免费视频国产 | 亚洲视频在线播放| 337P日本欧洲亚洲大胆艺术图| 免费在线中文日本| 亚洲а∨天堂久久精品| 亚洲午夜精品一区二区公牛电影院 | 最新亚洲卡一卡二卡三新区| 三上悠亚电影全集免费|