Oracle 表空间与数据文件ITeye - 众发娱乐

Oracle 表空间与数据文件ITeye

2019年03月26日10时15分15秒 | 作者: 怀绿 | 标签: 空间,数据文件,文件 | 浏览: 1040

    表空间:是一个或多个数据文件的逻辑调集

    表空间逻辑存储目标:永久段 如表与索引

                        暂时段 如暂时表数据与排序段

                     回滚段 用于事物回滚或闪回内存的吊销数据

    表空间分类:体系表空间(system、sysaux),非体系表空间

   

    一个表空间至少包括一个数据文件,一个数据文件只能归于一个表空间。

   

    不行或缺的几个表空间:

    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  超越T 等级应考虑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巨细

       ()让DATAFILE能AUTOEXTEND

       ()添加数据文件

 

    删去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):   在i的R2版别后成了默许的选项

       LMT在表空间的数据文件头部加入了一个位图区域,在其间记载每个extent的运用状况

       当extent被运用或许被开释,oracle会更新头部的记载来反映这个改变,不发生回滚信息

        由于只是操作数据文件头部的几个数据块,不必操作数据字典,LMT比DMT要快,尤其是在繁忙的时分更显着

 

    检查表空间运用的办理办法: */

    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句子,能够运用的为DDL,DQL句子  */

       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中的内容是经过dbwr把data 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;  7是v$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

   

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    MySQL命令行ITeye

    输入,数据库,指令
  • 2

    Oracle 表空间与数据文件ITeye

    空间,数据文件,文件
  • 3

    【转】ORACLE近义词总结ITeye

    近义词,方针,数据库
  • 4
  • 5

    Mysql表结构、数据仿制ITeye

    仿制,结构,数据
  • 6
  • 7

    Hadoop 第一个实例ITeye

    一个,文件,输出
  • 8
  • 9

    IMPITeye

    一个,体系,数据
  • 10