当前位置:  数据库>oracle

Oracle中表空间与数据文件编号的连续性

    来源: 互联网  发布时间:2017-03-31

    本文导语: 。如果TS$中表空间出现了断号, oracle在启动时会进行数据字典和控制文件的校验,发现不一致时,数据库不能正常启动。 表空间被删除时ts$表中并不会删除相关表空间的记录。只是把表空间的状态置为3,即INVALID状态。如果再...

。如果TS$中表空间出现了断号,

oracle在启动时会进行数据字典和控制文件的校验,发现不一致时,数据库不能正常启动。

表空间被删除时ts$表中并不会删除相关表空间的记录。只是把表空间的状态置为3,即INVALID状态。
如果再次创建同名的表空间,则oracle会把TS$表中同名表空间的状态由3置为1,ONLINE状态。以此
来保证表空间号的连续。


ORACLE 10g中sql.bsq记录了ts$的online$列与file$的status$列的含义:
ts$
online$  /* 1 = ONLINE, 2 = OFFLINE, 3 = INVALID */

file$
status$  /* 1 = INVALID, 2 = AVAILABLE */

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as SYS

UNDOTBS2,LIANG,Liang这三个表空间被删除,但ts$中并没有删除相关记录。只是把ONLINE$状态置为3(INVALID)

SQL> SELECT ts#,name ,online$  FROM  ts$;
TS# NAME        ONLINE$
--- -----------       -------
  0 SYSTEM               1
  1 SYSAUX               1
  2 UNDOTBS1          1
  3 TEMP                   1
  4 USERS                 1
  6 EXAMPLE             1
  7 TBS_REPORT       1
 10 rows selected









-- 数据文件编号一样不会被删除,将删除的数据文件编号置为1(INVALID状态)。

SQL> SELECT  file#,status$ FROM  file$;
FILE# STATUS$
----- ------
    1      2
    2      2
    3      2
    4      2
    5      2
    6      2
7 rows selected








SQL> SELECT d.file_id,d.tablespace_name, d.file_name  FROM dba_data_files d
  2  order by d.file_id;

FILE_ID TABLESPACE_NAME  FILE_NAME
------- ---------------- ----------------------------------------------------
      1 SYSTEM           D:ORACLELIANGWEIORADATALIANGWEISYSTEM01.DBF
      2 SYSAUX           D:ORACLELIANGWEIORADATALIANGWEISYSAUX01.DBF
      3 UNDOTBS1         D:ORACLELIANGWEIORADATALIANGWEIUNDOTBS01.DBF
      4 USERS            D:ORACLELIANGWEIORADATALIANGWEIUSERS01.DBF
      5 EXAMPLE          D:ORACLELIANGWEIORADATALIANGWEIEXAMPLE01.DBF
      6 TBS_REPORT       D:ORACLELIANGWEIORADATALIANGWEITBS_REPORT1.DBF
6 rows selected







SQL> CREATE  tablespace test DATAFILE 'D:ORACLETEST02.DBF' SIZE 10M;
Tablespace created

重新创建数据文件时,如果没有状态为1(INVALID)的数据文件,oracle会新分配一个数据文件编号。
如果有状态为1(INVALID)的数据文件编号,。以保证数据文件编号的连续性。

新创建数据文件后,发现7号数据文件编号被设置为2(AVAILABLE)

SQL> SELECT  file#,status$ FROM  file$;
FILE# STATUS$
----- -------
    1       2
    2       2
    3       2
    4       2
    5       2
    6       2








7 rows selected

SQL> SELECT d.file_id,d.tablespace_name, d.file_name  FROM dba_data_files d order by d.file_id;

FILE_ID TABLESPACE_NAME  FILE_NAME
------- ------------------  ----------------------------------------------------
      1 SYSTEM           D:ORACLELIANGWEIORADATALIANGWEISYSTEM01.DBF
      2 SYSAUX           D:ORACLELIANGWEIORADATALIANGWEISYSAUX01.DBF
      3 UNDOTBS1      D:ORACLELIANGWEIORADATALIANGWEIUNDOTBS01.DBF
      4 USERS             D:ORACLELIANGWEIORADATALIANGWEIUSERS01.DBF
      5 EXAMPLE         D:ORACLELIANGWEIORADATALIANGWEIEXAMPLE01.DBF
      6 TBS_REPORT   D:ORACLELIANGWEIORADATALIANGWEITBS_REPORT1.DBF
      7 TEST                D:ORACLETEST02.DBF
7 rows selected








SQL> SELECT ts#,name ,online$  FROM  ts$;

TS# NAME      ONLINE$
--- ----------    -------
  0 SYSTEM           1
  1 SYSAUX           1
  2 UNDOTBS1      1
  3 TEMP               1
  4 USERS             1
  5 UNDOTBS2      3
  6 EXAMPLE         1
  7 TBS_REPORT   1
  8 LIANG              3
  9 Liang               3
 10 TEST               1
11 rows selected












如果创建同名的表空间,oracle会利用原有状态为3的表空间,同时将状态置为1.
SQL>  CREATE  tablespace LIANG DATAFILE 'D:ORACLETEST01.DBF' SIZE 10M;
Tablespace created

创建同名表空间LIANG后,8号表空间状态由3变为1.
SQL> SELECT ts#,name ,online$  FROM  ts$;
TS# NAME          ONLINE$
--- ---------- ----------
  0 SYSTEM              1
  1 SYSAUX              1
  2 UNDOTBS1         1
  3 TEMP                  1
  4 USERS                1
  5 UNDOTBS2         3
  6 EXAMPLE            1
  7 TBS_REPORT       1
  8 LIANG                  1
  9 Liang                   3
 10 TEST                   1
11 rows selected














SQL> CREATE  tablespace TEST DATAFILE 'D:ORACLETEST02.DBF' SIZE 10M;
CREATE  tablespace TEST DATAFILE 'D:ORACLETEST02.DBF' SIZE 10M
*
第 1 行出现错误:
: 表空间 'TEST' 已存在



SQL> CREATE  tablespace TEST2 DATAFILE 'D:ORACLETEST02.DBF' SIZE 10M;
CREATE  tablespace TEST2 DATAFILE 'D:ORACLETEST02.DBF' SIZE 10M
*
第 1 行出现错误:
: 无法添加文件 'D:ORACLETEST02.DBF' - 该文件已是数据库的一部分




    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 采用容器管理的实体bean,如何处理oracle数据库自动增加的编号?
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3